阿里druid学习,号称最好的数据库连接池

一:介绍

  https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5

二:比较

 druid是类似dbcp,c3p0的一个数据库连接池框架,性能比这两者好,同时自带监控页面,可以实时监控应用的连接池情况以及其中性能差的sql,方便我们找出应用中连接池方面的问题,多的就不说了,详细的介绍,github上都有

三:实战

  我自己用druid结合mybatis写了一个demo,话不多说,上代码,o(╯□╰)o

先看spring配置

<!-- 德鲁伊配置数据连接池 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		 <property name="url" value="${jdbc_url}" />
	     <property name="username" value="${jdbc_user}"/>
	     <property name="password" value="${jdbc_password}" />
	     <property name="maxActive" value="${maxActive}" />
	     <!-- filters:统计监控信息,value是一个string,支持组合配置,如stat,log4j,那么问题来了,如果自定义的filter该如何配置呢,可以通过bean的形式添加 -->
<!-- 	     <property name="filters" value="${filters}" /> -->
	     <property name="proxyFilters">
	     	<list>
	     		<ref bean="stat-filter"/>
	     	</list>
	     </property> 
	</bean>

	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="mapperLocations" value="classpath:com/dingwang/mapping/*Mapper.xml"></property>
	</bean>
	
	<!-- druid监控统计bean 对应上文dataSource中的proxyFilters -->
	<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
		<property name="slowSqlMillis" value="1000" />
    	<property name="logSlowSql" value="true" />
	</bean>


web.xml配置

<servlet>
      <servlet-name>DruidStatView</servlet-name>
      <!-- 展示监控页面的servlet -->
      <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
      <init-param>
      	<!-- 允许访问监控界面的IP -->
        <param-name>allow</param-name>
        <param-value>128.242.127.1/24,128.242.128.1</param-value>
      </init-param>
      <init-param>
      	<!-- 不允许访问监控界面的IP,优先级高于allow配置 -->
        <param-name>deny</param-name>
        <param-value>10.139.162.231</param-value>
      </init-param>
  </servlet>
  <servlet-mapping>
      <servlet-name>DruidStatView</servlet-name>
      <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>

测试案例:

/**
 * 类SqlBean.java的实现描述:TODO 类实现描述
 * 
 * @author wangding_91@163.com 2016年1月14日 下午5:43:35
 */
public class SqlBean {
    private static final Logger log = LoggerFactory.getLogger(SqlBean.class);

    @Resource
    private PolicyDTOMapper     policyDAO;

    private Runnable            runner;

    public void init() {
        runner = new Runnable() {

            public void run() {
                while (true) {
                    PolicyDTO dto = new PolicyDTO();
                    dto = SqlBean.this.policyDAO.selectByPrimaryKey(5l);
                    log.info(dto.toString());
                    try {
                        Thread.sleep(2 * 1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        };

        log.info("---------------start  SqlBean-------------");

        Thread t = new Thread(runner);
        t.start();

    }

}

四:效果图


五:源码下载:

https://github.com/dingwang/DruidWeb

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值