Robin's Programming World
I Love Programming As My Life!
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-193 評(píng)論-715 文章-1 trackbacks-0
Struts與Spring集成時(shí)使用AutowiringRequestProcessor產(chǎn)生的問題及解法
本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)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
Ubuntu環(huán)境下Apache2與Tomcat集成
Spring 3 MVC and JSON example
Android Media Player 深入觀察
[轉(zhuǎn)]編寫高效的Android代碼
Android程序完全退出的三種方法
使用ANT批量編譯Flex應(yīng)用和模塊(Use ANT to batch compiling application and modules of Flex)
Investigate getDeclaredMethod of Java Reflection
Eclipse空心J圖標(biāo)的含義
Memcached Study Notes
BlazeDS自定義認(rèn)證與權(quán)限控制
<
2008年2月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(49)
給我留言
查看公開留言
查看私人留言
隨筆分類
(215)
.Net(1)
DB(8)
Flex & Flash(11)
Java(72)
OS(25)
RUP(1)
weblogic(3)
Webshere(16)
其它(50)
心情(2)
翻譯(1)
讀書(9)
轉(zhuǎn)載(16)
隨筆檔案
(181)
2014年8月 (1)
2014年4月 (1)
2014年2月 (2)
2014年1月 (1)
2012年11月 (1)
2012年9月 (2)
2012年7月 (1)
2012年6月 (3)
2012年1月 (2)
2011年12月 (4)
2011年10月 (1)
2011年8月 (3)
2011年7月 (2)
2011年4月 (1)
2010年11月 (2)
2010年10月 (1)
2010年9月 (2)
2010年8月 (5)
2010年7月 (1)
2010年5月 (2)
2010年4月 (7)
2010年3月 (7)
2009年12月 (6)
2009年10月 (1)
2009年9月 (1)
2009年8月 (2)
2009年6月 (3)
2009年5月 (2)
2009年4月 (2)
2009年2月 (3)
2009年1月 (4)
2008年11月 (1)
2008年10月 (2)
2008年9月 (9)
2008年8月 (4)
2008年7月 (5)
2008年5月 (2)
2008年4月 (1)
2008年3月 (3)
2008年2月 (1)
2008年1月 (7)
2007年12月 (6)
2007年11月 (6)
2007年10月 (3)
2007年9月 (1)
2007年8月 (6)
2007年7月 (4)
2007年6月 (2)
2007年5月 (3)
2007年3月 (1)
2007年2月 (1)
2007年1月 (3)
2006年12月 (7)
2006年10月 (1)
2006年8月 (3)
2006年7月 (1)
2006年6月 (5)
2006年4月 (6)
2006年3月 (2)
2006年2月 (3)
2006年1月 (1)
2005年11月 (5)
相冊(cè)
文章相關(guān)圖片
收藏夾
other
Friend Links
Tiger的Blog,專注于過程改進(jìn),項(xiàng)目管理,質(zhì)量管理三個(gè)方向。
zrfunds
搜索
積分與排名
積分 - 756061
排名 - 60
最新評(píng)論
1.?re: XFire完整入門教程
樓主,請(qǐng)問你做過xfire使用spring的jdbc模板訪問數(shù)據(jù)庫的例子嗎,急求啊?xfire和spring的結(jié)合在不訪問數(shù)據(jù)庫時(shí)(就像你這個(gè)例子一樣)已經(jīng)跑通了,但是需要使用jdbc時(shí)老出問題。謝謝
--fqjabc
2.?re: 一次JQuery性能優(yōu)化實(shí)戰(zhàn)
不需要構(gòu)建DOM
--bns
3.?re: Spring Security 3.x 完整入門教程
@過客
尊重人是最起碼的
--bns
4.?re: Flex中帶有三種狀態(tài)CheckBox的Tree的實(shí)現(xiàn)
帶有3種狀態(tài)CheckBox的樹形組件剛好用到
收了
--bns
5.?re: Spring Security 3.x 完整入門教程
AntUrlPathMatcher這個(gè)類所在jar包是哪個(gè)啊,是spring-security-core-tiger這個(gè)嗎?
--iechenyb
閱讀排行榜
1.?XFire完整入門教程(90516)
2.?Spring Security 3.x 完整入門教程(59200)
3.?使用XFire開發(fā)Web Service客戶端完整入門教程(52360)
4.?WebSphere6.1中使用Spring報(bào)cvc-elt.1: Cannot find the declaration of element 'beans'異常的解決辦法(24265)
5.?用MKVMerge GUI合并MKV文件(16694)
評(píng)論排行榜
1.?XFire完整入門教程(130)
2.?Spring Security 3.x 完整入門教程(67)
3.?使用XFire開發(fā)Web Service客戶端完整入門教程(33)
4.?VBA編程心得(24)
5.?JDK1.5API完整中文版CHM格式文檔發(fā)放(可下載)(22)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Robin's Programming World
主站蜘蛛池模板:
亚洲爆乳无码专区
|
久久亚洲AV无码西西人体
|
亚洲国产成人精品无码一区二区
|
黄网站免费在线观看
|
精品国产香蕉伊思人在线在线亚洲一区二区
|
国产亚洲3p无码一区二区
|
你懂得的在线观看免费视频
|
亚洲欧洲精品无码AV
|
在线看片免费人成视频福利
|
亚洲国产a∨无码中文777
|
一级成人a毛片免费播放
|
亚洲国产美女在线观看
|
亚洲av片一区二区三区
|
羞羞漫画登录页面免费
|
亚洲一级片免费看
|
久久久国产精品福利免费
|
亚洲尹人香蕉网在线视颅
|
99久久免费国产精品特黄
|
亚洲成av人在线观看网站
|
免费在线观看毛片
|
国产又黄又爽胸又大免费视频
|
亚洲午夜精品久久久久久浪潮
|
eeuss影院www天堂免费
|
亚洲av女电影网
|
99久久这里只精品国产免费
|
美女视频黄a视频全免费网站一区
|
中文字幕中韩乱码亚洲大片
|
日本在线看片免费人成视频1000
|
亚洲国产片在线观看
|
免费观看四虎精品国产永久
|
日韩a级无码免费视频
|
亚洲成人动漫在线观看
|
四虎永久在线精品视频免费观看
|
一级有奶水毛片免费看
|
91亚洲国产成人久久精品
|
日韩亚洲精品福利
|
久久精品无码专区免费青青
|
亚洲欧美国产欧美色欲
|
国产精品亚洲片在线观看不卡
|
57PAO成人国产永久免费视频
|
欧美日韩亚洲精品
|