1、yml中添加type及额外配置:
如果不加type: com.alibaba.druid.pool.DruidDataSource,那么springboot将使用默认的Hikari
spring:
datasource:
username: root
password: root123
url: jdbc:mysql://127.0.0.1:3306/springboot
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource #将默认的数据源Hikari改为druid
# 最大连接池数量
max-active: 20
# 初始化连接池的数量
initial-size: 5
# 最小连接池 数量
min-idle: 2
# 这里建议配置为TRUE,防止取到的连接不可用
test-on-borrow: true
test-on-return: false
# 验证连接有效与否的SQL,不同的数据配置不同
validation-query: select
#通过别名的方式配置扩展插件,常用的插件有:
#监控统计用的filter:stat日志用的filter:log4j防御sql注入的filter:wall
filters: stat,slf4j,wall
# 配置获取连接等待超时的时间 单位毫秒
max-wait: 6000
2、type以下的属性还需要通过自定义配置类来绑定到DruidDataSource
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource") //配置文件中的以spring.datasource为前缀的所有属性自动绑定进来
@Bean //将返回值注入到容器
public DataSource druid(){
return new DruidDataSource();
}
/**
* 配置Druid监控
*/
//1.配置一个关里后台的servlet
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
Map<String,String> initParams = new HashMap<>();
initParams.put("loginUsername","admin");
initParams.put("loginPassword","123456");
initParams.put("allow",""); //默认允许所有
initParams.put("deny",""); //
bean.setInitParameters(initParams);
return bean;
}
//配置一个web监控的filter
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean filter = new FilterRegistrationBean(new WebStatFilter());
Map<String,String> initParams = new HashMap<>();
initParams.put("exclusions",""); //配置不用拦截的资源
filter.setInitParameters(initParams);
filter.setUrlPatterns(Arrays.asList("/*"));
return filter;
}
}
网友评论