springboot项目配置druid详解,遇到的各种问题及解决办法

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 springboot项目配置druid详解,遇到的各种问题及解决办法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

简介,什么是Druid

     Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。

springboot项目如何配置druid,遇到的问题及解决办法。

  1.  添加druid依赖和log4j,两者缺一不可。后面会介绍遇到的问题
<!--阿里系的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. 创建三个类,也可以集成到一个类里面,我这边分开写了。

springboot项目配置druid详解,遇到的各种问题及解决办法
 

@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;
    }

至此,配置完成,只需要改动对应数据库配置信息,和登陆名密码即可。

springboot项目配置druid详解,遇到的各种问题及解决办法

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

springboot项目配置druid详解,遇到的各种问题及解决办法

输入用户名和密码,

springboot项目配置druid详解,遇到的各种问题及解决办法

 

springboot项目配置druid详解,遇到的各种问题及解决办法

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

springboot项目配置druid详解,遇到的各种问题及解决办法


接下来讲一下我在搭建的时候遇到的一些问题(坑):

问题1:

    一运行就报错?

提示Failed to bind properties under ‘spring.datasource.druid’ to javax.sql.DataSource:

springboot项目配置druid详解,遇到的各种问题及解决办法

这个信息就是未添加log4j依赖,在pom.xml添加

<!-- Druid 依赖 log4j包 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

问题2:

运行没问题,一访问接口信息就报错?

dbType not support : null, url null

springboot项目配置druid详解,遇到的各种问题及解决办法

查看数据库配置信息

springboot项目配置druid详解,遇到的各种问题及解决办法

druid监控的是spring.datasource.druid,我们数据库没有在它的监控范围内,修改如下即可

springboot项目配置druid详解,遇到的各种问题及解决办法

以上是本人第一次搭建druid,遇到的问题,语言表达的不够专业,希望看到的朋友多加指正。

                                                                                                                                                 —–努力的蚂蚁

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143404.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!