针对新手的Java EE7和Maven项目-第3部分-定义ejb服务和jpa实体模块

从前面的部分恢复

第1部分
第2部分

我们在第三部分继续介绍,我们已经有一个父pom,并且已经为我们的war模块定义了pom。 在我们的原始设置中,我们定义了我们的应用程序将包含一个ejb jar形式的服务jar。 这是我们的Enterprise Java Bean,特别是Session Bean。 我们还定义了另一个模块(层),它将托管实体Bean(数据库表示Bean),即所谓的域模型。

定义服务(ejb)模块

在父pom文件夹下,我们像使用war模块那样创建了一个新的子文件夹。 在这个文件夹中,我们创建一个pom.xml文件,其中包含以下内容。该文件夹的名称为sample-services。 pom看起来像这样。 最终,现在就差不多了。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>gr.javapapo</groupId><artifactId>sample-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>sample-services</artifactId><name>sample-services</name>   <description>EJB service layer</description><packaging>ejb</packaging><build><finalName>${project.artifactId}</finalName></build><dependencies><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId></dependency></dependencies></project>

记住,我们已经在 pom的依赖项管理部分中定义了javaee-api jar的版本,并且在插件管理部分中还定义了一个maven插件,它将处理ejb.jar的特定包装。要求。 它是maven-ejb-plugin。 返回到父pom并搜索以上两个点。 由于在父pom中定义了所有这些元素,因此我们的ejb服务pom看起来非常小。 按照惯例,Maven将负责大部分工作。 Maven ejb插件即将启动,因为我们已定义此模块所需的包装为' ejb '。

我们的项目结构如下所示:

捕获文件

定义实体bean(ejb)模块

在父pom文件夹下,我们创建了一个新的子文件夹,就像之前的ejb模块一样。 我们将其命名为sample-domain。 这是我们将遵循JPA2规范对数据库表示Bean(即所谓的实体Bean)进行编码的模块。

pom看起来很简单。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>gr.javapapo</groupId><artifactId>sample-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>sample-domain</artifactId><packaging>ejb</packaging><name>sample-domain</name><description>JPA entities for our project - domain model</description><build><finalName>${project.artifactId}</finalName></build><dependencies><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId></dependency></dependencies></project>

打包仍然是ejb,因为它将托管EJB类,即所谓的Entity Beans 。

我们需要打包另一件事,因为该模块将“托管”我们的域对象,所以这是一个名为persistence.xml的XML描述符,它定义了应用程序将要连接的数据源。 在Java EE 7中,此文件已大大简化,我们甚至可以跳过数据源的定义,因为已经有一个默认值。 在这里看看。 从打包的角度来看,我们现在更感兴趣的是,您需要做的是,在文件夹src / main / resources下创建一个名为META-INF的新文件夹,并在其中放置persistence.xml文件,如下图所示。

CapturFiles_2

此时persistence.xml的内容无关紧要(我们将重点关注下一篇文章),您可以在此文章的git分支上查找示例。

有关创建文件夹的说明,如果使用IDE(例如Eclipse或IntelliJ)添加Maven模块,则在创建新模块并定义POM后,IDE会自动创建模块应该具有的标准布局文件夹。 Maven约定。 如果您遵循这些文章,并且使用诸如简单文本编辑器之类的简单工具编写代码,则需要自己创建src / main文件夹结构。

这就是本文的全部内容,我们为应用程序添加了2个以上的模块,但是我们仍然缺少将它们全部打包的模块,这是ear模块。 我们还没有讨论模块的“相互依赖性”,这是我们将要完成的工作,在下一个“耳朵”专用文章中,所有这些都将整合在一起。

这些简单poms的代码可以在bitbucket项目中的post3标签下找到 。

翻译自: https://www.javacodegeeks.com/2014/05/java-ee7-and-maven-project-for-newbies-part-3-defining-the-ejb-services-and-jpa-entities-modules.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机本地网络如何共享,本地网络共享怎么实现

本地网络共享可以满足多台电脑同时联网&#xff0c;台式电脑实现网络共享可以使用路由器&#xff0c;笔记本电脑事项网络共享需要使用无线路由器或者无线网卡。那么本地网络共享又是如何实现的呢&#xff0c;下面为大家详细介绍一下。通过路由器实现本地网络共享&#xff1a;第…

淘宝购物车效果

淘宝购物车效果 今天给大家带来的是淘宝购物车效果&#xff0c;写的不怎么好&#xff0c;请大家多多指教。 效果&#xff1a; 1.点击全选前的选择框&#xff0c;选择所有的选择框。 2.点击商品的加号或者减号可以改变商品的数量值&#xff0c;并且改变商品的小计和他的积分&…

Git初始化配置以及配置github

1&#xff0c;配置用户名和邮箱&#xff08;这里是我github中配置的用户名和邮箱&#xff09;&#xff0c;执行下面命令后&#xff0c;在C:\Users\yaosq盘下会出现一个全局文件.gitconfig. git config --global user.name "这里换上你的用户名" git config --global…

大学计算机专业高考听力,高考英语听力测试对考生听力策略反拨作用的研究

摘要&#xff1a;高考是我国高等院校招生的全国统一性考试,高考听力测试作为听力测试一部分主要测试高考考生的英语听力能力是否达到高校招生的选拔要求.在2011年,有933余万考生参加了高考,其中山东省参加高考的考生约59万人.作为一项全国性选拔考试,高考对我国的中学教育具有重…

网上找工作秘籍(3)

Do your New Years resolutions include finding a new job? The Internet is a great resource for job seekers. But far too many people dont use it effectively. 你今年的新年愿望中有找一份新工作吗&#xff1f;互联网是求职者可以利用的一大资源&#xff0c;但是很多人…

