1.依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.29</version>
</dependency>
2.application.properties
### druid setting ###
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/xunwu?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
### 不支持的补充配置 ###
spring.datasource.driverClassName=com.mysql.jdbc.Driver
# 初始化大小,最小,最大
spring.datasource.initialSize=1
spring.datasource.minIdle=1
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.validationQuery=SELECT 'x'
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.testWhileIdle=true
spring.datasource.minEvictableIdleTimeMillis=25200000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.removeAbandoned=true
spring.datasource.removeAbandonedTimeout=1800
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.logAbandoned=true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
# 更多filter参考jar里面的druid-filter.properties@{}
spring.datasource.filters=stat,wall
3.配置datasource及webservlet
package com.jwolf.jwolf2.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
public class DruidConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(DruidConfig.class);
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
//会将spring.datasource开头的配置自动注入赋值datasource对象,也可@value注入再手动显示赋值给atasource
public DataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
return datasource;
}
/**
* <p>Title: 注册一个druid监控访问得servlet</p>
* <p>Description:也可以@ServletComponentScan来扫描自定义的@WebServlet类,{@link https://www.cnblogs.com/shyroke/p/8045077.html}</p>
* @author majun
* @date 2019/3/24 0024 20:50
*/
@Bean
public ServletRegistrationBean DruidStatViewServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
//设置初始化参数白名单allow黑名单deny,禁止页面的重置功能等
servletRegistrationBean.addInitParameter("allow", "127.0.0.1,192.0.0.1");
servletRegistrationBean.addInitParameter("deny", "192.0.0.1");
servletRegistrationBean.addInitParameter("loginUsername", "majun");
servletRegistrationBean.addInitParameter("loginPassword", "majun");
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
}
4.web访问地址