我正在寻找一些关于CDI API的帮助。如果我的问题看起来很天真,我很抱歉,我试着在网上查找一些关于CDI API的高级描述,但是无法做到。JBoss cdi-api使用
的javadoc说:
上下文和依赖注入(CDI)定义了一组互补的服务,帮助提高应用程序代码的结构。
我的问题是在EJB 3.X中,我们已经有了帮助DI和注入像PersistenceContext和其他资源资源的注解。那么CDI API究竟有哪些用处呢?在使用J2SE的纯Web应用程序/独立Java程序中?
我正在寻找一些关于CDI API的帮助。如果我的问题看起来很天真,我很抱歉,我试着在网上查找一些关于CDI API的高级描述,但是无法做到。JBoss cdi-api使用
的javadoc说:
上下文和依赖注入(CDI)定义了一组互补的服务,帮助提高应用程序代码的结构。
我的问题是在EJB 3.X中,我们已经有了帮助DI和注入像PersistenceContext和其他资源资源的注解。那么CDI API究竟有哪些用处呢?在使用J2SE的纯Web应用程序/独立Java程序中?
EJB 3.0自带的资源和EJB级依赖注入 - 这是很酷已经:-)
CDI做什么(这是更酷) - 它降低了障碍,依赖注入所谓的“被管理的bean”(JSR 316) - (其中包括)定义了类需要从依赖注入中受益的最小前置条件集。稍微简化一下,可以说CDI项目中的所有类都是托管bean,因此可以用于DI。
要总结一下CDI在DI方面拥有超过EJB 3.0:
看一看第一章here,你会得到的想法: - )
DI在Java EE5中,您只能注入JDBC DataSource,JPA EntityManager,UserTransaction,Web Services,EJB等资源。所有这些资源都由容器管理。
随着EE6和CDI特别是你不限制只注入资源 - 你可以注入一切(每个bean)。查看CDI规范附带的注释:@Inject,@Named,@Scope,@Singleton等。 CDI为您提供了类似事件,修饰器等功能。
看看本教程,它应该可以帮助您理解CDI: http://java.dzone.com/articles/cdi-di-p2