druid+spring配置


 

web.xml配置

    <!-- Druid,監控數據庫,以及WEB訪問連接信息 -->  
<!-- 配置好后訪問 http://ip:port/projectName/druid/index.html --> 
<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,*.ico,*.css,*.ico,*.jsp,*.eot,*.woff,/druid/*,/download/*</param-value>  
    </init-param>  
     <!-- 監控單個url調用的sql列表 -->
    <init-param>
        <param-name>profileEnable</param-name> 
        <param-value>true</param-value>
    </init-param>

    <!-- 可以關閉session統計功能 -->
    <!-- <init-param>
        <param-name>sessionStatEnable</param-name> 
        <param-value>false</param-value>
    </init-param> -->
</filter>  
<filter-mapping>  
    <filter-name>DruidWebStatFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>  

<!-- 配置 Druid 監控信息顯示頁面   該配置可以訪問監控界面,配置好后,訪問http://ip地址:端口號/項目名/druid/index.html-->  
<servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
     <init-param>  
       <!-- 允許清空統計數據 -->  
       <param-name>resetEnable</param-name>  
       <param-value>true</param-value>  
    </init-param>  
  
  <!--   ip過濾規則
        (1)deny優先於allow,如果在deny列表中,就算在allow列表中,也會被拒絕。
        (2)如果allow沒有配置或者為空,則允許所有訪問
        
        ip配置格式
          <IP>
          或者
          <IP>/<SUB_NET_MASK_size>
        其中
          128.242.127.1/24
        24表示,前面24位是子網掩碼,比對的時候,前面24位相同就匹配。
        不支持IPV6
        由於匹配規則不支持IPV6,配置了allow或者deny之后,會導致IPV6無法訪問。
     -->            
     
    <init-param>
       <!-- 訪問IP白名單 -->
       <param-name>allow</param-name>
       <param-value>192.168.1.253</param-value>
    </init-param>
    <init-param>
       <!-- 訪問IP黑名單 --> 
        <param-name>deny</param-name> 
        <param-value>192.168.1.252</param-value>
    </init-param>
    <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>

 

 

數據源配置

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
        <property name="driverClassName" value="${database.className}" />
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.username}" />
        <property name="password" value="${database.password}" />
        
        <property name="maxActive" value="20" />
        <property name="initialSize" value="1" />
        <property name="maxWait" value="60000" />
        <property name="minIdle" value="1" />

        <property name="validationQuery" value="SELECT 1" /> <!-- 驗證連接是否成功, SQL SELECT 指令至少要返回一行  (測試/驗證連接池連接的SQL語句也因數據庫而異)-->
        <property name="testOnBorrow" value="false" /> <!-- 申請連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。 --> 
        <property name="testOnReturn" value="false" /> <!-- 歸還連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能 -->
        <property name="minEvictableIdleTimeMillis" value="300000" /> <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
         <!-- 建議配置為true,不影響性能,並且保證安全性。申請連接的時候檢測,如果空閑時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。 -->
        <property name="testWhileIdle" value="true" />
        <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="30000" />
        <property name="maxOpenPreparedStatements" value="20" /><!-- 要啟用PSCache,必須配置大於0,當大於0時,poolPreparedStatements自動觸發修改為true。 -->
        <!-- 是否緩存preparedStatement,也就是PSCache。PSCache對支持游標的數據庫性能提升巨大,比如說oracle。在mysql5.5以下的版本中沒有PSCache功能,建議關閉掉。5.5及以上版本有PSCache,建議開啟。 -->
        <property name="poolPreparedStatements" value="true" />
        <!-- 指定每個PSCache連接上PSCache的大小 -->
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
        
        <!-- 配置監控統計攔截的filters 去掉后監控界面sql無法統計
            開啟web監控、開啟sql防火牆 -->
        <property name="filters" value="stat,wall"></property>
    </bean>

    <!-- 開啟事務注解驅動 --> 
    <tx:annotation-driven transaction-manager="transactionManager" />
    
    <bean id="transactionManager" 
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <bean id="transactionInterceptor"
        class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <!-- 事務攔截器需要依賴注入一個事務管理器 -->
        <property name="transactionManager" ref="transactionManager" />
        <!-- 定義事務傳播屬性 -->
        <property name="transactionAttributes">
            <props>
                <prop key="*">PROPAGATION_REQUIRED</prop>
            </props>
        </property>
    </bean>

 

 

 

配置_Druid和Spring關聯監控配置

<!-- 開啟spring方法調用監控 -->
    <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean>
    <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
       <property name="patterns">
           <list>
               <value>cn.zsmy.palmdoctor.biz.web.impl.*</value>
               <value>cn.zsmy.palmdoctor.action.*</value>
               <value>cn.zsmy.palmdoctor.action.web.impl.*</value>
               <value>cn.zsmy.palmdoctor.doctor.web.impl.*</value>
               <value>cn.zsmy.palmdoctor.patient.web.impl.*</value>
               <value>cn.zsmy.palmdoctor.sys.web.impl.*</value>
               <value>cn.zsmy.palmdoctor.web.impl.*</value>
           </list>
       </property>
    </bean>
    
    <aop:config>
            <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />
    </aop:config>    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM