利用CDI和JPA开发Servlet应用

开始之前

关于 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接口开发,以便于您获取更多的相关知识。

时间: 2024-07-31 11:35:51

利用CDI和JPA开发Servlet应用的相关文章

Eclipse+Tomcat集成开发servlet

servlet Eclipse+Tomcat集成开发servlet 关键字 Eclipse Tomcat Servlet Eclipse是open source的集成开发环境,它得到了IBM的大力支持,而Tomcat我们就更熟悉了,它是apache组织的JSP/Servlet容器,下面将讲述如何集成: 准备: 1. Tomcat4.0 2. Jdk1.4 3. Eclipse2.0 4. Eclipse的Tomcat插件在http://www.sysdeo.com/eclipse/tomcatP

完美利用Yii2微信后台开发的系列总结_php技巧

网上有很多关于YII2.0微信开发教程,但是太过复杂凌乱,所以今天在这里给大家整理总结利用Yii2微信后台开发的系列了,给需要的小伙伴们参考. 一:接入微信 Yii2后台配置 1.在app/config/params.php中配置token参数 return [ //微信接入 'wechat' =>[ 'token' => 'your token', ], ]; 2.在app/config/main.php中配置路由 因为接口模块使用的RESTful API,所以需要定义路由规则. 'urlM

用java开发servlet都用加什么包

问题描述 用java开发servlet都用加什么包 如题,好像是用到了一些jar包和什么api包,具体都用哪些,详细的说一下 解决方案 下一个tomcat就可以了,, 解决方案二: 一般会默认引用一些基础包,其他的自己用到什么包,再加什么包,一般编译器也会提示你,然后自动加入对应包 解决方案三: 你有tocate的安装包么?在tomcat的lib文件下,有个servlet-api.jar包,就是Servlet需要的jar包. 解决方案四: 不需要引入什么第三方包吧,只要在写类的时候继承servl

eclipse开发servlet时,新建的servlet有问题

问题描述 eclipse开发servlet时,新建的servlet有问题 就是卡在了选择路径的地方,按选择文件夹按钮时 总是卡住,弹不出选择框,自己输入说找不到路径 ,这该怎么办 解决方案 最好是截图看看,, 解决方案二: Eclipse下创建Servlet是不难的啊,参考下图:

利用JSP 2.0开发Web应用程序1

js|web|程序 JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的.可免费获取的规范,也是J2EE(Java 2 Enterprise Edition)规范的重要组成部分.许多商业应用服务器如BEA WebLogic.IBM WebSphere.Live Jrun和Orion都支持JSP技术. 从机票预订系统.银行系统到购物系统,Web上到处都在应用JSP技术.新发布的2.

利用JSP 2.0开发Web应用程序2

js|web|程序 标签处理器 JSP 1.2中传统的标签处理API由于允许标签体中包含scriptlet而变得复杂,但是现在利用表达式语言可以编写不含scriptlet的JSP网页.最终,JSP 2.0引入了一种新的标签扩展机制,称为"简单标签扩展",这种机制有两种使用方式: Java开发人员可以定义实现接口javax.servlet.jsp.tagext.SimpleTag的类; 不懂Java的网页编写人员则可以使用标签文件. 首先来看第一种方式,代码示例6给出了一个简单的标签处理

利用JSP 2.0开发Web应用程序

js|web|程序 JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的.可免费获取的规范,也是J2EE(Java 2 Enterprise Edition)规范的重要组成部分.许多商业应用服务器如BEA WebLogic.IBM WebSphere.Live Jrun和Orion都支持JSP技术. 从机票预订系统.银行系统到购物系统,Web上到处都在应用JSP技术.新发布的2.

图解利用Eclipse3+Lomboz3+Tomcat开发JSP

js 我最近看了不少有关Lomboz的资料,发现有不少网友都对这个eclipse插件感兴趣,但苦于入门.感觉有必要把自己学习Lomboz的心得写下来,以便后来人不至于走太多的弯路. 一.环境需求: 1. Lomboz的相关资源 由于这篇文章重点是放在Lomboz上,所以有必要强调一下.lomboz是Eclipse的一个J2EE的插件,它将很多Java应用服务器.J2EE组件和Web应用开发集成到Eclipse中,可以帮助Java开发者使用Eclipse建立.测试.部署J2EE应用.      

利用开源项目Hibernate开发Blog系统

项目 开发工具采用MYECLIPS3.6,首先是建立项目,导入STRUTS+HIBERNATE包,然后配置SRC跟目录下的hibernate.cfg.xml.我采用的是MYSQL数据库,所以配置如下: <hibernate-configuration>     <session-factory>        <!-- properties -->        <property name="connection.username">r