Robin's Programming World
I Love Programming As My Life!
BlogJava
首页
新随笔
联系
聚合
管理
随笔-193 评论-715 文章-1 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 Programming World
阅读(2339)
评论(1)
编辑
收藏
所属分类:
Java
评论:
#
re: Struts与Spring集成时使用AutowiringRequestProcessor产生的问题及解法
2009-02-05 13:45 |
ss
似乎是spring.autowire来声明byName方式
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Ubuntu环境下Apache2与Tomcat集成
Spring 3 MVC and JSON example
Android Media Player 深入观察
[转]编写高效的Android代码
Android程序完全退出的三种方法
使用ANT批量编译Flex应用和模块(Use ANT to batch compiling application and modules of Flex)
Investigate getDeclaredMethod of Java Reflection
Eclipse空心J图标的含义
Memcached Study Notes
BlazeDS自定义认证与权限控制
<
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
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(49)
给我留言
查看公开留言
查看私人留言
随笔分类
(215)
.Net(1)
DB(8)
Flex & Flash(11)
Java(72)
OS(25)
RUP(1)
weblogic(3)
Webshere(16)
其它(50)
心情(2)
翻译(1)
读书(9)
转载(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)
相册
文章相关图片
收藏夹
other
Friend Links
Tiger's Space
Tiger的Blog,专注于过程改进,项目管理,质量管理三个方向。
zrfunds
搜索
积分与排名
积分 - 751412
排名 - 60
最新评论
1. re: XFire完整入门教程
楼主,请问你做过xfire使用spring的jdbc模板访问数据库的例子吗,急求啊?xfire和spring的结合在不访问数据库时(就像你这个例子一样)已经跑通了,但是需要使用jdbc时老出问题。谢谢
--fqjabc
2. re: 一次JQuery性能优化实战
不需要构建DOM
--bns
3. re: Spring Security 3.x 完整入门教程
@过客
尊重人是最起码的
--bns
4. re: Flex中带有三种状态CheckBox的Tree的实现
带有3种状态CheckBox的树形组件刚好用到
收了
--bns
5. re: Spring Security 3.x 完整入门教程
AntUrlPathMatcher这个类所在jar包是哪个啊,是spring-security-core-tiger这个吗?
--iechenyb
阅读排行榜
1. XFire完整入门教程(90425)
2. Spring Security 3.x 完整入门教程(59137)
3. 使用XFire开发Web Service客户端完整入门教程(52316)
4. WebSphere6.1中使用Spring报cvc-elt.1: Cannot find the declaration of element 'beans'异常的解决办法(24195)
5. 用MKVMerge GUI合并MKV文件(16666)
评论排行榜
1. XFire完整入门教程(130)
2. Spring Security 3.x 完整入门教程(67)
3. 使用XFire开发Web Service客户端完整入门教程(33)
4. VBA编程心得(24)
5. JDK1.5API完整中文版CHM格式文档发放(可下载)(22)