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