1

我的业务 bean 是这样定义的:

@Local
@Interceptors(BusinessInterceptor.class})
public class MyBean implements SomeBean { ... }

然后我希望我BusinessInterceptor配置有 Spring 的SpringBeanAutowiringInterceptor

@Interceptors(SpringBeanAutowiringInterceptor.class)
public class BusinessInterceptor {
    @Autowired
    private SomeSpringBean someSpringBean;
}

这是允许/合法的吗?我收到错误(主要是 NPE),表明其中的字段BusinessInterceptor未正确初始化。

4

1 回答 1

1

我怀疑这是否可行。如果我理解你的场景,你基本上有两个 DI 容器,一个是 Spring,另一个是应用程序。服务器本身。每个人管理不同的元素。由BusinessInterceptor应用程序创建。不知道 Spring 的服务器 -@Autowired然后没有设置 bean。

(请注意,Spring 和 EJB3 现在变得非常相似。您可以使用 Spring 拥有与 EJB 相同的功能。Spring 确实具有类似于 EJB3 拦截器的声明性事务、依赖注入和 AOP 设施(这些是主要的托管特性)。另一方面手,EJB3 现在是如此轻量级,没有真正令人信服的理由将 Spring 与 EJB3 一起使用。请参阅企业 Java 的未来:全栈 Spring 或全栈 Java EE。但这并不能回答问题,而只是一个我的一点题外话:)

于 2010-03-30T20:03:55.470 回答