2011-03-27 119 views
3

我有一个关于弹簧和撑杆的问题。 目前我有弹簧注入我的struts行动类为我。弹簧自动装配Struts动作类

我正在试验并试图让Spring为我使用自动装配注入我的Struts动作类 。

我有我的春天applicationContext配置文件扫描的基础包的 动作类是使用context:component-scan base-package="my.package", 并使用在动作类的类层次@Component注释IM。我也使用@Qualifier("myActionClass")在相同的动作类级别。 我没有在applicationContext中将动作类配置为Spring bean。

然后在我的struts.xml的配置文件,在配置我的动作类,而不是给完全合格的包和类名,我用的是@Qualifier注释名称"myActionClass"

虽然这并不奏效。 如果在我的applicationContext配置文件中,将我的动作类配置为spring bean,请在动作类上删除@Component@Qualifier注释,并在struts.xml中为该类添加动作类Spring bean id,然后Spring注入我的行动课,一切都很华丽。只是,这不是使用Autowiring动作类,那就是我正在测试的。

任何人都知道是否使用上下文进行自动装配:component-scan base-package 扫描您的包的动作类,所以你不必在applicationContext配置它们是可能的?

回答

3

一切都在Spring文档中有解释:Apache Struts 1.x and 2.x

我不确定您是使用Struts 1还是2.对于Struts 1,您必须将Spring插件添加到Struts配置中(我知道它的工作原理)。在Struts 2中,所有动作都是由Spring创建的,因此它们完全有能力像所有其他bean一样进行Spring注入。

0

Struts 2似乎依赖于存在一个弹簧bean,它具有与动作类名称(包含全名)相同的spring bean名称。您可以在@Component注释中指定bean名称,还可以制作全局用户定义的bean命名策略,以避免将此信息添加到所有的豆类中