<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評(píng)論-598  文章-0  trackbacks-0
         <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
              
    <property name="sessionFactory">
                   
    <ref local="sessionFactory" />
              
    </property>
         
    </bean>
             
        
    <bean id="ordersDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
             
    <property name="transactionManager">
                  
    <ref bean="transactionManager" />
             
    </property>
             
    <property name="target">
                  
    <ref local="ordersDAO" />
             
    </property>
             
    <property name="transactionAttributes">
                  
    <props>
                       
    <prop key="insert*">PROPAGATION_REQUIRED</prop>
                       
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                       
    <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
                  
    </props>
             
    </property>
        
    </bean>
        
        
    <bean id="ordersDAO" class="com.gcoresoft.hibernate.OrdersDAO">
            
    <property name="sessionFactory">
                
    <ref local="sessionFactory" />
            
    </property>
        
    </bean>

        
    <bean name="/addOrder" class="com.gcoresoft.struts.action.OrderAction" singleton="false">
             
    <property name="ordersDAO">
                  
    <ref local="ordersDAOProxy" />
             
    </property>
        
    </bean>
    這個(gè)是傳統(tǒng)的事務(wù)代理方式,下面的是目前開(kāi)發(fā)中一種常用的事務(wù)代理方式(感謝Amigo姐姐)
     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
          
    <property name="sessionFactory">
           
    <ref local="sessionFactory" />
          
    </property>
         
    </bean>

        
    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
            
    <!--  事務(wù)攔截器bean需要依賴(lài)注入一個(gè)事務(wù)管理器 -->
            
    <property name="transactionManager" ref="transactionManager" />
            
    <property name="transactionAttributes">
                
    <!--  下面定義事務(wù)傳播屬性-->
                
    <props>
                    
    <prop key="insert*">PROPAGATION_REQUIRED</prop>
                       
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                       
    <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
                
    </props>
            
    </property>
        
    </bean>

        
    <!-- 定義BeanNameAutoProxyCreator-->
        
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
            
    <!--  指定對(duì)滿(mǎn)足哪些bean name的bean自動(dòng)生成業(yè)務(wù)代理 -->
            
    <property name="beanNames">
                
    <!--  下面是所有需要自動(dòng)創(chuàng)建事務(wù)代理的bean-->
                
    <list>
                    
    <value>ordersDAO</value>
                
    </list>
                
    <!--  此處可增加其他需要自動(dòng)創(chuàng)建事務(wù)代理的bean-->
            
    </property>
            
    <!--  下面定義BeanNameAutoProxyCreator所需的事務(wù)攔截器-->
            
    <property name="interceptorNames">
                
    <list>
                    
    <!-- 此處可增加其他新的Interceptor -->
                    
    <value>transactionInterceptor</value>
                
    </list>
            
    </property>
        
    </bean>

        
    <bean name="/addOrder" class="com.gcoresoft.struts.action.OrderAction" singleton="false">
         
    <property name="ordersDAO">
          
    <ref bean="ordersDAO" />
         
    </property>
        
    </bean>
    不過(guò),如果想使用代理,OrderDAO就必須是一個(gè)接口的實(shí)現(xiàn),public class OrdersDAO extends HibernateDaoSupport implements IOrdersDAO ,然后在相應(yīng)的OrderAction里面
        private IOrdersDAO ordersDAO;
        
        
    /**
         * 
    @param ordersDAO
         
    */

        
    public void setOrdersDAO(IOrdersDAO ordersDAO)
        
    {
            
    this.ordersDAO=ordersDAO;
        }
    這樣才能使用事務(wù)代理,而不能直接將OrdersDAO作為傳遞參數(shù)的類(lèi)型,因?yàn)槟菢映绦驎?huì)報(bào)錯(cuò)
    Error creating bean with name '/addOrder' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is PropertyAccessExceptionsException (1 errors)。

    P.S:MyEclipse里面可以使用Hibernate Reverse Engineering來(lái)生成DAO,然后用Eclipse的Refactor來(lái)Extract Interface,這樣就方便多了。呵呵!

    ---------------------------------------------------------
    專(zhuān)注移動(dòng)開(kāi)發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2007-05-10 22:27 TiGERTiAN 閱讀(662) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java
    主站蜘蛛池模板: 亚洲色精品三区二区一区| 亚洲综合久久精品无码色欲| 亚洲AV无码国产精品麻豆天美 | 亚洲精品无码成人| 人与动性xxxxx免费| 日批视频网址免费观看| 亚洲成人在线免费观看| 妞干网手机免费视频| 亚洲精品无码专区2| 久久精品国产亚洲av麻豆小说| 中文字幕精品三区无码亚洲| 永久免费AV无码国产网站| 亚洲综合另类小说色区| 亚洲人成日本在线观看| 一个人看的hd免费视频| 99久久这里只精品国产免费| 亚洲av午夜精品无码专区| 国产免费网站看v片在线| 天堂在线免费观看中文版| 亚洲成a∧人片在线观看无码| 免费观看在线禁片| 国产又粗又长又硬免费视频 | 2021久久精品免费观看| 亚洲国产成人久久综合区| 亚洲三级视频在线观看| 天堂在线免费观看中文版| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲乱码无人区卡1卡2卡3| 免费又黄又爽的视频| 亚洲熟妇无码AV| 亚洲国产a级视频| 暖暖在线视频免费视频| 亚洲国产精品自在拍在线播放 | 免费无码又爽又黄又刺激网站| 青青草a免费线观a| 亚洲精品国产免费| 久章草在线精品视频免费观看| 亚洲人6666成人观看| 亚洲精品在线视频| 最近2019中文字幕免费直播| 亚洲AV中文无码乱人伦下载|