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

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

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

    隨筆-193  評(píng)論-715  文章-1  trackbacks-0
    本Blog所有內(nèi)容不得隨意轉(zhuǎn)載,版權(quán)屬于作者所有。如需轉(zhuǎn)載請(qǐng)與作者聯(lián)系( fastzch@163.com )。
    未經(jīng)許可的轉(zhuǎn)載,本人保留一切法律權(quán)益。


    我曾經(jīng)在我的文章《搭建SSH時(shí)的思考和遇到的幾個(gè)問題》中寫過,我為何要使用AutowiringRequestProcessor來作為Struts與Spring集成時(shí)的解決方案,如果不知道這個(gè)Processor的作用和不了解用意的朋友,可以再看看那篇文章。

    今天要說的問題是在使用這個(gè)Processor中的一個(gè)問題。在那篇文章中,我曾提到過,支持byName和byType兩種方式,默認(rèn)是byType方式,但有時(shí)候使用byType可能不行,比如:
    我想使用Spring自帶的聲明式事務(wù),這東東很是不錯(cuò),不用我操心事務(wù)的處理,相信大家也都比較喜歡,比如我的事務(wù)定義?如下:
    ????<bean?id="TransactionAttributeSource"
    ????????class
    ="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
    ????????
    <property?name="properties">
    ????????????
    <props>
    ????????????????
    <prop?key="add*">PROPAGATION_NESTED</prop>
    ????????????????
    <prop?key="delete*">PROPAGATION_NESTED</prop>
    ????????????
    </props>
    ????????
    </property>
    ????
    </bean>
    那么我的Service類就應(yīng)該定義成這樣:
    <bean?id="groupInfoService"
    ????????class
    ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    ????????
    <property?name="proxyInterfaces">
    ????????????
    <list>
    ????????????????
    <value>
    ????????????????????com.eric.ocgweb.biz.vpmn.IGroupInfoService
    ????????????????
    </value>
    ????????????
    </list>
    ????????
    </property>
    ????????
    <property?name="target">
    ????????????
    <ref bean="groupInfoServiceImpl">
    ????????
    </property>
    ????????
    <property?name="transactionManager">
    ????????????
    <ref?bean="TransactionManager"?/>
    ????????
    </property>
    ????????
    <property?name="transactionAttributeSource">
    ????????????
    <ref?bean="TransactionAttributeSource"?/>
    ????????
    </property>
    ????
    </bean>
    然后我還得定義一個(gè)groupInfoServiceImpl的Bean,在此省略。

    根據(jù)Spring的DOC所說,如果想使用byName的方式來自動(dòng)裝載,通過如下配置來實(shí)現(xiàn),修改web.xml中對(duì)于Struts所用的ActionServlet的定義:
    <servlet>
    ????????
    <servlet-name>action</servlet-name>
    ????????
    <servlet-class>
    ????????????org.apache.struts.action.ActionServlet
    ????????
    </servlet-class>
    ????????
    <init-param>
    ????????????
    <param-name>config</param-name>
    ????????????
    <param-value>/WEB-INF/struts-config.xml</param-value>
    ????????
    </init-param>
    ????????
    <init-param>
    ????????????
    <param-name>autowire</param-name>
    ????????????
    <param-value>byName</param-value>
    ????????
    </init-param>
    ????????
    <init-param>
    ????????????
    <param-name>dependencyCheck</param-name>
    ????????????
    <param-value>true</param-value>
    ????????
    </init-param>
    ????????
    <init-param>
    ????????????
    <param-name>debug</param-name>
    ????????????
    <param-value>3</param-value>
    ????????
    </init-param>
    ????????
    <init-param>
    ????????????
    <param-name>detail</param-name>
    ????????????
    <param-value>3</param-value>
    ????????
    </init-param>
    ????????
    <load-on-startup>0</load-on-startup>
    ????
    </servlet>

    但是在我這樣修改之后,當(dāng)應(yīng)用程序在運(yùn)行的時(shí)候,會(huì)提示說找到了兩個(gè)Bean,一個(gè)是groupInfoService,另一個(gè)是groupInfoServiceImpl,似乎并沒有byName。

    所以我不得不采用下面這種形式來定義Spring中的Bean:
    <bean?id="groupInfoService"
    ????????class
    ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    ????????
    <property?name="proxyInterfaces">
    ????????????
    <list>
    ????????????????
    <value>
    ????????????????????com.eric.ocgweb.biz.vpmn.IGroupInfoService
    ????????????????
    </value>
    ????????????
    </list>
    ????????
    </property>
    ????????
    <property?name="target">
    ????????????
    <bean?class="com.eric.ocgweb.biz.vpmn.GroupInfoService">
    ????????????????
    <property?name="groupInfoLogic">
    ????????????????????
    <ref?bean="GroupInfoLogic"?/>
    ????????????????
    </property>
    ????????????
    </bean>
    ????????
    </property>
    ????????
    <property?name="transactionManager">
    ????????????
    <ref?bean="TransactionManager"?/>
    ????????
    </property>
    ????????
    <property?name="transactionAttributeSource">
    ????????????
    <ref?bean="TransactionAttributeSource"?/>
    ????????
    </property>
    ????
    </bean>
    這樣,自動(dòng)裝載時(shí)就只能找到一個(gè)Bean的定義了,就不會(huì)報(bào)不惟一的錯(cuò)了。
    posted on 2008-02-24 00:20 Robin's Programming World 閱讀(2348) 評(píng)論(1)  編輯  收藏 所屬分類: Java

    評(píng)論:
    # re: Struts與Spring集成時(shí)使用AutowiringRequestProcessor產(chǎn)生的問題及解法 2009-02-05 13:45 | ss
    似乎是spring.autowire來聲明byName方式  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲爆乳无码专区| 久久亚洲AV无码西西人体| 亚洲国产成人精品无码一区二区| 黄网站免费在线观看| 精品国产香蕉伊思人在线在线亚洲一区二区 | 国产亚洲3p无码一区二区| 你懂得的在线观看免费视频| 亚洲欧洲精品无码AV| 在线看片免费人成视频福利| 亚洲国产a∨无码中文777| 一级成人a毛片免费播放| 亚洲国产美女在线观看 | 亚洲av片一区二区三区| 羞羞漫画登录页面免费| 亚洲一级片免费看| 久久久国产精品福利免费| 亚洲尹人香蕉网在线视颅| 99久久免费国产精品特黄| 亚洲成av人在线观看网站| 免费在线观看毛片| 国产又黄又爽胸又大免费视频 | 亚洲午夜精品久久久久久浪潮| eeuss影院www天堂免费| 亚洲av女电影网| 99久久这里只精品国产免费| 美女视频黄a视频全免费网站一区| 中文字幕中韩乱码亚洲大片| 日本在线看片免费人成视频1000| 亚洲国产片在线观看| 免费观看四虎精品国产永久| 日韩a级无码免费视频| 亚洲成人动漫在线观看| 四虎永久在线精品视频免费观看| 一级有奶水毛片免费看| 91亚洲国产成人久久精品| 日韩亚洲精品福利| 久久精品无码专区免费青青| 亚洲欧美国产欧美色欲| 国产精品亚洲片在线观看不卡 | 57PAO成人国产永久免费视频| 欧美日韩亚洲精品|