Spring Boot中使用Druid和监控配置
1.yml中相关配置
master:
datasource:
url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
username: scott
password: scotttiger
driverClassName: oracle.jdbc.driver.OracleDriver
type: com.alibaba.druid.pool.DruidDataSource
#初始化连接数量,最大最小连接数
initialSize: 5
maxActive: 20
minIdle: 3
#获取连接等待超时的时间
maxWait: 600000
#超过时间限制是否回收
removeAbandoned: true
#超过时间限制多长
removeAbandonedTimeout: 180
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 600000
#配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
#用来检测连接是否有效的sql,要求是一个查询语句
validationQuery: SELECT 1 FROM DUAL
#申请连接的时候检测
testWhileIdle: true
#申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能
testOnBorrow: false
#归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能
testOnReturn: false
#打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 50
#属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:
#监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall
filters: stat
2.注册Servlet,放到项目根目录
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
/*
* @author 在下令狐
* @date 2020/11/23
**/
@Configuration
public class DruidViewConfiguration {
/*
* 注册一个StatViewServlet
* */
@Bean
public ServletRegistrationBean<StatViewServlet> statViewServlet(){
ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<StatViewServlet>(new StatViewServlet(),"/druid/*");
//登录Druid Monitor时的用户名密码
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "admin");
//IP白名单
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
//IP黑名单(deny优先级大于allow)
servletRegistrationBean.addInitParameter("deny", "0.0.0.0");
//是否可以重置数据
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
/*
* 注册一个WebStatFilter
* */
@Bean
public FilterRegistrationBean<WebStatFilter> statFilter(){
FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<WebStatFilter>(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
//添加不需要过滤的内容
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
3.启动项目,通过页面查看监控
pom依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>