zoukankan      html  css  js  c++  java
  • Spring整合Druid

    Druid是一个JDBC组件,它包括三部分: 

    • DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 

    • DruidDataSource 高效可管理的数据库连接池。 

    • SQLParser 

    Druid功能

    1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 

    2) 替换DBCPC3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 

    3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。 

    4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-LoggingLog4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。 

    扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。 

    整合过程如下:

    pom.xml

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.23</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
    </dependency>

    jdbc.propoties(配置数据库连接)

    #JDBC
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/myshop
    jdbc.username=root
    jdbc.password=root
    #JDBC Pool
    jdbc.pool.init=1
    jdbc.pool.minIdle=3
    jdbc.pool.maxActive=20
    #JDBC Test
    jdbc.testSql=select 'x'from DUAL

    Spring 集成 Druid

    新建spring-context-druid.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           https://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--加载配置属性文件-->
        <context:property-placeholder  ignore-unresolvable="true" location="classpath:myshop.properties"/>
        <!--数据源配置,使用Druid数据库连接池-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <!--数据驱动类-->
            <property name="driverClassName" value="${jdbc.driverClass}"/>
            <!--基本属性  url   user  password-->
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
            <!--配置初始化大小,最大,最小-->
            <property name="initialSize" value="${jdbc.pool.init}"/>
            <property name="minIdle" value="${jdbc.pool.minIdle}"/>
            <property name="maxActive" value="${jdbc.pool.maxActive}"/>
            <!--配置获取连接等待超时时间-->
            <property name="maxWait" value="60000"/>
            <!--配置间隔多久进行一次检测,检测需要关闭空闲连接-->
            <property name="timeBetweenEvictionRunsMillis" value="60000"/>
            <!--配置一个连接在池中最小的生存时间-->
            <property name="minEvictableIdleTimeMillis" value="300000"/>
            <property name="validationQuery" value="${jdbc.testSql}"/>
            <property name="testWhileIdle" value="true"/>
            <property name="testOnBorrow" value="false"/>
            <property name="testOnReturn" value="false"/>
           <!-- 配置监控统计拦截的filters-->
            <property name="filters" value="stat"/>
        </bean>
    </beans>

    配置Druid监控中心

    在web.xml中配置一个Servlet,即可获取监控信息 。

    <servlet>
            <servlet-name>DruidStatView</servlet-name>
            <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>DruidStatView</servlet-name>
            <url-pattern>/druid/*</url-pattern>
        </servlet-mapping>
  • 相关阅读:
    Delphi 2009 泛型容器单元(Generics.Collections)[5]: TObject...<T> 系列
    Delphi 2009 中 TStrings 与 TStream 的增强
    Delphi 2009 泛型容器单元(Generics.Collections)[4]: TDictionary<T>
    Delphi 2009 泛型容器单元(Generics.Collections)[1]: TList<T>
    Delphi 2009 中 string 与 Char 的改变
    Delphi 2009 的反射单元(ObjAuto):
    Delphi 2009 泛型容器单元(Generics.Collections)[3]: TStack<T>
    博客园电子期刊2010年4月刊发布啦
    上周热点回顾(5.105.16)
    上周热点回顾(4.265.2)
  • 原文地址:https://www.cnblogs.com/2016-zck/p/13324569.html
Copyright © 2011-2022 走看看