一、在POM文件中加入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
二、在主配置文件中配置druid的属性
spring:
datasource:
username: root #数据库用户名
password: 123 #数据库密码
url: jdbc:mysql://127.0.0.1:3306/jdbcExample #指定具体的数据库jdbcExample
driver-class-name: com.mysql.jdbc.Driver #指定数据驱动
type: com.alibaba.druid.pool.DruidDataSource #指定引用的数据库连接池druid
**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,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#容器启动时执行sql文件(默认执行的sql文件是classpath:schema.sql)**
schema:
- classpath:ysw.sql
注意:黑体部分属性虽然在配置文件中配置,但是不会被映射,这是因为默认的POJO类没有对应的属性,我们需要在自定义的bean中将这些属性用@ConfigurationProprties注解映射进来
三、自定义druid的配置bean
@Configuration
public class druidConFig {
@ConfigurationProperties(prefix = "spring.datasource")//解决上一步的属性映射问题
@Bean
public DataSource druid(){//重新配置DruidDataSource
return new DruidDataSource();
}
//配置druid的监控
//1.配置一个管理后台的servlet
@Bean
public ServletRegistrationBean statViewBean(){
ServletRegistrationBean bean=new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
Map map=new HashMap<>();
map.put("loginUsername","admin");//设置后台用户名
map.put("loginPassword","123");//设置后台密码
map.put("allow","");//允许所有地址访问
map.put("pany","192.168.93.90");//禁止某些地址访问
bean.setInitParameters(map);
return bean;
}
//2.配置一个监控的filter
@Bean
public FilterRegistrationBean statFilterBean(){
FilterRegistrationBean bean=new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map map=new HashMap<>();
map.put("exclusions","*.css,*.js,/druid/*");//排除某些请求
bean.setInitParameters(map);
//拦截所有请求
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}
四、使用druid的后台管理
访问druid的后台管理页面,使用servlet中定义的用户密码访问
模拟访问数据库的请求
该请求被druid监控拦截