阿里druid数据源配置

学习:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

一.maven配置pom.xml

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.26</version>
    </dependency>

二.配置数据源

1.生产环境配置tomcat配置文件

    <Resource
        name="jdmarket"
        factory="com.alibaba.druid.pool.DruidDataSourceFactory"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"                        
        username="jdmarket"
        password="bfdds06fd"
        maxActive="100"                        
        maxWait="5000"
        url="jdbc:oracle:thin:@192.168.44.132:1521:jd318"
        filters="stat-filter,wall-filter"/>

 

2.开发环境配置在spring配置文件里

<beans>
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  init-method="init" destroy-method="close">
            <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
            <property name="url" value="jdbc:oracle:thin:@192.168.44.132:1521:jd318" />
            <property name="username" value="jdmarket" />
            <property name="password" value="bfdds06fd" />
            配置监控统计拦截的filters
              <property name="filters" value="stat" /> 
              配置初始化大小、最小、最大
            <property name="initialSize" value="1" />
            <property name="minIdle" value="1" /> 
            <property name="maxActive" value="20" />
        </bean>
    </beans>

三.web.xml配置添加监控页面,druid本身已经有了监控页面,所以只需要加一个servlet,就可以访问,访问路径:http://localhost:80/工程名/druid/index.html

  例如:http://m.hcjdc.com/hcjdcwap/druid/index.html

    <!-- druid内置监控页面 -->
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        <init-param>  
        <!-- 用户名 -->  
        <param-name>loginUsername</param-name>  
        <param-value>druid</param-value>  
        </init-param>  
        <init-param>  
        <!-- 密码 -->  
        <param-name>loginPassword</param-name>  
        <param-value>druid</param-value>  
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>

四.当然还可以添加其他配置

 

例子:hcjdcwap

1.tomcat数据源配置

<?xml version='1.0' encoding='utf-8'?>
 <Context docBase="D:\javeworkspace\hcjdcwap_branch\src\main\webapp" privileged="true">
 
    <Resource
        name="jdmarket"
        factory="com.alibaba.druid.pool.DruidDataSourceFactory"
        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"                        
        username="jdmarket"
        password="bfdds06fd"
        maxActive="100"                        
        maxWait="5000"
        url="jdbc:oracle:thin:@192.168.44.132:1521:jd318"
        filters="stat-filter,wall-filter"/>
            
</Context>
View Code

请注意filters="stat-filter,wall-filter"

2.web.xml配置

<!-- druid 配置Web的关联监控-->
    <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内置监控页面 -->
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
        <init-param>  
        <!-- 用户名 -->  
        <param-name>loginUsername</param-name>  
        <param-value>druid</param-value>  
        </init-param>  
        <init-param>  
        <!-- 密码 -->  
        <param-name>loginPassword</param-name>  
        <param-value>druid</param-value>  
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>
View Code

3.applicationContext-datasource.xml配置

    <import resource="classpath:spring/datasource/marketdb.xml" />
    <!--生产环境数据源配置 -->   
    <beans profile="production">
        <!-- druid配置 -->
        <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
            <!-- 慢SQL记录 超过3秒 -->
            <property name="slowSqlMillis" value="3000" />
            <property name="logSlowSql" value="true" />
            <!-- 合并sql -->
            <property name="mergeSql" value="true" />
        </bean>
        <!-- 防sql注入 -->
        <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
            <property name="dbType" value="oracle" />
        </bean>
        <!-- druid配置 end -->
        <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
            <property name="jndiName" value="java:comp/env/jdmarket" /> 
        </bean>
    </beans>
View Code

注意:

  1.tomcat数据源添加的filter就是applicationContext-datasource.xml里添加的过滤器

  2.web.xml配置还加了一个web关联监控

  3.报错:not support oracle driver 1.0

    原因有两个:1.确实是ojdbc版本太低

          2.ojdbc包冲突,冲突包括pom.xml和tomcat里的包,大多数情况下都是这个原因报错

posted @ 2016-10-13 14:01  刘尊礼  阅读(333)  评论(0)    收藏  举报