<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| 毛片无码免费无码播放| 欧洲一级毛片免费| 夫妻免费无码V看片| 四虎免费永久在线播放| 国产亚洲成AV人片在线观黄桃| 久久久国产精品亚洲一区| 成人区精品一区二区不卡亚洲| 麻豆安全免费网址入口| 久久免费国产视频| 免费高清小黄站在线观看| 国产亚洲精品影视在线产品| 亚洲黄色免费在线观看| 日本系列1页亚洲系列| 国产成人免费AV在线播放| 在线观看特色大片免费视频| 亚洲黄片手机免费观看| 午夜在线免费视频| 久久99精品国产免费观看| 成人爽A毛片免费看| 激情综合色五月丁香六月亚洲| 4444亚洲国产成人精品| 国产成人不卡亚洲精品91| 久久一区二区三区免费播放| 午夜成人免费视频| 久久精品国产亚洲AV麻豆王友容| 国产亚洲精品bv在线观看| 不卡视频免费在线观看| 最新仑乱免费视频| 久久精品国产精品亚洲蜜月| 亚洲欧美日韩一区二区三区| 久久国产乱子伦精品免费强| 成年人视频在线观看免费| 亚洲乳大丰满中文字幕| 亚洲精品无码一区二区 | 在线播放亚洲精品| 99久久精品国产免费| 日韩亚洲国产综合久久久| 亚洲另类精品xxxx人妖| 美女无遮挡拍拍拍免费视频|