Spring配置中的常见配置说明 .

先贴2个小例子!

applicationContext-a.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.   
  5.     <bean id="jndiDataSource"  
  6.         class="org.springframework.jndi.JndiObjectFactoryBean">  
  7.         <property name="jndiName">  
  8.             <value>OracleDataSource</value>  
  9.         </property>  
  10.     </bean>  
  11.   
  12. <!--  
  13.     <bean id="jndiDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  14.         <property name="driverClassName">  
  15.             <value>oracle.jdbc.driver.OracleDriver</value>  
  16.         </property>  
  17.         <property name="url">  
  18.             <value>url地址</value>  
  19.         </property>  
  20.         <property name="username">  
  21.             <value>用户</value>  
  22.         </property>  
  23.         <property name="password">  
  24.             <value>密码</value>  
  25.         </property>  
  26.     </bean>     
  27.  -->     
  28.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  29.         <property name="dataSource">  
  30.             <ref bean="jndiDataSource"/>  
  31.         </property>  
  32.         <property name="hibernateProperties">  
  33.             <props>  
  34.                 <prop key="hibernate.dialect">  
  35.                     org.hibernate.dialect.Oracle9Dialect  
  36.                 </prop>  
  37.                 <prop key="hibernate.show_sql">  
  38.                     false  
  39.                 </prop>  
  40.                 <prop key="hibernate.query.factory_class">  
  41.                      org.hibernate.hql.classic.ClassicQueryTranslatorFactory  
  42.                 </prop>  
  43.             </props>  
  44.         </property>  
  45.         <property name="mappingResources">  
  46.             <list>  
  47.                 <value>cn/ccb/faengine/mapxml/ParamEssentials.hbm.xml</value>  
  48.                 <value>cn/ccb/faengine/mapxml/AccountCalEssentials.hbm.xml</value>  
  49.             </list>  
  50.         </property>  
  51.     </bean>  
  52.   
  53.     <bean id="commonJdbcDAO"  
  54.         class="cn.ccb.faengine.common.dao.jdbc.impl.CommonJdbcDAO">  
  55.         <property name="jdbcTemplate">  
  56.             <ref bean="jdbcTemplate" />  
  57.         </property>  
  58.     </bean>  
  59.       
  60.   
  61.     <bean id="commonHibernateDAO"  
  62.         class="cn.ccb.faengine.common.dao.hibernate.impl.CommonHibernateDAO">  
  63.         <property name="hibernateTemplate">  
  64.             <ref bean="hibernateTemplate" />  
  65.         </property>  
  66.     </bean>  
  67.   
  68.     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">  
  69.         <property name="sessionFactory">  
  70.             <ref bean="sessionFactory"/>  
  71.         </property>  
  72.     </bean>  
  73.   
  74.     <bean id="jdbcTemplate"  
  75.         class="org.springframework.jdbc.core.JdbcTemplate">  
  76.         <property name="dataSource">  
  77.             <ref bean="jndiDataSource" />  
  78.         </property>  
  79.     </bean>  
  80.   
  81.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  82.         <property name="sessionFactory">  
  83.             <ref bean="sessionFactory"/>  
  84.         </property>  
  85.     </bean>  
  86.   
  87.     <bean id="baseTransactionProxy"  
  88.     class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  abstract="true">  
  89.           <property name="transactionManager" ref="transactionManager"/>  
  90.           <property name="transactionAttributeSource">  
  91.             <ref bean="reqNamingTransactionAttribute" />  
  92.           </property>  
  93.     </bean>  
  94.   
  95.     <bean id="reqNamingTransactionAttribute"  
  96.         class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">  
  97.         <property name="properties">  
  98.             <props>  
  99.                 <prop key="*">  
  100.                     PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception  
  101.                 </prop>  
  102.             </props>  
  103.         </property>  
  104.     </bean>  
  105.       
  106.     <!-- jta事务拦截-->  
  107.     <bean id="jtaReqBaseTransactionProxy"   
  108.     class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  
  109.       abstract="true">  
  110.           <property name="transactionManager" ref="jtaTransactionManager"/>  
  111.           <property name="transactionAttributeSource">  
  112.             <ref bean="reqNamingTransactionAttribute" />  
  113.           </property>  
  114.     </bean>  
  115.   
  116.   
  117.     <!-- jta事务管理-->  
  118.     <bean id="jtaTransactionManager"  
  119.         class="org.springframework.transaction.jta.JtaTransactionManager">  
  120.     </bean>  
  121.   
  122.     <!-- jta事务拦截-->  
  123.     <bean id="jtaBaseTransactionProxy"   
  124.     class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  
  125.       abstract="true">  
  126.           <property name="transactionManager" ref="jtaTransactionManager"/>  
  127.           <property name="transactionAttributeSource">  
  128.             <ref bean="reqNamingTransactionAttribute" />  
  129.           </property>  
  130.     </bean>  
  131.       
  132.   
  133. </beans>  
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>OracleDataSource</value> </property> </bean> <!-- <bean id="jndiDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>url地址</value> </property> <property name="username"> <value>用户</value> </property> <property name="password"> <value>密码</value> </property> </bean> --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="jndiDataSource"/> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> <prop key="hibernate.show_sql"> false </prop> <prop key="hibernate.query.factory_class"> org.hibernate.hql.classic.ClassicQueryTranslatorFactory </prop> </props> </property> <property name="mappingResources"> <list> <value>cn/ccb/faengine/mapxml/ParamEssentials.hbm.xml</value> <value>cn/ccb/faengine/mapxml/AccountCalEssentials.hbm.xml</value> </list> </property> </bean> <bean id="commonJdbcDAO" class="cn.ccb.faengine.common.dao.jdbc.impl.CommonJdbcDAO"> <property name="jdbcTemplate"> <ref bean="jdbcTemplate" /> </property> </bean> <bean id="commonHibernateDAO" class="cn.ccb.faengine.common.dao.hibernate.impl.CommonHibernateDAO"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate" /> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"> <ref bean="jndiDataSource" /> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributeSource"> <ref bean="reqNamingTransactionAttribute" /> </property> </bean> <bean id="reqNamingTransactionAttribute" class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource"> <property name="properties"> <props> <prop key="*"> PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception </prop> </props> </property> </bean> <!-- jta事务拦截--> <bean id="jtaReqBaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="jtaTransactionManager"/> <property name="transactionAttributeSource"> <ref bean="reqNamingTransactionAttribute" /> </property> </bean> <!-- jta事务管理--> <bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> </bean> <!-- jta事务拦截--> <bean id="jtaBaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="jtaTransactionManager"/> <property name="transactionAttributeSource"> <ref bean="reqNamingTransactionAttribute" /> </property> </bean> </beans>

 

