Java EE 6简介

本文探讨了JavaEE6中的上下文和依赖注入规范(CDI)及其关键概念ManagedBean。对比了JSF1.0中的ManagedBean,并介绍了JavaEE6中如何通过@ManagedBean注释统一模型。此外还讨论了CDI的范围定义及其与Spring的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java EE 6中最惹人注意的就是上下文和依赖注入规范(Context and Dependency Injection, CDI)-JSR299。

其中最重要的概念是Managed Bean。没错,就是这个称谓。有的开发者可能会问:先前JSF规范中不就有Managed Bean么?Java EE 6中的Managed Bean和JSF1.0中Managed Bean有本质区别。JSF1.0为了和业务层打交道,必须留个尾巴出来和EJB打交道,认为添加了Managed Bean/Backing Bean一层。而这层是完全不必要的,是胶水代码。熟悉JBoss Seam的开发者很能体会JBoss Seam组件是如何干掉Managed Bean直接在表现层使用EJB的(当然前提是这些EJB被声明为Seam组件)。

Java EE 6中的ManagedBean就好像JBoss Seam的组件一样,试图一统Java EE模型。也就是说,EJB也可以通过@ManagedBean注释声明为ManagedBean, 开发者不用写胶水代码了。

有了Managed Bean就不用EJB了么?当然不是,ManagedBean根本不管事务,安全,消息,远程访问等方面的事情。这些还要靠EJB。

上下文的管理也就是状态的管理是CDI最核心的部分, Gavin King一直强调CDI不仅仅是所谓的依赖注入!估计是和JSR330的Lead Rod Johnson又干上了。平心而论,我很怀疑Rod Johnson加入Java EE专家组的动机,这家伙除了搞了一个JSR330之外没啥事,而且开发者可以看一下JSR330:啥也没有,只有一堆抽象的接口定义,晕倒!Spring是来捣乱的啊。

无论如何,上下文的管理是Spring所没有的,因为Spring是无状态框架。而Gavin King极力鼓吹JBoss Seam这样的有状态框架。对于开发者来说,说实话,我从来没有见过完全无状态的应用, Google Search是个例外:).

CDI定义的Scope如下:

  1. Dependent, 顾名思义,注入的Bean的范围依赖于目标Bean
  2. ApplicationScoped, 和Servlet的Application对应
  3. RequestScoped, 和Servlet的HTTP Request对应
  4. SessionScoped, 和Servlet的HTTP Session对应
  5. ConversationScoped, 熟悉JBoss Seam的开发者不会陌生吧?JBoss Seam最大的创新之处之一!
javaee 6 规范 chm版本 第1章 引言 1.1 感谢 1.2 版本1.3的感谢 1.3 版本1.4的感谢 1.4 版本5的感谢 1.5 版本6的感谢 第2章 平台概述 2.1 体系结构 2.2 Profile(自定义规范) 2.3 应用程序组件 2.4 容器 2.5 资源适配器 2.6 数据库 2.7 Java EE标准服务 2.8 互用性 2.9 产品标准的灵活性 2.10 Java EE产品的扩展 2.11 平台角色 2.12 平台协议 2.13 J2EE 1.3中的变化 2.14 J2EE 1.4中的变化 2.15 Java EE 5中的变化 第3章 安全 3.1 简介 3.2 一个简单的例子 3.3 安全体系结构 3.4 用户验证的必要条件 3.5 授权条件 3.6 部署标准 3.7 未来的方向 第4章 事务管理 4.1 概述 4.2 标准 4.3 事务的互用性 4.4 本地事务优化 4.5连接共享 4.6 JDBC和JMS部署问题 4.7 双相提交支持 4.8 系统管理工具 第5章 资源,命名和注入 5.1 概述 5.2 JNDI命名上下文环境 5.3 Java EE平台角色的职责 5.4 简单环境入口 5.5 Enterprise JavaBeansTM 5.6 Web服务的引用 5.7 资源管理器连接工厂的引用 5.8 资源环境的引用 5.9 消息目的地的引用 5.10 用户事务的引用 5.11 事务同步注册表的引用 5.12 ORB的引用 5.13 引用持久化单元 5.14 持久化上下文的引用 5.15 应用程序名称和模块名称 5.16 检验器和检验器工厂的引用 5.17 数据源资源定义 5.18 引用受管理的Bean 5.19 Bean管理器的引用 5.20 支持依赖注入(JSR-330) 第6章 应用程序编程接口 6.1 必须的API 6.2 Java平台Java SE标准 6.3企业级JavaBeansTM 3.1标准 6.4 Servlet 3.0标准 6.5 JavaServer PagesTM标准 6.6 Expression Language标准 6.7 JavaTM Message Service 6.8 JavaTM Transaction API 6.9 JavaMailTM 1.4标准 6.10 Java 连接器体系结构标准 6.11 Java EE Web服务1.3标准 6.12 JAX-RPC 1.1标准 6.13 JAX-WS 2.2 标准 6.14 JAX-RS 1.1标准 6.15 JAXB 2.2 标准 6.16 JAXR 1.0 标准 6.17 API 1.1标准 6.18 API 1.2 标准 6.19 JACC 1.4 标准 6.20 JASPIC 1.0 标准 6.21 JSR-45 标准 6.22 SJSTL 1.2 标准 6.23 Web Services 2.1 标准 6.24 JavaServer 2.0 标准 6.25 Java平台公共注解1.1标准 6.26 Persistence API 2.0 6.27 Bean Validation 1.0 6.28 Managed Beans 1.0 标准 6.29 Interceptors 1.1 标准 6.30 Contexts Dependency 6.31 Dependency Injection 第7章 互用性 7.1 互用性介绍 7.2 互用性协议 第8章 应用程序组装者和部署 8.1 应用程序部署的生命周期 8.2 库的支持 8.3 类加载标准 8.4 应用程序组装 8.5 部署 8.6 应用程序的XML Schema 8.7 Java EE XML Schema定义 第9章 Profile 9.1 简介 9.2 定义Profile 9.3 Profile的总体原则 9.4 标准的扩展 9.5 所有Java EE Profile标准 9.6 Java EE Profile可选特性 9.7 完整的Java EE产品标准 第10章 应用程序客户端 10.1 概述 10.2 安全 10.3 事务 10.4 资源,命名和注入 10.5 应用程序编程接口 10.6 打包和部署 10.7 程序客户端的XML Schema 第11章 服务供应商接 11.1 JavaTM EE连接器体系结构 11.2 容器Java服务提供方协议 11.3 JavaTM事务API 11.4 JavaTM持久化 11.5 XML Web服务提供的API 11.6 JavaMailTM 第12章 兼容性和迁移 12.1 兼容性 12.1 迁移 第13章 未来的方向 13.1 JNLP(Java Web Start) 13.2 Java EE SPI 附录 附录A 早期版本的部署描述符 附录B 修订历史 科瑞网酷
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值