【Java EE】--Contexts and Dependency Injection(上下文和依赖注入) 02

关于bean

CDI重新定义了一个bean的概念,超出了其他Java技术(如JavaBeans和Enterprise JavaBeans(EJB))技术的使用。 在CDI中,bean是定义应用程序状态和/或逻辑的上下文对象的源。 如果Java EE组件实例的生命周期可以根据CDI规范中定义的生命周期由容器进行管理,那么它就是一个bean。

更具体地说,一个bean具有以下属性:

  • 一个(非空)的一组bean类型
  • 一个(非空)限定词集
  • 范围
  • 可选地,一个bean EL名称
  • 一组拦截器绑定
  • 一个bean实现

bean类型定义了客户端可见类型的bean。 几乎任何Java类型可能是bean的bean类型。
- bean类型可以是一个接口,一个具体的类或一个抽象类,可以被声明为final或具有最终的方法。
- bean类型可以是带有类型参数和类型变量的参数化类型。
- bean类型可以是数组类型。 如果元素类型相同,则两个数组类型被认为是相同的。
- bean类型可能是原始类型。 原始类型被认为与其对应的java.lang中的包装器类型相同。
- bean类型可能是原始类型。

关于CDI托管Bean

托管bean由Java类实现,托管bean被称为Java bean类。 如果通过任何其他Java EE技术规范(如JavaServer Faces技术规范)将其定义为托管bean,或者满足以下所有条件,则顶级Java类是托管bean。

  • 它不是一个非静止的内在类。
  • 它是一个具体的类或者注释@Decorator。
  • 它不使用EJB组件定义注释来注释,也不会在ejb-jar.xml中声明为EJB bean类。
  • 它有一个适当的构造函数。 就是说,以下是其中之一。
  • 该类有一个没有参数的构造函数。
  • 该类声明一个注释为@Inject的构造函数。
    不需要特殊声明(如注释)来定义受管Bean.

作为可注入对象的bean

注入的概念已经成为Java技术的一部分。 由于引入了Java EE 5平台,注释使得可以将资源和其他类型的对象注入到容器管理的对象中。 CDI使得可以注入更多种类的对象并将其注入到不是容器管理的对象中。
可以注入以下几种对象:

  • (几乎)任何Java类
  • 会话bean
  • Java EE资源:数据源,Java消息服务主题,队列,连接工厂等
  • 持久性上下文(Java Persistence API EntityManager对象)
  • 生产者领域
  • 由生产者方法返回的对象
  • Web服务引用
  • 远程企业bean引用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值