SSM项目下Druid连接池的配置及数据源监控的使用

一,连接池的配置

在pom.xml中添加,druid的maven信息

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.21</version>
</dependency>

数据源设置:

要在init-method设置init方法,才能在监控页面中查看数据源等操作 
<!--使用druid数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init">
        <!--注入连接属性-->
        <property name="driverClassName" value="${jdbc.driverClass}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
        <!--初始化连接池大小-->
        <property name="initialSize" value="5"></property>
        <!--设置最大连接数-->
        <property name="maxActive" value="10"></property>
        <!--设置等待时间-->
        <property name="maxWait" value="5000"/>
        <!--配置数据源监控的filter-->
        <property name="filters" value="stat"></property>
    </bean>

二,数据源监控的配置:

druid数据源监控是通过其support包下的StatViewServlet来提供的,所以要在web.xml进行servlet的配置

StatViewServlet的部分代码如下:

public class StatViewServlet extends ResourceServlet {
    private static final Log LOG = LogFactory.getLog(StatViewServlet.class);
    private static final long serialVersionUID = 1L;
    public static final String PARAM_NAME_RESET_ENABLE = "resetEnable";
    public static final String PARAM_NAME_JMX_URL = "jmxUrl";
    public static final String PARAM_NAME_JMX_USERNAME = "jmxUsername";
    public static final String PARAM_NAME_JMX_PASSWORD = "jmxPassword";
    private DruidStatService statService = DruidStatService.getInstance();
    private String jmxUrl = null;
    private String jmxUsername = null;
    private String jmxPassword = null;
    private MBeanServerConnection conn = null;

    public StatViewServlet() {
        super("support/http/resources");
    }

StatViewServlet

其资源路径在

"support/http/resources" 主要是一些静态的前端资源文件,所以要在filter中过滤

web.xml配置

<!-- druid的监控配置 -->
  <servlet>
    <servlet-name>StatViewServlet</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <!--登陆名-->
    <init-param>
      <param-name>loginUsername</param-name>
      <param-value>admin</param-value>
    </init-param>
    <!-- 登录密码-->
    <init-param>
      <param-name>loginPassword</param-name>
      <param-value>root</param-value>
    </init-param>
    <!--白名单-->
    <init-param>
      <param-name>allow</param-name>
      <param-value></param-value>
    </init-param>
    <!--黑名单-->
    <init-param>
      <param-name>deny</param-name>
      <param-value></param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>StatViewServlet</servlet-name>
    <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>

  <filter>
    <filter-name>WebStatFilter</filter-name>
    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    <!--过滤的样式-->
    <init-param>
      <param-name>exclusions</param-name>
      <param-value>*.js,*.gif,*.css,*.ico,*.jpg,*.png,/druid/*</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>WebStatFilter</filter-name>
    <servlet-name>StatViewServlet</servlet-name>
  </filter-mapping>
  <!--druid监控配置结束-->

配置完成访问项目路径下的 “/druid/就能进入监控页面,登入用户名和密码就是在servlet中配置的

原文地址:https://www.cnblogs.com/flytree/p/12325560.html

时间: 2024-11-06 07:21:29

SSM项目下Druid连接池的配置及数据源监控的使用的相关文章

使用druid连接池,配置sql防火墙发现的sql注入问题

最近在使用druid连接池,同时也配置了web和spring的关联监控,检测到select * from tables param like #{param1} "%"的语句被拦截了.做个笔记. 解决方法有两种: 一. select * from tables param like concat(${param1},"%"). 二.传入 参数的时候动态拼接 param1=param1+"%"; select * from tables param

SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面

一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Loging能诊断Hack应用行为.Druid连接池是阿里巴巴内部唯一使用的连接池,在内部数据库相关中间件TDDL/DRDS 都内置使用强依赖了Druid连接池,经过阿里内部数千上万的系统大规模验证,经过历年双十一超大规模并发验证. 2.druid特点 1)稳定性特性,阿里巴巴的业务验证 2)完备的监控信息,

Druid连接池简单配置

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

spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置(二)+Druid连接池

接上一个博文(http://www.loveweir.com/html/18.html),没有数据库连接池,纯粹用jpa的官方链接. 所以这次要加上连接池本文用Druid连接池来实现多数据源的配置. persistence.xml 这个文件可以省略了,全部配置在applicationContext.xml 里面: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www

SpringBoot配置MySql数据库和Druid连接池

1.pom文件增加相关依赖,我这里因为上面引入了父pom,所以不需要在当前pom文件下加版本 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifact

druid连接池

近期一直报连接池连接的错误,主要就是那个什么last packet 多少ms以前. 所以就研究了下. druid连接池和mysql的连接关系可以简单理解为下面的案例. 有10个接线员A和远程10个接口员B在通讯,如果不用连接池,那么每用一次就要拨号.建立链接.通话.挂断,非常浪费时间.所以如果10个接线员A提前就和B接通,然后一直不挂断,这样需要时只要喊话一下就行了,效率高,真正的基于TCP连接可以参考下载 但是这样会导致一个问题,如果B偷懒,偷偷的将电话挂断,而A不知道,再讲话就会出错了. 针

SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么. 暂时没有整合缓存,druid也没有做ip地址的过滤.Spring的AOP简单配置了下,也还没具体弄,不知道能不能用,log也不知道能不能用,`(*∩_∩*)′哈哈,有点不负责任...... 直接上代码: 使用的eclipse和eclipse自带的maven,参考了网上的资料,有些代码是拷贝的,不过都自己测试过了.嗯,可以跑起来... 先上项目结构: 新建maven项目,选择web,然后配置pom: <pro

Druid连接池及监控在spring中的配置

Druid连接池及监控在Spring配置如下: [html] view plaincopy <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url.user.password --> <property 

Spring Boot2.x 的Druid连接池配置[附带监控]

父依赖[Spring Boot 2.1.x版本] <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </parent> 主要依赖[3个] <!--Druid 连接池与Spring B