SpringBoot配置 Druid 三种方式(包括纯配置文件配置)

yizhihongxing

下面是SpringBoot配置Druid三种方式的详细攻略,包括纯配置文件配置。

什么是Druid

Druid是一个开源的数据库连接池和监控平台,具有更快的速度和更好的性能。Druid可以提供实时的SQL监控、SQL防火墙、StatFilter、日志记录等功能。

SpringBoot配置Druid

  1. 使用@Configuration和@PropertySource设置数据库连接池属性。
@Configuration
@PropertySource("classpath:application.properties")
public class DruidConfig {

    @Value("${spring.datasource.url}")
    private String dbUrl;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.driverClassName}")
    private String driverClassName;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(dbUrl);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driverClassName);
        return dataSource;
    }
}
  1. 使用@ConfigurationProperties批量设置数据库连接池属性。
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
public class DruidConfig {

    private String url;
    private String username;
    private String password;
    private String driverClassName;

    // 省略getter和setter

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driverClassName);
        return dataSource;
    }
}
  1. 使用application.properties单独配置数据库连接池属性。

在application.properties中添加以下内容:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver

然后在代码中使用@ImportResource导入配置文件。

@Configuration
@ImportResource(locations = {"classpath:application.properties"})
public class DruidConfig {

    @Bean
    public DataSource dataSource() {
        return new DruidDataSource();
    }
}

以上是SpringBoot配置Druid的三种方式。

示例

我用第一种方式给出一个示例,让大家更好地理解。

@Configuration
@PropertySource("classpath:application.properties")
public class DruidConfig {

    @Value("${spring.datasource.url}")
    private String dbUrl;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.driverClassName}")
    private String driverClassName;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(dbUrl);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driverClassName);
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate() {
        return new JdbcTemplate(dataSource());
    }
}

在application.properties中添加以下内容:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver

然后就可以在代码中直接使用jdbcTemplate了。

@Component
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public User findUserById(long id) {
        String sql = "select * from t_user where id = ?";
        Object[] params = {id};
        return jdbcTemplate.queryForObject(sql, params, new BeanPropertyRowMapper<>(User.class));
    }
}

以上就是使用SpringBoot配置Druid的步骤和示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot配置 Druid 三种方式(包括纯配置文件配置) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 线程间通信的作用是什么?

    以下是关于线程间通信作用的完整使用攻略: 线程间通信的作用 线程间通信是指多个线之间通过共享内存或消息传递等方式来实现数据的交换和调工作的过程。线程间通信的作用主要有以下几个方面: 1. 避免竞争和冲突 在线程编程中,如果多个线程同时访问共享资源,就会出现竞争和冲的情况,导致程序的不稳定不可预测性。通过线程间通,可以实现对共享资源的访问控制,避免线程之间的竞…

    Java 2023年5月12日
    00
  • java导出生成word的简单方法

    下面我将详细讲解“Java导出生成Word的简单方法”。本攻略分为以下几个部分:环境准备、添加依赖、生成Word文档、示例说明、常见问题解决。 环境准备 在开始之前,需要准备以下环境: JDK1.8以上 Maven IDEA或Eclipse等开发工具 添加依赖 Java生成Word文档需要使用到Apache POI和docx4j两个依赖,将以下代码添加到po…

    Java 2023年5月26日
    00
  • Spring Boot深入排查 java.lang.ArrayStoreException异常

    Spring Boot深入排查 java.lang.ArrayStoreException异常攻略 异常说明 Java中的ArrayStoreException是一种运行时异常。它通常在向数组中存储了不兼容的对象类型时发生。当试图将一个对象赋值给一个数组的元素,而这个对象的类型与数组的声明类型不兼容时,就会出现该异常。 排查步骤 1.定位异常位置 当我们在S…

    Java 2023年6月2日
    00
  • 解决Spring或SpringBoot开启事务以后无法返回自增主键的问题

    在Spring或Spring Boot应用程序中,如果开启了事务,那么在执行插入操作时,无法返回自增主键。这是因为在事务中,插入操作并没有真正地提交到数据库中,因此无法获取自增主键。在本文中,我们将介绍如何解决这个问题,并提供两个示例说明。 解决方案 要解决这个问题,我们可以使用JDBC的KeyHolder接口来获取自增主键。KeyHolder接口是Spri…

    Java 2023年5月18日
    00
  • java实现ping

    要实现Java的Ping功能,可以使用Java中的InetAddress类和Java的Runtime类的相关方法。 使用InetAddress类的方法实现Ping功能: 可以使用Java中的InetAddress类的isReachable()方法,该方法依赖于底层系统的Ping命令的实现。 下面是使用InetAddress类的示例代码: import jav…

    Java 2023年5月18日
    00
  • 如何在Spring Boot应用中优雅的使用Date和LocalDateTime的教程详解

    如何在Spring Boot应用中优雅的使用Date和LocalDateTime的教程详解 Spring Boot作为一个常用的Java Web框架,经常需要用到日期类型,例如在处理用户操作记录、日志记录、订单生成等业务中。本文将介绍在Spring Boot应用中如何优雅地使用Date和LocalDateTime类型。 Date类型 1. Date类型的创建…

    Java 2023年5月20日
    00
  • Spring框架中 @Autowired 和 @Resource 注解的区别

    在Spring框架中,@Autowired和@Resource注解都是用于进行依赖注入的。两者都可以自动装配bean,但它们之间还是存在一些区别。 1. @Autowired注解 1.1 功能 @Autowired是Spring自带的依赖注入注解。它实现了自动装配,Spring会根据类型自动注入到字段、构造方法或者是setter方法上来完成属性的注入。 1.…

    Java 2023年6月15日
    00
  • ELK收集Tomcat日志的实现

    下面我将为您详细讲解”ELK收集Tomcat日志的实现”。 什么是ELK? ELK是指Elasticsearch、Logstash、Kibana三个开源工具的集合,它们可以协同工作来收集、存储、搜索和可视化各种类型的日志数据。 Elasticsearch:全文搜索引擎,用于快速检索和存储数据。 Logstash:日志收集和转换工具,用于统一日志格式、进行过滤…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部