Robin's Java World
I Love Java As My Life!
BlogJava
首页
新随笔
联系
聚合
管理
随笔-90 评论-249 文章-0 trackbacks-0
Struts与Spring集成时使用AutowiringRequestProcessor产生的问题及解法
本Blog所有内容不得随意转载,版权属于作者所有。如需转载请与作者联系(
fastzch@163.com
)。
未经许可的转载,本人保留一切法律权益。
我曾经在我的文章《
搭建SSH时的思考和遇到的几个问题
》中写过,我为何要使用AutowiringRequestProcessor来作为Struts与Spring集成时的解决方案,如果不知道这个Processor的作用和不了解用意的朋友,可以再看看那篇文章。
今天要说的问题是在使用这个Processor中的一个问题。在那篇文章中,我曾提到过,支持byName和byType两种方式,默认是byType方式,但有时候使用byType可能不行,比如:
我想使用Spring自带的声明式事务,这东东很是不错,不用我操心事务的处理,相信大家也都比较喜欢,比如我的事务定义 如下:
<
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类就应该定义成这样:
<
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
>
然后我还得定义一个groupInfoServiceImpl的Bean,在此省略。
根据Spring的DOC所说,如果想使用byName的方式来自动装载,通过如下配置来实现,修改web.xml中对于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
>
但是在我这样修改之后,当应用程序在运行的时候,会提示说找到了两个Bean,一个是groupInfoService,另一个是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
>
这样,自动装载时就只能找到一个Bean的定义了,就不会报不惟一的错了。
posted on 2008-02-24 00:20
Robin's Java World
阅读(958)
评论(0)
编辑
收藏
所属分类:
原创
新闻频道
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子技术博客
相关文章:
Quartz与Spring结合时如何动态更新Job的启动时间
WebSphere Portal V6.1安装手记
Apache Http Server与BEA WebLogic整合手记
广州出差日记(2.15-2.22)
Struts与Spring集成时使用AutowiringRequestProcessor产生的问题及解法
Fedora Core 8 使用经验集(不断更新)
VBA编程心得
Fedora Core 8配置SAMBA服务成功
XFire完整入门教程
WebLogic通过命令部署应用
正在阅读:
<
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
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(11)
给我留言
查看公开留言
查看私人留言
随笔分类
(88)
其它(27)
原创(40)
心情(3)
翻译(1)
读书(6)
转载(11)
随笔档案
(85)
2008年5月 (2)
2008年4月 (1)
2008年3月 (3)
2008年2月 (2)
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)
相册
文章相关图片
收藏夹
other
Friend Links
Tiger's Space
Tiger的Blog,专注于过程改进,项目管理,质量管理三个方向。
搜索
积分与排名
积分 - 125387
排名 - 55
最新评论
1. re: extremeComponents排序实现不区分大小写
评论内容较长,点击标题查看
--coolshuiping
2. re: [译]Struts Menu开发向导
@glitgirl
谢谢支持!
--Robin's Java World
3. re: [译]Struts Menu开发向导
支持下楼主,我在别处看到过转载的来源是这里,谢谢楼主的翻译!
--glitgirl
4. re: VBA编程心得
邮箱
azhhuoiu@126.com,可以发一份么??
--zh
5. re: 搭建SSH时的思考和遇到的几个问题
评论内容较长,点击标题查看
--Robin's Java World
阅读排行榜
1. Fedora Core 6硬盘安装手记(10131)
2. [译]Struts Menu开发向导(4844)
3. JBuilder2006也用CheckStyle(3624)
4. XFire完整入门教程(3604)
5. JDK1.5API完整中文版CHM格式文档发放(可下载)(3109)
评论排行榜
1. XFire完整入门教程(26)
2. JDK1.5API完整中文版CHM格式文档发放(可下载)(21)
3. Fedora Core 6硬盘安装手记(17)
4. [分享]2007年3月个人学习的积累图(13)
5. 技术总结及推荐例程和文章+学习计划,请大家提建议(10)