Struts2和Spring4、如何从springapplication context获取validator或action对象

Struts 2 and Spring 4, how to get the validator or action object from spring application context

我们正在使用 Struts 2.5 和 Spring 4。Struts 配置为 spring,如 https://struts.apache.org/docs/spring-and-struts-2.html 中所述。

struts actionsvalidators 是 Spring 托管 bean,我可以 inject(或 autowire)其他 beans .

此验证器工作正常,表明验证器是一个 spring bean:

public class MyValidator(){

    @javax.inject.Inject
    private HelperClass aHelperClass;
}

现在,我想从 spring 应用程序上下文中获取 MyValidator class 并使用它。以下代码无效并返回 null

applicationContext.getBean("MyValidator");
applicationContext.getBean("foo.bar.MyValidator");

我查看 applicationContext.getBeanDefinitionNames() 但找不到 validator

那么我怎样才能从 spring applicationContext 得到 Struts 验证器呢?

您的 bean 未在应用程序上下文中配置。您应该添加 @Component 注释,让 Spring 使用组件扫描找到这个 bean。

@Component
public class MyValidator(){

    @javax.inject.Inject
    private HelperClass aHelperClass;
}