简介
什么是Druid?
Druid是阿里巴巴开发的,其号称为监控而生的数据源。Druid是目前最好的数据库数据源,它在功能、性能、扩展性方面,都超过其他数据库连接池,比如dbcp、c3p0、BoneCP、Proxool、JBoss DataSource。
SpringBoot上配置Druid
在SpringBoot上配置相当简单,只需3步即可。
- 添加druid依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>
- 在配置文件中切换数据源
可选择添加以下配置
# Spring Boot 默认是不注入这些属性值的,需要自己绑定
# 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,stat:监控统计、log4j:日志记录、wall:防御sql注入
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
注意:如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority, 则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
- 需要自己添加 DruidDataSource 组件到容器中,并绑定属性
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource() {
return new DruidDataSource();
}
}
配置Druid数据源监控页面
Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装路由器时,druid 也提供了一个默认的 web 页面。
开始配置:(继续在刚创建的DruidConfig中配置)
(暂记能配置的参数都在 ResourceServlet 里 )
- 需要设置 Druid 的后台管理页面,比如登录账号、密码等,配置后台管理;
// 内置没有web.xml文件,使用 SpringBoot 注册 Servlet 方式配置
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// 这些参数可以在StatViewServlet 的父类 ResourceServlet 中找到
Map<String, String> initParams = new HashMap<>();
initParams.put("loginUsername", "admin"); //后台管理界面的登录账号
initParams.put("loginPassword", "123456"); //后台管理界面的登录密码
// 页面允许某用户可以访问
// initParams.put("allow", "localhost"):表示只有本机可以访问
// 第二参数为空或者为null时,表示允许所有访问
initParams.put("allow", "");
// 页面拒绝xxx访问
// initParams.put("xxx", "127.0.0.1"):表示禁止此ip访问
// 设置初始化参数
bean.setInitParameters(initParams);
return bean;
}
- 配置完毕后,访问 http://localhost:8080/druid/login.html 进入页面
- 输入刚才配置的用户名和密码即可登入到druid监控页面
遇到问题
- 我编写时遇到的问题:在
new StatViewServlet()
时,出现了错误,无法被创建出来。 - 解决:点进源码查看时,发现关于servlet的包全部都报红了,所以在maven pom 中导入了servlet,就可以创建了。
- 注意:导入的servlet包要3.0+,要不会没有
ServletRegistration
和MultipartConfigElement