数据知识栈

并发不适合胆小者 我们都知道并发编程很难正确实现。 这就是为什么在执行线程任务之后要进行大量的设计和代码审查会议。 您永远不会将并发问题分配给经验不足的开发人员。 仔细分析问题空间&#xff0c;提出设计&#xff0c;并记录和审查解决方案。 这就是通常处理线程相关任…

Docker Swarm 常用命令

# 管理配置文件docker config # 查看已创建配置文件 - docker config ls # 将已有配置文件添加到docker配置文件中 - docker config create docker 配置文件名 本地配置文件# 管理swarm节点docker node # 查看集群中的节点 - docker node ls # 将manager角色降级为wor…

单点登录

单点登录&#xff1a;是指在多系统应用群中登录一个系统&#xff0c;便可在其他所有系统中得到授权而无需再次登录&#xff0c;包括单点登录与单点注销两部分 1、获取登录页面的表单信息&#xff1a; 用户名&#xff0c;密码等&#xff0c; eg:  var username document.ge…

我的GMAIL下蛋了,要的请留下姓,名和email!!

如果要的请留下First Name,Last Name,Email!先来先得&#xff0c;发完为止&#xff01;转载于:https://www.cnblogs.com/xiali/archive/2004/09/20/44731.html

微型计算机用什么评价判断,环评中常用评价等级的判定

环评中常用评价等级的判定环评就是分析项目建成投产后可能对环境产生的影响&#xff0c;并提出污染防治对策和措施。那么环评中常用评价等级的判定有哪些呢?一、生态影响评价工作等级划分表影响区域生态敏感性工程占地(水域)范围面积≥20km2或长度≥100km面积2km2&#xff5e;…

客服顾问的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(六)[转]...

这段时间&#xff0c;写完了项目经理的工具箱---走出软件作坊&#xff1a;三五个人十来条枪 如何成为开发正规军&#xff08;三&#xff09; 、实施经理的工具箱--走出软件作坊&#xff1a;三五个人十来条枪 如何成为开发正规军&#xff08;五&#xff09;。于是想一气呵成&…

Spring Boot:快速启动MVC

我打算一年多以前写一篇关于Spring Boot的文章。 最后&#xff0c;我有时间和灵感。 因此&#xff0c;准备10到15分钟的高质量Spring教程。 我将用Gradle和嵌入式Tomcat演示Spring Boot的基础知识。 我使用Intellij IDEA而不是Eclipse&#xff0c;但是对于那些习惯Eclipse的人来…

opengl库区分:glut、freeglut、glfw、glew、gl3w、glad

//oepngl库 opengl原生库 gl* 随opengl一起发布 opengl实用库 glu* 随opengl一起发布 opengl实用工具库glut glut* 需要下载配置安装(太老了&#xff01;) opengl实用工具库开源版本freeglut glut* 需要下载配置安装(完全兼容glut&#xff0c;算是glut的代替品&#xff0c;但是…

css实现左(右)侧固定宽度,右(左)侧宽度自适应 ---清除浮动

老话长谈&#xff0c;css的不固定适应布局 不管是面试还是在平时的工作中&#xff0c;这样的布局形式一直都在用着&#xff0c;很常见&#xff0c;所以今天我就拿出来在唠叨一下&#xff0c; 既是给自己一个备忘存储&#xff0c;也是一个学习巩固的参考&#xff0c;知道大家都…

Func 与Action

Func< > 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法&#xff0c; Action<T> 委托封装一个方法&#xff0c;该方法只有一个参数并且不返回值。 其实都是一个委托 Main() { Func<int, string > fun p.Name;//int是委托要执行的…

HDU1512 (左偏树)

2.1.2 可并堆的定义 可并堆(Mergeable Heap)也是一种抽象数据类型&#xff0c;它除了支持优先队列的三个基本操作(Insert, Minimum, Delete-Min)&#xff0c;还支持一个额外的操作——合并操作&#xff1a; H ← Merge(H1,H2) Merge( ) 构造并返回一个包含H1和H2所有元素的新堆…

布里斯托大学计算机科学专业排名,2021年布里斯托大学世界及专业排名 多个领域位居全英前十!...

它既是红砖大学的成员&#xff0c;也是罗素大学集团成员&#xff0c;在这所学校里共培养出了13位诺贝尔奖得主&#xff0c;这所学校就是布里斯托大学&#xff0c;该校的83%的研究成果都达到了世界领先水平&#xff0c;因此&#xff0c;越来越多的学生去布里斯托大学留学&#x…

Spring启动时的Spring社交示例,或者我如何不再担心和喜欢自动配置

对于Spring Boot 1.1.0.RC1&#xff0c;添加了自动配置和Spring Social的启动程序pom&#xff0c;这意味着我不必为pom添加一百个依赖关系&#xff0c;并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。 我将实现一个两页的Web应用程序。 一个将显示给定用户的T…

Djang之cookie和session

一 会话跟踪 我们需要先了解一下什么是会话&#xff01;可以把会话理解为客户端与服务器之间的一次会晤&#xff0c;在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话&#xff0c;你就是客户端&#xff0c;而10086服务人员就是服务器了。从双方接通电话那一刻起&a…

html 安卓解锁,【华为手机解账户锁教程】手撕篇3 完美解锁华为EMUI8.0,8.1,8.2系统...

[free]华为手机在8.0系统以后都无法用工具解除账户锁。但要想解除账户锁&#xff0c;并不是没有办法&#xff0c;下面我们演示手工解账户锁的一种方法&#xff0c;本方案 针对所有华为机型的EMUI8.0 8.1 8.2有效&#xff0c;其他系统自测&#xff0c;需要华为手机解锁的可以联系…