applicationContext-b.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3.   
  4. <beans>  
  5.       
  6.     <bean id="requestUCC" parent="baseTransactionProxy">  
  7.         <property name="target" ref="TargetRequestUCC" />  
  8.     </bean>  
  9.   
  10.     <bean id="TargetRequestUCC"  
  11.         class="cn.ccb.faengine.sysmanage.request.ucc.impl.RequestUCCImpl">  
  12.         <property name="hibernateDAO">  
  13.             <ref bean="commonHibernateDAO" />  
  14.         </property>  
  15.     </bean>  
  16.       
  17.         <!-- 增加UCC and BS 20100420 linwei begin -->  
  18.   
  19.     <bean id="modelMappingUCC" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">  
  20.         <property name="proxyInterfaces">  
  21.             <list>  
  22.                 <value>cn.ccb.faengine.foundation.model.commoncorporation.helper.ucc.IModelMappingUCC</value>  
  23.             </list>  
  24.         </property>  
  25.         <property name="target">  
  26.             <ref bean="modelMappingUCCTarget"/>  
  27.         </property>  
  28.         <property name="transactionManager">  
  29.             <ref bean="transactionManager"/>  
  30.         </property>  
  31.         <property name="transactionAttributeSource">  
  32.             <ref bean="reqNamingTransactionAttribute"/>  
  33.         </property>  
  34.     </bean>  
  35.   
  36.     <bean id="modelMappingUCCTarget" class="cn.ccb.faengine.foundation.model.commoncorporation.helper.ucc.impl.ModelMappingUCCImpl">  
  37.         <property name="modelMappingBS">  
  38.             <ref bean="modelMappingBS"/>  
  39.         </property>  
  40.     </bean>  
  41.       
  42.     <bean id="modelMappingBS" class="cn.ccb.faengine.foundation.model.commoncorporation.helper.bizservice.impl.ModelMappingBSImpl">  
  43.         <property name="hibernateDAO">  
  44.             <ref bean="commonHibernateDAO"/>  
  45.         </property>  
  46.     </bean>  
  47.       
  48.     <!-- 增加UCC and BS 20100420 linwei end -->  
  49.       
  50.       
  51. </beans>  
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="requestUCC" parent="baseTransactionProxy"> <property name="target" ref="TargetRequestUCC" /> </bean> <bean id="TargetRequestUCC" class="cn.ccb.faengine.sysmanage.request.ucc.impl.RequestUCCImpl"> <property name="hibernateDAO"> <ref bean="commonHibernateDAO" /> </property> </bean> <!-- 增加UCC and BS 20100420 linwei begin --> <bean id="modelMappingUCC" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="proxyInterfaces"> <list> <value>cn.ccb.faengine.foundation.model.commoncorporation.helper.ucc.IModelMappingUCC</value> </list> </property> <property name="target"> <ref bean="modelMappingUCCTarget"/> </property> <property name="transactionManager"> <ref bean="transactionManager"/> </property> <property name="transactionAttributeSource"> <ref bean="reqNamingTransactionAttribute"/> </property> </bean> <bean id="modelMappingUCCTarget" class="cn.ccb.faengine.foundation.model.commoncorporation.helper.ucc.impl.ModelMappingUCCImpl"> <property name="modelMappingBS"> <ref bean="modelMappingBS"/> </property> </bean> <bean id="modelMappingBS" class="cn.ccb.faengine.foundation.model.commoncorporation.helper.bizservice.impl.ModelMappingBSImpl"> <property name="hibernateDAO"> <ref bean="commonHibernateDAO"/> </property> </bean> <!-- 增加UCC and BS 20100420 linwei end --> </beans>

 

