一、SpringBoot 整合Druid
SprintBoot 默认使用的是 HikariDataSource数据源,这次整合一个第三方的数据源 Druid ,它是阿里开发的一款开源的数据源,被很多人认为是Java语言中最好的数据库连接池,因为 Druid 能够提供强大的一整套监控和扩展功能。
默认情况下,sprintboot使用hikaridatasource数据源。这一次,集成了第三方数据源Druid。它是阿里巴巴开发的开源数据源,许多人认为它是Java语言中最好的数据库连接池,因为Druid可以提供一组强大的监控和扩展功能。
1、在创建SpringBoot项目的时候,在pom.xml maven中添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
注意:druid 依赖 log4j 的日志jar包,但是 SpringBoot 默认使用的是 slf4j+logback,所以导入log4j的jar包即可。
2、在 application.yml(或aproperties)中添加相应的配置:
#
server:
port: 80
# 数据库连接信息
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT
driver-class-name: com.mysql.cj.jdbc.Driver # com.mysql.jdbc.Driver
# 使用 Druid 数据源
type: com.alibaba.druid.pool.DruidDataSource
3、 log4j.properties 配置文件:
log4j.rootLogger = debug,stdout, D
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p %m%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ./log4j.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d %p %m%n
4、在运行测试方法,查看数据源
public class SpringbootdemoApplicationTests {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private DataSource dataSource;
@Test
public void contextLoads() throws SQLException {
System.out.println("dataSource==" + dataSource.getClass());
Connection con = dataSource.getConnection();
System.out.println("con==" + con);
List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from user");
System.out.println(maps);
}
}
Druid 数据源整合完成。