Spring、Hibernate、Struts

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            11 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

          Spring的聲明式事務(wù)有以下幾種配置方法:

          1、ProxyFactoryBean/Transaction Interceptor

          2、TransactionProxyFactoryBean

          3、BeanNameAutoProxyCreator

          4、Source-Level Metadata Using Commons Attributes

          5、Source-Level Metadata Using J2SE 5.0 Annotations

          個(gè)人認(rèn)為4和5第一次配置完成后,以后再增加新的bean時(shí)會(huì)比較簡(jiǎn)單,但單單從配置文件上看不易理解。

          本人推薦使用2,配置也十分簡(jiǎn)單,比較容易理解,利用維護(hù)人員的維護(hù)工作,在我做的項(xiàng)目中都是使用這種配置方式。

          另外最好每個(gè)模塊單獨(dú)一個(gè)配置文件,在web.xml中contextConfigLocation的param-value中全部加進(jìn)來。這樣實(shí)際上就解決了使用2時(shí)產(chǎn)生的配置文件太大的問題。

          例子:

          dataAccess-hibernate.xml

          <!-- The DBCP DataSource -->
            
          <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
                  destroy-method
          ="close">
              
          <property name="driverClassName">
                
          <value>${jdbc.driverClassName}</value>
              
          </property>
              
          <property name="url"><value>${jdbc.url}</value></property>
              
          <property name="username"><value>${jdbc.username}</value></property>
              
          <property name="password"><value>${jdbc.password}</value></property>
            
          </bean>

           
          <!-- The transactionmanager to use for regular non JTA datasource -->
            
          <bean id="transactionManager"
              class
          ="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              
          <property name="dataSource">
                
          <ref local="dataSource"/>
              
          </property> 
            
          </bean>


          ticket-service.xml (ticket模塊)
          <!-- Transactional proxy and the primary business object -->
            
          <bean id="ticket.proxy" 
             class
          ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
              
          <property name="transactionManager"><ref bean="transactionManager"/></property>
              
          <property name="target">
                
          <ref local="ticket.service"/>
              
          </property>
              
          <property name="transactionAttributes">
                
          <props>
                  
          <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>
                  
          <prop key="allocate*">PROPAGATION_REQUIRED</prop>
                
          </props>
              
          </property>
            
          </bean>  
             
             
          <!-- The Service class -->
             
          <bean id="ticket.service" class="org.springframework.prospring.ticket.service.BoxOfficeImpl">
                  
          <property name="boxOfficeDao">
                    
          <ref local="ticket.dao"/>
                  
          </property> 
                
          </bean>

             
            
          <!-- The DAO class -->
            
          <bean id="ticket.dao" class="org.springframework.prospring.ticket.dao.jdbc.JdbcBoxOfficeDao">
              
          <property name="dataSource">
                
          <ref local="dataSource"/>
              
          </property> 
            
          </bean>


          web.xml

          <context-param>
            
          <param-name>contextConfigLocation</param-name>
            
          <param-value>/WEB-INF/dataAccess-jdbc.xml   /WEB-INF/conf/ticket-services.xml </param-value>
           
          </context-param>


          這是本人在項(xiàng)目中采取的配置。proxy注入service,service注入dao,配置簡(jiǎn)單明了,如果一個(gè)模塊中有多個(gè)Service類,可以依次添加即可。
          posted on 2005-10-14 11:20 ahgf 閱讀(1123) 評(píng)論(1)  編輯  收藏 所屬分類: Spring

          Feedback

          # re: Professional Java Development with the Spring Framework學(xué)習(xí)筆記(2) - 聲明式事務(wù) 2012-08-27 09:45 】普【】
          【】】  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 饶河县| 深水埗区| 天津市| 夹江县| 盐源县| 庄河市| 长汀县| 北辰区| 璧山县| 章丘市| 肇庆市| 建平县| 舒城县| 岑巩县| 莱芜市| 阿拉善右旗| 柘城县| 泸溪县| 高州市| 峡江县| 社旗县| 柳州市| 宁河县| 鄂尔多斯市| 大田县| 定结县| 西乡县| 海城市| 寻乌县| 府谷县| 彰化县| 台中县| 民和| 营口市| 涿州市| 隆安县| 旬阳县| 平陆县| 商城县| 石门县| 白玉县|