Druid數據庫鏈接池配置

DRUID是阿里巴巴開源平臺上一個數據庫鏈接池實現,它結合了C3P0、DBCP、PROXOOL等DB池的優勢,同時加入了日誌監控,能夠很好的監控DB池鏈接和SQL的執行狀況,能夠說是針對監控而生的DB鏈接池(聽說是目前最好的鏈接池,不知道速度有沒有BoneCP快)。css

1.pom中導入依賴包html

<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.17</version>
</dependency>
<dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.24</version>
</dependency>

2.web.xml中java

//Web關聯監控配置(WebStatFilter用於採集web-jdbc關聯監控的數據)
  <filter>
    <filter-name>DruidWebStatFilter</filter-name>
    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    <init-param>
      <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>

注意:此處的/druid/*不是註釋mysql

/*Druid內置提供了一個StatViewServlet用於展現Druid的統計信息。
 這個StatViewServlet的用途包括:(1)提供監控信息展現的html頁面(2)提供監控信息的JSON API
*/
// 使用Druid的內置監控頁面,訪問http://localhost:8080/invest/druid/sql.html
  <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>

3.在applicationContext.xml或者applicationContext-jpa.xml配置Druid數據源web

// 配置druid數據源(阿里巴巴的Druid數據庫鏈接池)
    <bean id="dataSource-mysql" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        /*基本屬性 url、user、password,其中驅動driverClass可配可不配,若是不配置druid會根據url自動識別dbType,而後選擇相應的driverClassName*/        <property name="url" value="${jdbc.jdbcUrl}" />
        <property name="username" value="${jdbc.user}" />
        <property name="password" value="${jdbc.password}" />
    
        // 配置初始化大小、最小、最大鏈接數 
        <property name="initialSize" value="${druid.initialSize}" />
        <property name="minIdle" value="${druid.minIdle}" />
        <property name="maxActive" value="${druid.maxActive}" />

        // 配置數據庫編碼爲UTF8MB4 
        <property name="connectionInitSqls" value="set names utf8mb4;"/>

        // 配置獲取鏈接等待超時的時間 
        <property name="maxWait" value="${druid.maxWait}" />
    
        // 配置間隔多久才進行一次檢測,檢測須要關閉的空閒鏈接,單位是毫秒        
         <property name="timeBetweenEvictionRunsMillis" 
                         value="${druid.timeBetweenEvictionRunsMillis}" />
    
        // 配置一個鏈接在池中最小生存的時間,單位是毫秒 
        <property name="minEvictableIdleTimeMillis" 
                        value="${druid.minEvictableIdleTimeMillis}" />
    
        <property name="validationQuery" value="${druid.validationQuery}" />
        <property name="testWhileIdle" value="${druid.testWhileIdle}" />
        <property name="testOnBorrow" value="${druid.testOnBorrow}" />
        <property name="testOnReturn" value="${druid.testOnReturn}" />
    
        // 打開PSCache,而且指定每一個鏈接上PSCache的大小 
        <property name="poolPreparedStatements"  
                        value="${druid.poolPreparedStatements}" />
        <property name="maxPoolPreparedStatementPerConnectionSize"
                 value="${druid.maxPoolPreparedStatementPerConnectionSize}" />
    
        /*打開Druid的監控統計功能(Druid內置提供一個StatFilter,用於統計監控信息。StatFilter的別名是stat)*/
        /*配置監控統計攔截的filters,去掉後監控界面sql沒法統計,常見的filters有stat,wall,log4j等 */
        <property name="filters" value="${druid.filters}" />   
    </bean>

 

參考連接:http://www.cnblogs.com/niejunlei/p/5977895.html以及http://www.cnblogs.com/xdp-gacl/p/4002804.htmlsql

相關文章
相關標籤/搜索