CDI是一组服务,它们一起使用,使得开发人员可以很容易地在web应用程序中使用企业bean和JavaServer Faces技术。CDI设计用于有状态对象,它还有许多更广泛的用途,允许开发人员以松散耦合但类型安全的方式集成各种组件,从而具有极大的灵活性。
(这两个是最基础的)
CDI 主要使用 @Inject 注解来实现依赖注入,把受管理的 Bean 注入到由容器管理的其它资源中去。
使用 @Inject 进行了注解的构造器时,这种情况下,容器会改用有注解的构造器而不是无参构造器,并且把通过构造器参数传入的依赖资源注入到 Bean 实例中来。
一个类只允许有 一个 @Inject 注解的构造器。
当容器初始化一个 SomeBean 类型的 Bean 时,它会把一个正确的 Service 实例注入给该字段,即使该字段是一个私有字段,并且不需要有任何 setter 方法。
当容器初始化一个 SomeBean 类型的 Bean 时,会调用所有由 @Inject 注解了的方法,并且通过方法参数的方式把依赖注入进来。
原文:https://www.cnblogs.com/cheneywxy/p/10612886.html