赞
踩
简介,什么是Druid
Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。
springboot项目如何配置druid,遇到的问题及解决办法。
- <!--阿里系的Druid依赖包-->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.9</version>
- </dependency>
- <!-- Druid 依赖 log4j包 -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- </dependency>
2. application.properties写入druid通用配置
- #mysql 配置
- spring.datasource.druid.driverClassName=com.mysql.cj.jdbc.Driver
- spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/educa?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
- spring.datasource.druid.username=root
- spring.datasource.druid.password=123456
- #阿里druid连接池驱动配置信息
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- #连接池的配置信息
- #初始化大小,最小,最大
- spring.datasource.initialSize=5
- #不再使用了,配置无效
- #spring.datasource.minIdle=5
- #最大连接池数量
- spring.datasource.druid.maxActive=20
- # 配置获取连接等待超时的时间
- spring.datasource.druid.maxWait=60000
- # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
- spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
- # 配置一个连接在池中最小生存的时间,单位是毫秒
- spring.datasource.druid.minEvictableIdleTimeMillis=300000
- spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
- spring.datasource.druid.testWhileIdle=true
- spring.datasource.druid.testOnBorrow=false
- spring.datasource.druid.testOnReturn=false
- # 打开PSCache,并且指定每个连接上PSCache的大小
- spring.datasource.druid.poolPreparedStatements=true
- spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
- # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
- spring.datasource.druid.filters=stat,wall,log4j
- # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
- spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
- # 合并多个DruidDataSource的监控数据
- spring.datasource.druid.useGlobalDataSourceStat=true

3. 创建三个类,也可以集成到一个类里面,我这边分开写了。

- @Configuration //标识该类被纳入spring容器中实例化并管理
- @ServletComponentScan //用于扫描所有的Servlet、filter、listener
- public class DruidConfig {
- @Bean
- @ConfigurationProperties(prefix="spring.datasource.druid")
- //加载时读取指定的配置信息,前缀为spring.datasource.druid
- public DataSource druidDataSource() {
- return new DruidDataSource();
- }
- }
- @WebFilter(
- filterName="druidWebStatFilter",
- urlPatterns= {"/*"},
- initParams= {
- @WebInitParam(name="exclusions",value="*.js,*.jpg,*.png,*.gif,*.ico,*.css,/druid/*")
- //配置本过滤器放行的请求后缀
- }
- )
- public class DruidStatFilter extends WebStatFilter {
-
- }
- @WebServlet(
- urlPatterns= {"/druid/*"},
- initParams= {
- @WebInitParam(name = "allow", value = "127.0.0.1"),
- @WebInitParam(name = "loginUsername", value = "scs"),
- @WebInitParam(name = "loginPassword", value = "123"),
- @WebInitParam(name = "resetEnable", value = "true")
- // 允许HTML页面上的“Reset All”功能
- })
- public class DruidStatViewServlet extends StatViewServlet implements Servlet {
- private static final long serialVersionUID = 1L;
- }

这里,配置了登陆名和密码。接下来看效果

输入用户名和密码,


执行一个接口后,可以看到对应的sql监控信息。


这个信息就是未添加log4j依赖,在pom.xml添加
- <!-- Druid 依赖 log4j包 -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- </dependency>



以上是本人第一次搭建druid,遇到的问题,语言表达的不够专业,希望看到的朋友多加指正。
-----努力的蚂蚁
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。