我试图清楚地了解分类/架构/语义/ JavaEE中整个依赖注入子系统的任何内容,我有点困惑。
我读过许多文章,规范和(部分)书籍,这就是我得到的:
@Resource
注释是一种(老式的?只是不同的?)方式来注入在JNDI名称空间中注册的资源我的问题是:
@EBJ
,@PersistenceUnit
,@PersistenceContext
...注射在哪里?我的意思是,这些是一些注射机制,但它们不是资源注入,也不是CDI ......我是对的吗?它们是否属于某些特定的总括性术语,或者它们是在未经进一步分类的情况下刚刚添加的?答案 0 :(得分:1)
@EJB是Enterprise Java Beans注释,@ Persistence注释是指JPA。 两者都是在不同的JSR上定义的,因此与CDI有不同的用途,如果两者都使用IoC模式。
EJB和CDI紧密相关,因为EJB也是CDI bean,但要真正了解JaveEE技术之间的关系,您必须关注单个JSR规范。
例如,JPA是一个独立的规范,也是由Spring Hibernate实现的,与CDI无关,但在JavaEE环境中,您可以使用实体驱动的域模式,并使JPA实体也是CDI bean。