【发布时间】:2011-12-02 09:06:37
【问题描述】:
Spring 支持注入 javax.ejb.EJB annotations,就像它注入 @Autowired 和其他 jsr-220 注入注解一样,这要归功于 CommonAnnotationBeanPostProcessor 类。
但是,注入对 servlet 不起作用,因为 servlet 不是由 spring 创建的。
这篇文章 - Spring injects servlets too - 没有给出使用 servlet 的示例,但声称可以使用方面的编译时编织。不幸的是,编译时编织不是我们的选择。是否可以在运行时执行此操作?如果有帮助,可以向 servlet 引入子类,但我想保留 EJB 注释,以便 servlet 仍然可以部署在 Java EE 容器中。
编辑:该应用程序将部署到生产环境中的 Java EE 容器中,但我正在考虑使用 spring 运行功能测试和本地部署以进行开发,以利用 Tomcat 中的热 JSP 加载。
【问题讨论】:
-
注入什么? “注入注释”对我来说没有多大意义。无论如何,
@EJB在 servlet 中应该可以正常工作。至少,在真正的 Java EE(Web 配置文件)容器上。在像 Tomcat 这样的简单 servlet 容器上,您需要在其上放置例如 OpenEJB。 -
注入注解——资源、注入、EJB注解。
-
啊,我猜你正在使用 Tomcat。好吧,看看 OpenEJB:openejb.apache.org/3.0/tomcat.html 或者改用真正的 Java EE 容器,比如 Glassfish。它是免费的,而且发布速度比 Tomcat 快。
标签: spring jakarta-ee servlets dependency-injection