标签:
Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。
1、pom里面添加相关的dependency
1 <dependency> 2 <groupId>com.alibaba</groupId> 3 <artifactId>druid</artifactId> 4 <version>0.2.25</version> 5 </dependency> 6 <dependency> 7 <groupId>com.alibaba</groupId> 8 <artifactId>dubbo</artifactId> 9 <version>2.5.3</version> 10 </dependency>
2、在spring 配置文件application-context.xml里面配置dataSource
1 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 2 <property name="driverClassName" value="${jdbc.driver}"/> 3 <property name="url" value="${jdbc.url}"/> 4 <property name="username" value="${jdbc.username}"/> 5 <property name="password" value="${jdbc.password}"/> 6 <property name="dbType" value="mysql"/> 7 <property name="initialSize" value="${jdbc.initialSize}"/> 8 <property name="minIdle" value="${jdbc.minIdle}"/> 9 <property name="maxActive" value="${jdbc.maxActive}"/> 10 <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}"/> 11 <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}"/> 12 <property name="validationQuery" value="${jdbc.validationQuery}"/> 13 <property name="testWhileIdle" value="${jdbc.testWhileIdle}"/> 14 <property name="testOnBorrow" value="${jdbc.testOnBorrow}"/> 15 <property name="testOnReturn" value="${jdbc.testOnReturn}"/> 16 <property name="maxOpenPreparedStatements" value="${jdbc.maxOpenPreparedStatements}"/> 17 <property name="removeAbandoned" value="${jdbc.removeAbandoned}"/> 18 <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/> 19 <property name="logAbandoned" value="${jdbc.logAbandoned}"/> 20 <property name="filters" value="${jdbc.filtes}"/> 21 </bean>
其中 init-method="init" 初始化的时候加载该dataSource;driverClassName也可以省略,因为druid可以根据url识别其driver;在识别特定的数据库时需要特别指定dbType类型(例如:在连接Sqlite是,其类型要写成mysql);
3、properties文件
jdbc.url=jdbc:mysql://127.0.0.1:3306/upp?useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=root jdbc.initialSize=1 jdbc.minIdle=1 jdbc.maxActive=20 jdbc.timeBetweenEvictionRunsMillis=60000 jdbc.minEvictableIdleTimeMillis=300000 jdbc.validationQuery=SELECT ‘x‘ jdbc.testWhileIdle=true jdbc.testOnBorrow=false jdbc.testOnReturn=false jdbc.maxOpenPreparedStatements=-1 jdbc.removeAbandoned=true jdbc.removeAbandonedTimeout=1800 jdbc.logAbandoned=true jdbc.filtes=wall,stat
一般情况只需要修改url、username、password即可。
4、web.xml配置
1 <filter> 2 <filter-name>DruidWebStatFilter</filter-name> 3 <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> 4 <init-param> 5 <param-name>exclusions</param-name> 6 <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value> 7 </init-param> 8 </filter> 9 <filter-mapping> 10 <filter-name>DruidWebStatFilter</filter-name> 11 <url-pattern>/*</url-pattern> 12 </filter-mapping> 13 <servlet> 14 <servlet-name>DruidStatView</servlet-name> 15 <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> 16 </servlet> 17 <servlet-mapping> 18 <servlet-name>DruidStatView</servlet-name> 19 <url-pattern>/druid/*</url-pattern> 20 </servlet-mapping>
如果在DruidStatView里添加下面的参数可以为监控页面设置账号密码:
1 <servlet> 2 <servlet-name>DruidStatView</servlet-name> 3 <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> 4 <init-param> 5 <param-name>resetEnable</param-name> 6 <param-value>false</param-value> 7 </init-param> 8 <init-param> 9 <!-- 用户名 --> 10 <param-name>loginUsername</param-name> 11 <param-value>username</param-value> 12 </init-param> 13 <init-param> 14 <!-- 密码 --> 15 <param-name>loginPassword</param-name> 16 <param-value>password</param-value> 17 </init-param> 18 </servlet>
5、可以通过web页面访问监控页面
更详细的内容可以参考 http://www.cnblogs.com/niejunlei/p/5977895.html。
谢谢大家!
标签:
原文地址:http://www.cnblogs.com/espooky/p/5979216.html