开门见山上代码:
- 第一步、 添加Druid的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.3</version>
</dependency>
- 第二步、在配置文件中 配置它专有的属性
spring的datasource需要配置一个type属性,设置为com.alibaba.druid.pool.DruidDataSource 类型
其他的配置没有提示,不属于SpringBoot集成的属性,属于Druid专有的配置
spring:
datasource:
url: ~略
driver-class-name: ~ 略
username: ~略
password: ~略
type: com.alibaba.druid.pool.DruidDataSource
# SpringBoot默认不装配这些值,需要配置
# Druid数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 6000
timeBetweenEvictionRunsMillis: 600000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
# 配置监控统计拦截的filters,stat:监控统计、Log4j、日志记录、wal:防御sql注入
# 如果允许时报错 java.lang.ClassNotoundException: org.apche.log4j.priority
# 则导入log4j 依赖即可
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
- 第三步、自定义类
类头加上注解 @Configuration 标记此类是配置类
@Configuration //标记一个配置类
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
//后台监控 web.xml
//因为SpringBoot内置了tomcat容器 没有web.xml 所以替代方法为:ServletRegistrationBean
@Bean
public ServletRegistrationBean servletRegistrationBean(){
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); // "/druid/*" 配置此路径下进入druid的监控界面
HashMap<String, String> map = new HashMap<>();
//增加配置
map.put("loginUsername","root"); //key是固定的
map.put("loginPassword","root"); //登录监控界面的账号和密码
//允许谁能访问
map.put("allow","127.0.0.1");
//map.put("qxl","127.0.0.1"); 禁止谁访问
bean.setInitParameters(map); //设置初始化参数
return bean;
}
//filter
@Bean
public FilterRegistrationBean webStateBean(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
//设置过滤哪些请求
HashMap<Object, Object> map = new HashMap<>();
map.put("exclusions","*.js,*.css,/druid/*");
bean.setInitParameters(map);
return bean;
}
}
写完以上这些就可以运行了。
展示一下Druid的监控界面: