CDI是帮助将Java EE平台的web层和事务层组合在一起的几个Java EE特性之一。
使用cdi它会自动的帮助你创建变量的实例:
如 你在servlet中有一个变量message,若加上注解@inject它就会在servlet创建时自动的实例化,注入servlet中。
@Inject
private Message message;
这里的message就是一个bean,CDI bean是CDI可以自动实例化,管理和注入以满足其他对象的依赖关系的类。几乎所有Java类都可以由CDI管理和注入。
可以注入以下类型的对象:
几乎任何Java类
Session beans
Java EE resources: 数据源, Java Message Service topics, queues, connection factories等
Persistence contexts (Java Persistence API EntityManager objects)
Producer fields
Objects returned by producer methods
Web service references
Remote enterprise bean references
一个 web bean 中,属性、构造器、方法都可以使用@Inject 注入,他们注入的顺序大致如下:
@Inject 注释的构造器,当然构造器的参数可以使用注入。
@Inject 注释的成员变量
@Inject 注释的初始化方法(普通方法),至此实例化过程结束。