【问题标题】:Autowiring Struts Action Classes with Spring使用 Spring 自动装配 Struts 动作类
【发布时间】:2011-07-23 19:51:22
【问题描述】:

我有一个关于弹簧和支柱的问题。 目前我有 spring 为我注入我的 struts 动作类。

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

我的 spring applicationContext 配置文件扫描了 动作类在使用context:component-scan base-package="my.package", 我在动作类级别使用@Component 注释。 我也在同一个动作类级别使用@Qualifier("myActionClass")。 我没有在applicationContext 中将动作类配置为 Spring bean。

然后在我的struts.xml 配置文件中,在配置我的动作类时,我没有给出完全限定的包和类名,而是使用@Qualifier 注释名称"myActionClass"

但这不起作用。 如果在我的applicationContext 配置文件中,将我的动作类配置为spring bean,去掉动作类上的@Component@Qualifier 注释,并在struts.xml 中,将动作类Spring bean id 用于类,然后 Spring 为我注入了我的动作类,一切都很花哨。只是,这不是使用自动装配动作类,这就是我正在测试的。

任何人都知道是否使用 context:component-scan base-package 进行自动装配 扫描您的包以查找您的操作类,这样您就不必在applicationContext 中配置它们是可能的吗?

【问题讨论】:

    标签: spring struts


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      Struts 2 似乎依赖于一个 spring bean,它具有相同的 spring bean-name 匹配动作类名称(带有包的全名)。您可以在@Component 注解中指定 bean 名称,也可以制定一个全局用户定义的 bean 命名策略,这样您就可以避免将此信息添加到所有 bean 中

      【讨论】:

        猜你喜欢
        • 2017-09-07
        • 1970-01-01
        • 2017-07-06
        • 2015-09-17
        • 2013-07-16
        • 2014-09-01
        • 2017-01-19
        • 2011-01-24
        • 2011-12-31
        相关资源
        最近更新 更多