一、数据源自动管理
1.引入jdbc依赖和springboot的应用场景
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.配置文件
spring:
datasource:
url: jdbc:mysql://localhost:3306/briup
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
3.测试
在jdbc依赖中,默认使用HikariCP数据源
@RestController
public class DataSourceController {
@Resource
private DataSource dataSource;
@RequestMapping("/dataSource")
public String dataSource(){
System.out.println(dataSource);
return "haha";
}
}
二、配置druid数据源
1.引入druid依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<!--日志依赖-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
2.Druid数据源的启用和属性绑定
spring:
datasource:
url: jdbc:mysql://localhost:3306/briup?useSSL=false&useUnicode=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
需要创建配置类把属性绑定到DruidDataSource中
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DruidDataSource dataSource(){
return new DruidDataSource();
}
}