说明:

 

第一种声明事务实现方式:

 

  <property name="transactionManager">
   <ref bean="transactionManager"/>
  </property>
  <property name="transactionAttributeSource">
   <ref bean="reqNamingTransactionAttribute"/>
  </property>

 

  需要代理的事务中,通过这两个属性进行了事务管理。

 

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

 

 <bean id="reqNamingTransactionAttribute"
  class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
  <property name="properties">
   <props>
    <prop key="*">
     PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception
    </prop>
   </props>
  </property>
 </bean>

 

 有这2个Bean,可以进行事务上的管理控制了!

 

 

第二种声明事务实现方式:

 

 <bean id="requestUCC" parent="baseTransactionProxy">
  <property name="target" ref="TargetRequestUCC" />
 </bean>

 

 <bean id="TargetRequestUCC"
  class="cn.ccb.faengine.sysmanage.request.ucc.impl.RequestUCCImpl">
  <property name="hibernateDAO">
   <ref bean="commonHibernateDAO" />
  </property>
 </bean>

 

  这种方式继承了 父类 parent="baseTransactionProxy" 这个Bean的事务管理方式

 

  <bean id="baseTransactionProxy"
 class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  abstract="true">
    <property name="transactionManager" ref="transactionManager"/>
    <property name="transactionAttributeSource">
     <ref bean="reqNamingTransactionAttribute" />
    </property>
 </bean>

转载于:https://my.oschina.net/u/219582/blog/59477

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值