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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM