【发布时间】:2012-03-22 07:52:01
【问题描述】:
我正在尝试将我的 CDI/EJB 注释替换为 Spring 注释。但我正在努力如何正确地做到这一点。
这就是我在 CDI/EJB 中所拥有的:
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
class Service {
@Inject
EntityManager em;
}
@Named
@RequestScoped
class Facade {
@Inject
Service service;
}
现在我将执行以下操作:
@Stateless
@Transactional
@Repository
class Service {
@Inject
EntityManager em;
}
无国籍人呢?春天的当量是什么? 显然我不能只删除这个注释,然后我得到这些异常:
javax.el.PropertyNotFoundException: /input.xhtml @15,30 registerButtonAction="#{facade.createNew()}": The class 'Facade$Proxy$_$$_WeldClientProxy' does not have the property ...
进一步:
@Named
@Service
class Facade {
@Autowired
Service service;
}
我是否必须简单地将所有@Inject 注释替换为@Autowired?
Spring中是否有处理EL命名的东西,以便我可以删除@Named?
我是否也必须注释我的 JPA 实体?
【问题讨论】:
-
您为什么要这样做?不是想发起一场火焰战争,只是好奇。
-
bc spring 注释使事情变得非常容易。例如方面,可以捕获所有 @Component 注释类的异常。
-
EE6 / EJb 3.1 / CDI 还提供了带有注释、拦截器等的方面功能。在这种情况下,我看不到切换的价值,但这只是我自己。
标签: java spring jakarta-ee ejb cdi