开始之前
关于 CDI
JSR-299 规范原来叫做 Web Beans,其主要目的是为了整合 JSF 和 EJB 。到 2009 年正式发布该规范时,JSR-299 已经改称 “Contexts and Dependency Injection for the Java EE platform”(简称 CDI ),整合 JSF 和 EJB 仍是其目的,但这并非 CDI 的唯一功能。
通读 JSR-299 规范的文本,描述最多的是依赖注入(Dependency Injection, DI ) 容器。CDI 的 DI 有与众不同 之处,它的第一个字母 C,代表 Contexts,是上下文环境,也是范围。CDI 注入的对象必须与某个 Context 关联,其生命周期与 Web 应用的各个范围息息相关。
本教程适合的读者对象
阅读本教程的读 者需具备以下基础:
熟悉 Servlet 开发。示例的应用逻辑比较简单,有了 Servlet 编程基础就能看 懂。
熟悉 JPA 开发。需要对 Persistence Context 和 Entity Manager 有一定了解。
熟悉 Maven 工 具。本教程的示例应用配置了 pom.xml,对初次接触 Maven 的读者,第一次更新依赖库时可能会有较多的问 题,需要了解 Maven 的基本操作才能解决。
了解 Spring IoC。教程中经常会比较 CDI 和 Spring IoC, 不熟悉 Spring IoC 的读者可略过这些内容。
本教程的内容选择
本教程探讨了在 Servlet 环 境中使用 CDI,没有用到 JSF 和 EJB。这么做主要是出于下面的考虑:
JSF 对 Servlet 封装得很深 ,在处理各个范围时不如 Servlet 来得直观。
Servlet 是每个 Java Web 开发者必备的知识技能,熟悉 JSF 的开发者相对较少。
Servlet 环境中使用 CDI 复杂度较低,结合了 JPA 后,也能实现 JSF + EJB 组 合的许多重要特性。
起草中的 JSR-346,即 CDI 1.1 规范,增强了对 Servlet 的支持力度。
本教 程的内容组织
本教程基本遵照项目驱动的方式来组织知识点,所用的示例应用实现了雇员信息的查看 和修改。涉及的 CDI 功能包括:
CDI 作为依赖注入容器的特点和用法。
用 CDI 实现声明式事务管 理。
用 CDI 实现在 Session 范围里共享 Persistence Context。
监听 CDI 容器的事件。
开发 环境配置
下面列出示例应用所用开发环境及工具软件的版本:
Tomcat,版本 7.0.28。
Eclipse Java EE IDE for Web Developers,版本 Indigo SR2。
Maven,版本 3.0.4。
Maven 配置
示例应用用到了 Weld 和 Hibernate,使用 Maven 来管理项目,需要添加 JBoss Public 仓库和 相关依赖项,pom.xml 中相关配置代码如清单 1 所示。
清单 1. pom.xml 配置代码片断
<repositories> <repository> <id>jboss-public-repository-group</id> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public/</url> <layout>default</layout> … </repository> </repositories> <dependencies> <dependency> <groupId>org.jboss.weld.servlet</groupId> <artifactId>weld-servlet-core</artifactId> <version>1.1.8.Final</version> </dependency> <dependency> <groupId>org.jboss.weld</groupId> <artifactId>weld-core</artifactId> <version>1.1.8.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.1.4.Final</version> </dependency> … </dependencies>
初次下载工程以后,可到工程目录下执行:mvn dependency:resolve,让 maven 下载相关依赖包。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索servlet
, maven
, 应用
, 配置
, 教程
, Core中应用Entity
示例
ejb jsf jpa整合开发、jpa开发教程、jpa开发文档、servlet开发、servlet接口开发,以便于您获取更多的相关知识。