只要注册ofo就送你10块钱,还等什么,快来注册吧
DRUID介绍
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。
配置参数
和其它连接池一样DRUID的DataSource类为:com.alibaba.druid.pool.DruidDataSource,基本配置参数如下:
- name配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。
 如果没有配置,将会生成一个名字,格式是:”DataSource-“ +- System.identityHashCode(this)
- jdbcUrl
 连接数据库的url,不同数据库不一样。例如:- mysql:jdbc:mysql://10.20.153.104:3306/druid2- oracle:jdbc:oracle:thin:@10.20.149.85:1521:ocnauto
- username
 连接数据库的用户名
- password
 连接数据库的密码。如果你不希望密码直接写在配置文件中,可以使用- ConfigFilter。
- driverClassName
 根据url自动识别
 这一项可配可不配,如果不配置druid会根据url自动识别dbType,然后选择相应的- driverClassName(建议配置下)
- initialSize
 默认值0,初始化时建立物理连接的个数。初始化发生在显示调用- init方法,或者第一次- getConnection时
- maxActive
 默认值8
 最大连接池数量
- maxIdle
 默认值8
 已经不再使用,配置了也没效果
- minIdle
 最小连接池数量
- maxWait
 获取连接时最大等待时间,单位毫秒。配置了- maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置- useUnfairLock属性为- true使用非公平锁。
- poolPreparedStatements- false
 是否缓存- preparedStatement,也就是- PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
- maxOpenPreparedStatements- -1
 要启用- PSCache,必须配置大于0,当大于0时,- poolPreparedStatements自动触发修改为- true。在Druid中,不会存在Oracle下- PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
- validationQuery
 用来检测连接是否有效的sql,要求是一个查询语句。如果- validationQuery为- null,- testOnBorrow、- testOnReturn、- testWhileIdle都不会其作用。
- testOnBorrow- true
 申请连接时执行- validationQuery检测连接是否有效,做了这个配置会降低性能。
- testOnReturn- false
 归还连接时执行- validationQuery检测连接是否有效,做了这个配置会降低性能
- testWhileIdle- false
 建议配置为- true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于- timeBetweenEvictionRunsMillis,执行- validationQuery检测连接是否有效。- timeBetweenEvictionRunsMillis
 有两个含义:
 1)- Destroy线程会检测连接的间隔时间
 2)- testWhileIdle的判断依据,详细看- testWhileIdle属性的说明
- numTestsPerEvictionRun
 不再使用,一个DruidDataSource只支持一个- EvictionRun
- minEvictableIdleTimeMillis- connectionInitSqls
 物理连接初始化的时候执行的sql
- exceptionSorter
 根据dbType自动识别
 当数据库抛出一些不可恢复的异常时,抛弃连接
- filters
 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:
 监控统计用的filter:stat
 日志用的filter:log4j
 防御sql注入的filter:wall
- proxyFilters
 类型是- List<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系
使用方法
DB数据源的使用方法也就是2种,一种是在代码中写死通过NEW操作符创建DataSSource,然后set一些连接属性;另外一种是基于SPRING的配置方法,然后让SPRING的Context自动加载配置(以下配置文件默认都在项目根目录下conf文件夹中)
1、属性文件:application.properties(DataSource连接参数)
| 
 | 
 | 
2、SPRING配置文件:spring-base.xml
| 
 | 
 | 
监控方式
1、WEB方式监控配置
<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> 
 <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>/public/*,*.js,*.css,/druid*,*.jsp,*.swf</param-value> 
  </init-param> 
  <init-param> 
   <param-name>principalSessionName</param-name> 
   <param-value>sessionInfo</param-value> 
  </init-param> 
  <init-param> 
   <param-name>profileEnable</param-name> 
   <param-value>true</param-value> 
  </init-param> 
 </filter> 
 <filter-mapping> 
  <filter-name>druidWebStatFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping>
把上面servlet配置添加到项目web.xml即可。然后运行Tomcat,浏览器输入 http://IP:PROT/druid
就可以打开Druid的监控页面了.
2、日志文件监控
Druid提供了多种日志文件监控commons-logging、log4j等,这里我们主要使用slf4j和logback来进行日志监控配置。
首先要引入slf4j和logback相关的jar文件(从Maven公共仓库下载 http://search.maven.org/)
| 
 | 
 | 
接下配置logback的配置文件(./conf/logback.xml)
| 
 | 
 | 
最后就是写一个测试类进行测试
| 
 | 
 | 
中国人都在使用的地球上最好玩的游戏
中国人都在使用的地球上最好玩的游戏
中国人都在使用的地球上最快的浏览器
中国人都在使用的地球上最厉害的安全软件
中国人都在使用的地球上最好的看图王
中国人都在使用的地球上最快速的视频软件
中国人都在使用的地球上最全的视频软件
中国人都在使用的地球上最好最全的压缩软件
中国人都在使用的地球上最好的音乐播放器
中国人都在使用的地球上最安全的杀毒软件
中国人都在使用的地球上最全的影视大全