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

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

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

        明月松間照 清泉石上流


                                            ——— 兵臨城下   貓科動物
    posts - 70, comments - 137, trackbacks - 0, articles - 23
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Spring 學習筆記(一)

    Posted on 2006-12-04 11:57 兵臨城下 閱讀(348) 評論(0)  編輯  收藏 所屬分類: Spring
    聲明式的事務劃分

    我們可以使用Spring的AOP TransactionInterceptor來替換事務劃分的手工代碼, 這需要在application context中定義interceptor。 這個方案使得你可以把業(yè)務對象從每個業(yè)務方法中重復的事務劃分代碼中解放出來。 此外,像傳播行為和隔離級別等事務概念能夠在配置文件中改變,而不會影響業(yè)務對象的實現(xiàn)。

    <beans>
    
        ...
    
        <bean id="myTransactionManager" 
            class="org.springframework.orm.hibernate.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref bean="mySessionFactory"/>
            </property>
        </bean>
    
        <bean id="myTransactionInterceptor" 
            class="org.springframework.transaction.interceptor.TransactionInterceptor">
            <property name="transactionManager">
                <ref bean="myTransactionManager"/>
            </property>
            <property name="transactionAttributeSource">
                <value>
                    product.ProductService.increasePrice*=PROPAGATION_REQUIRED
                    product.ProductService.someOtherBusinessMethod=PROPAGATION_MANDATORY
                </value>
            </property>
        </bean>
    
        <bean id="myProductServiceTarget" class="product.ProductServiceImpl">
            <property name="productDao">
                <ref bean="myProductDao"/>
            </property>
        </bean>
    
        <bean id="myProductService" class="org.springframework.aop.framework.ProxyFactoryBean">
            <property name="proxyInterfaces">
                <value>product.ProductService</value>
            </property>
            <property name="interceptorNames">
                <list>
                    <value>myTransactionInterceptor</value>
                    <value>myProductServiceTarget</value>
                </list>
            </property>
        </bean>
    
    </beans>
    public class ProductServiceImpl implements ProductService {
    
        private ProductDao productDao;
    
        public void setProductDao(ProductDao productDao) {
            this.productDao = productDao;
        }
    
        public void increasePriceOfAllProductsInCategory(final String category) {
            List productsToChange = this.productDAO.loadProductsByCategory(category);
            ...
        }
    
        ...
    
    }







    一個簡便可選的創(chuàng)建聲明式事務的方法是:TransactionProxyFactoryBean, 特別是在沒有其他AOP interceptor牽扯到的情況下。對一個特定的目標bean,
    TransactionProxyFactoryBean用事務配置自己聯(lián)合proxy定義。 這樣就把配置工作減少為配置一個目標bean以及一個 proxy bean的定義
    (少了interceptor的定義)。 此外你也不需要指定事務方法定義在哪一個接口或類中。
    <beans>
    
        ...
    
        <bean id="myTransactionManager" 
            class="org.springframework.orm.hibernate.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref bean="mySessionFactory"/>
            </property>
        </bean>
    
        <bean id="myProductServiceTarget" class="product.ProductServiceImpl">
            <property name="productDao">
                <ref bean="myProductDao"/>
            </property>
        </bean>
    
        <bean id="myProductService" 
            class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
                <ref bean="myTransactionManager"/>
            </property>
            <property name="target">
                <ref bean="myProductServiceTarget"/>
            </property>
            <property name="transactionAttributes">
                <props>
                    <prop key="increasePrice*">PROPAGATION_REQUIRED</prop>
                    <prop key="someOtherBusinessMethod">PROPAGATION_MANDATORY</prop>
                </props>
            </property>
        </bean>
    
    </beans>
    主站蜘蛛池模板: 国产精品99爱免费视频| 久久综合亚洲色hezyo| 午夜网站在线观看免费完整高清观看 | 99久久免费精品国产72精品九九| 中文字幕亚洲一区二区三区| 无码 免费 国产在线观看91| 亚洲不卡无码av中文字幕| 免费无码专区毛片高潮喷水| 亚洲精品国产精品乱码不卡 | 国产日韩成人亚洲丁香婷婷| 成年大片免费高清在线看黄| 国产精品亚洲mnbav网站| 久久精品无码免费不卡| 亚洲情a成黄在线观看动漫尤物| 久久久久免费精品国产小说| 亚洲最大中文字幕| 成年人免费网站在线观看| 亚洲色大18成人网站WWW在线播放| 日本免费v片一二三区| 日韩免费高清一级毛片| 亚洲精品成人无码中文毛片不卡| 久9这里精品免费视频| 亚洲人成在线精品| 国产一级高清视频免费看| eeuss影院www天堂免费| 亚洲美女视频一区| 日韩视频免费在线| sihu国产精品永久免费| 亚洲视频一区网站| 国产高清免费观看| 国产婷婷成人久久Av免费高清| 亚洲春色另类小说| 亚洲av无码不卡私人影院| 免费在线看黄网站| 亚洲日韩一中文字暮| 老司机亚洲精品影视www| 亚洲视频在线观看免费视频| 国产亚洲人成在线播放| 亚洲不卡中文字幕无码| 全免费一级午夜毛片| 毛片在线播放免费观看|