您现在的位置是:首页 > 正文

SpringMvc整合Druid.

2024-02-29 12:44:14阅读 0

SpringMvc整合Druid数据库连接池

1.pom.xml添加依赖

<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid</artifactId>
		<version>${druid-version}</version>
</dependency>

2.配置web.xml

  1. 配置WebStatFilter,用于采集web-jdbc关联监控的数据。

    <filter>
      	<filter-name>DruidWebStatFilter</filter-name>
      	<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
      	<init-param>
            <!-- 经常需要排除一些不必要的url,比如*.js,/jslib/*等等-->
      		<param-name>exclusions</param-name>
      		<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
      	</init-param>
    </filter>
    <filter-mapping>
        <filter-name>DruidWebStatFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  2. Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。配置StatViewServlet.

    <!-- 配置 Druid 监控信息显示页面 -->  
    <servlet>  
        <servlet-name>DruidStatView</servlet-name>  
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  
        <init-param>  
            <!-- 允许清空统计数据 -->  
            <param-name>resetEnable</param-name>  
            <param-value>true</param-value>  
        </init-param>  
        <init-param>  
            <!-- 用户名 -->  
            <param-name>loginUsername</param-name>  
            <param-value>druid</param-value>  
        </init-param>  
        <init-param>  
            <!-- 密码 -->  
            <param-name>loginPassword</param-name>  
            <param-value>druid</param-value>  
        </init-param>  
    
        <!-- 做访问控制,按需配置 -->
        <!-- <init-param>
                    <param-name>allow</param-name>
                    <param-value>128.242.127.1/24,128.242.128.1</param-value>
                </init-param>
                <init-param>
                    <param-name>deny</param-name>
                    <param-value>128.242.127.4</param-value>
                </init-param>-->
    </servlet>  
    <servlet-mapping>  
        <servlet-name>DruidStatView</servlet-name>  
        <url-pattern>/druid/*</url-pattern>  
    </servlet-mapping> 
    

3.配置Spring

  1. 配置jdbc.properties.(略)

  2. 配置Spring.xml

     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
         <property name="url" value="${jdbc_url}" />
         <property name="username" value="${jdbc_user}" />
         <property name="password" value="${jdbc_password}" />
    
         <property name="filters" value="stat" />
    
         <property name="maxActive" value="20" />
         <property name="initialSize" value="1" />
         <property name="maxWait" value="60000" />
         <property name="minIdle" value="1" />
    
         <property name="timeBetweenEvictionRunsMillis" value="60000" />
         <property name="minEvictableIdleTimeMillis" value="300000" />
    
         <property name="testWhileIdle" value="true" />
         <property name="testOnBorrow" value="false" />
         <property name="testOnReturn" value="false" />
    
         <property name="poolPreparedStatements" value="true" />
         <property name="maxOpenPreparedStatements" value="20" />
    
         <property name="asyncInit" value="true" />
     </bean>
    
    <bean id="druid-stat-interceptor"
          class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"/>
    
    <bean id="druid-stat-pointcut"
          class="org.springframework.aop.support.JdkRegexpMethodPointcut"
          scope="prototype">
        <property name="patterns">
            <list>
                <value>com.guoy.stms.modules.*.service.*</value>
                <value>com.guoy.stms.modules.*.dao.*</value>
                <value>com.guoy.stms.modules.*.mapper.*</value>
            </list>
        </property>
    </bean>
    
    <aop:config>
        <aop:advisor advice-ref="druid-stat-interceptor"
                     pointcut-ref="druid-stat-pointcut"/>
    </aop:config>
    
    

4.访问监控页面

访问项目地址/druid,输入用户名密码登录即可。

5.碰到的问题

  1. 和mybatis-plus整合的问题。数据库时间格式对应生成实体字段为LocalDateTime,报错java.sql.SQLFeatureNotSupportedException 。

    解决办法:升级druid版本到1.1.18以上

  2. Druid的路径被shiro拦截了,需要shiro放行druid的url。

网站文章

  • 《实用python程序设计》练习题:成绩排序

    描述 给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。 输入 第一行为n (0 &lt; n &lt; 20),表示班里的学生数目; 接下来的n行,每...

    2024-02-29 12:44:07
  • FCFS先来先服务算法C++

    FCFS简单的讲就是先到达的先服务,比如A进程3秒到达,B进程2秒到达的话,那么就让B一直执行到满足它所需的服务时间。它是非抢占式的。**

    2024-02-29 12:43:37
  • 从DDD角度来看MVC

    从DDD角度来看MVC

    DDD不是银弹,只是微服务架构下的最佳代码结构实践

    2024-02-29 12:43:26
  • ansible报错"RequestsDependencyWarning"

    报错提示ans -m ping devS/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.23) or chardet (2.2.1) doesn't match a supported version! RequestsDependencyWarn...

    2024-02-29 12:43:19
  • LeetCode最长有效括号

    LeetCode: Longest Valid Parentheses问题描述Given a string containing just the characters ‘(’ and ‘)’, fi...

    2024-02-29 12:42:50
  • vue axios 兼容性处理

    项目中发现,在安卓4.3及以下的手机不支持axios的使用,主要就是无法使用promise。加上以下polyfill就可以了。 项目中安装es6-promise cnpm install es6-promise --save-dev main.js里面添加 require(&#39;es6-promise&#39;).polyfill()    转载于:https://www.c...

    2024-02-29 12:42:31
  • 交大计算机专硕 学费,从4万涨到12万?上海交通大学这个专业“太贵”,家长:供不起...

    交大计算机专硕 学费,从4万涨到12万?上海交通大学这个专业“太贵”,家长:供不起...

    从4万涨到12万?上海交通大学这个专业“太贵”,家长:供不起。目前,基本很多考生都收到了自己的大学录取通知书,那么大家在收到录取通知书后做的第一件事都是什么呢?谨慎的考生都会检查通知书上的内容,其实这...

    2024-02-29 12:42:03
  • C/C++ 面试题 指针函数和函数指针

    指针函数 指针函数:顾名思义,它的本质是一个函数,不过它的返回值是一个指针。其声明的形式如下所示: ret *func(args, ...); 其中,func是一个函数,args是形参列表,ret *...

    2024-02-29 12:41:55
  • 包过滤防火墙配置和应用

    包过滤防火墙配置和应用

    实验目的:在linux系统下,包过滤防火墙配置及其应用。 实验环境:装linux系统环境(一台:配置包过滤防火墙)和安装Windows2003系统环境(一台:作客户端)。其中一台机器(linux系统)...

    2024-02-29 12:41:47
  • 逆战用计算机咋弹,逆战烟雾弹怎么用_逆战如何利用好烟雾弹_快吧游戏

    很多人在打团队和爆破都忽视了扔雷的技巧,其实学会扔雷将对战局起着重大的改变,特别是扔烟雾和闪光,接下来就为大家一起介绍下吧。烟雾:防止被敌人看见,避免暴露自己身形,缩小双方或狙击可视范围,永远是实行...

    2024-02-29 12:41:17