bean.xml,c3p0,dbcp

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="
http://www.springframework.org/schema/beans"
 xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="
http://www.springframework.org/schema/context"
 xmlns:aop="
http://www.springframework.org/schema/aop"
 xmlns:tx="
http://www.springframework.org/schema/tx"
 xsi:schemaLocation="
http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx
          
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
          
   <context:annotation-config/>
   <context:component-scan base-package="com.cbpk"/>
   <aop:aspectj-autoproxy/>
  
   <!--
   <bean
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <value>classpath:jdbc.properties</value>
  </property>
 </bean>
 -->
 <!--<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
   <property name="driverClassName">
  <value>com.mysql.jdbc.Driver</value>
 </property>
  <property name="url">
   <value>jdbc:mysql://10.1.247.22:3306/babyweb</value>
  </property>
  <property name="username">
   <value>baby</value>
  </property>
  <property name="password">
   <value>123456</value>
  </property>
  <property name="maxActive" value="20"></property>
  <property name="maxIdle" value="500"></property>
  <property name="maxWait" value="800"></property>
  <property name="removeAbandoned" value="true"></property>
  <property name="removeAbandonedTimeout" value="3"></property>
  
 </bean>
 -->
 
 <bean id="dataSource"  class="com.mchange.v2.c3p0.ComboPooledDataSource"      destroy-method="close"> 

        <property name="driverClass"> 

            <value>com.mysql.jdbc.Driver</value> 

        </property> 

        <property name="jdbcUrl"> 

            <value>jdbc:mysql://10.1.247.22:3306/BabyWeb?useUnicode=true&amp;characterEncoding=GBK</value> 

        </property> 

        <property name="user"> 

            <value>baby</value> 

        </property> 

        <property name="password"> 

            <value>123456</value> 

        </property> 

    <!--連接池中保留的最小連接數。--> 

        <property name="minPoolSize"> 

            <value>5</value> 

        </property> 

    <!--連接池中保留的最大連接數。Default: 15 --> 

        <property name="maxPoolSize"> 

            <value>30</value> 

        </property> 

   <!--初始化時獲取的連接數,取值應在minPoolSize與maxPoolSize之間。Default: 3 --> 

        <property name="initialPoolSize"> 

            <value>10</value> 

        </property> 

    <!--最大空閒時間,60秒內未使用則連接被丟棄。若爲0則永不丟棄。Default: 0 --> 

        <property name="maxIdleTime"> 

            <value>60</value> 

        </property> 

    <!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 --> 

        <property name="acquireIncrement"> 

            <value>5</value> 

        </property> 

    <!--JDBC的標準參數,用以控制數據源內加載的PreparedStatements數量。但由於預緩存的statements 

                屬於單個connection而不是整個連接池。所以設置這個參數需要考慮到多方面的因素。 

               如果maxStatements與maxStatementsPerConnection均爲0,則緩存被關閉。Default: 0--> 

        <property name="maxStatements"> 

            <value>0</value> 

        </property> 

    <!--每60秒檢查所有連接池中的空閒連接。Default: 0 --> 

        <property name="idleConnectionTestPeriod"> 

            <value>60</value> 

        </property> 

    <!--定義在從數據庫獲取新連接失敗後重復嘗試的次數。Default: 30 --> 

        <property name="acquireRetryAttempts"> 

            <value>30</value> 

        </property> 

    <!--獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常。但是數據源仍有效 

         保留,並在下次調用getConnection()的時候繼續嘗試獲取連接。如果設爲true,那麼在嘗試 

        獲取連接失敗後該數據源將申明已斷開並永久關閉。Default: false--> 

        <property name="breakAfterAcquireFailure"> 

            <value>true</value> 

        </property> 

    <!--因性能消耗大請只在需要的時候使用它。如果設爲true那麼在每個connection提交的 

            時候都將校驗其有效性。建議使用idleConnectionTestPeriod或automaticTestTable 

             等方法來提升連接測試的性能。Default: false --> 

        <property name="testConnectionOnCheckout"> 

            <value>false</value> 

        </property> 

    </bean> 

 
 
 <!--<bean id="dataSource" destroy-method="close"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
   value="${jdbc.driverClassName}" />
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
 </bean>
 -->
 <bean id="keyWordFilter" class="com.cbpk.util.KeyWordFilter" scope="prototype"></bean>
 
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="packagesToScan">
   <list>
    <value>com.cbpk.beans</value>
   </list>
  </property>
  
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
  </property>
 </bean>

 <bean id="txManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>
 <aop:config>
  <aop:pointcut id="bussinessService"
   expression="execution(public * com.cbpk.dao..*.*(..))" />
   <!--<aop:pointcut expression="execution(public * com.cbpk.action..*.*(..))" id="bussinessService"/>-->
   
  <aop:advisor pointcut-ref="bussinessService"
   advice-ref="txAdvice" />
  
 </aop:config>

 <tx:advice id="txAdvice" transaction-manager="txManager" >
  <tx:attributes>
   <tx:method name="*" propagation="REQUIRED"/>
   <tx:method name="get*" read-only="true"/>
   <tx:method name="change*" propagation="REQUIRED" />
   <tx:method name="delete*" propagation="REQUIRED"/>
   <tx:method name="add*" propagation="REQUIRED"/>
  </tx:attributes>
 </tx:advice>
 
 <!--<tx:annotation-driven transaction-manager="txManager"/>-->
 
 <!--
   <aop:config>
     <aop:aspect id="testaspect" ref="testAop">
      <aop:pointcut expression="execution(* com.lee.service.impl.*.*(..))" id="test"/>
      <aop:before method="before" pointcut-ref="test"/>
     </aop:aspect>
   </aop:config>
  
-->

 <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>
 

</beans>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章