【Java EE】--Contexts and Dependency Injection(上下文和依赖注入) 02
来源:互联网 发布:淘宝上有二手市场吗 编辑:程序博客网 时间:2024/05/29 06:51
关于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
- 【Java EE】--Contexts and Dependency Injection(上下文和依赖注入) 02
- 【Java EE】--Contexts and Dependency Injection (上下文和依赖注入)01
- 【Java EE】--Contexts and Dependency Injection(上下文和依赖注入) 03
- 【Java EE】--Contexts and Dependency Injection (上下文与依赖注入)05
- 【Java EE】--Contexts and Dependency Injection (上下文与依赖注入)04
- Contexts and Dependency Injection for the Java EE Platform(CDI,JSR-299)
- 依赖注入(Dependency Injection)
- Dependency Injection and Inversion Control(依赖注入和反向控制)
- CDT(Contexts And Dependency Injection)
- Dependency Injection 依赖注入
- Dependency Injection 依赖注入
- Dependency Injection 依赖注入
- 依赖注入(Dependency Injection)模式
- 依赖注入(Dependency Injection)模式
- AngularJS_4 Dependency Injection(依赖注入)
- spring依赖注入(dependency injection)
- EJB---->依赖注入(dependency injection)
- 依赖注入 理解Dependency Injection
- Altium Designer 电路设计2
- Find the Difference
- Android Binder机制:编写自己的本地服务
- Android性能测试-内存篇
- React native Configuration with name 'default' not found.
- 【Java EE】--Contexts and Dependency Injection(上下文和依赖注入) 02
- 子串和
- 一些机器学习(Machine Learning)的网站总结
- Dubbo——服务端接收请求的处理流程
- 记一次搭建dubbo+zookeeper+springMvc中出现的问题
- C#之要素图层过滤显示
- python求水仙花数
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- 解决Django 配置mysql 遇到 No module named MySQLdb or MySQL-python