Java EE7和Maven工程入门(3)

本文开始讲述第三部分。我们已经有了一个父pom并且已经为我们的war模块定义好了pom。在原来的设置中,我们已经定义了应用程序将要包含一个以ejb jar包的形式的service jar包。我们的企业级java bean,尤其是会话bean就放那里。我们还定义了另一个主管实体bean(数据库展现bean)的模块(层),即所谓的域模型。

定义service(ejb)模块

在父pom文件夹下,我们新建一个子目录,就像我们处理war模块一样。在这个文件夹里面我们创建一个包含以下内容的pom.xml文件。文件夹的名字为sample-services。这个pom看起来就是这样。就目前而言,最终和下面的内容差不多:

记得我们已经在父pom的依赖管理部分(dependency management)定义过了javaee-api jar包的版本,在插件管理部分(plugin management)还需要一个maven插件来专门负责打包我们ejb.jar。它就是maven-ejb-plugin。可以回到父pom中,查找以上两点。由于这些元素都定义在了父pom里,所以我们的ejb service pom看起来就小多了。按照惯例,Maven将负责大多数东西。maven的ejb插件将踢开,因为我们已经定义了需要此模块的包是“ejb”。

我们的工程结构看起来是这个样子的:

工程结构

定义实体bean(ejb)模块

在父pom文件夹下,我们新建一个子目录,就像我们处理上面的ejb模块一样。我们将其命名为sample-domain。这个模块里,我们将依据JPA2规范来编写我们的数据库展现bean,即所谓的实体bean。

这个pom看起相当的简单。

包仍然是ejb,因为它将主管EJB类,即所谓的实体bean

由于这个模块将“主管”我们的域对象,所以还有另外一个我们需要一起打包的东西,一个叫做persistence.xml的xml描述符。它定义了我们的应用将连接的数据源。在Java EE7里面,这个文件已经简化了许多,我们甚至可以略过数据源的定义,因为已经有一个默认的数据源。参考这里。从包装的角度来看,现在你需要做的就是在src/main/resources文件夹下新建一个名为META-INF的文件夹,并在里面放置persistence.xml文件,如下图所示:

persistence.xml的内容在这点上不相关(我们将在下个帖子中关注这部分内容),你可以在这个帖子的git分支找到一个例子。

关于目录创建需要注意:如果你使用一个诸如Eclipse或者Intellij这样的IDE来添加maven模块,一旦你创建了一个新的模块并定义一个POM,IDE会根据Maven约定自动创建你的模块该有的标准目录结构。如果你按照这些帖子来并且你使用一个更简单的工具,例如一个简单的文本编辑器来写的你的代码,那么你就必须自己创建src/main目录结构。

以上就是这个帖子的所有内容了,我们已经为我们的应用添加了至少两个模块,但是我们仍然缺少一个打包所有东西的ear模块。我们还没有涉及到模块的“内部依赖”,这些是我们将要做的。在后面的“ear”专题里,所有的模块都将集中起来。

原文发布于微信公众号 - java一日一条(mjx_java)

原文发表时间:2016-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏流柯技术学院

HTTP 方法:GET 对比 POST

举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

13920
来自专栏张善友的专栏

CentOS 7 安装Java 1.8

40260
来自专栏mwangblog

Linux文件操作

21240
来自专栏小白安全

小白博客 linux常用操作命令

常用指令 ls   显示文件或目录      -l 列出文件详细信息l(list)      -a 列出当前目录下所有文件及目录,包括隐藏的a...

30070
来自专栏性能与架构

Linux下完胜top的进程监控工具

top 是平时常用的进程监控工具,可以看到CPU、内存、系统负载、进程占用资源等信息 但 top 比较老了,htop 作为进程监控工具的后起之秀,不仅提供了t...

40760
来自专栏HaHack

化繁为简的企业级 Git 管理实践(一):多分支子模块依赖管理

18620
来自专栏Java帮帮-微信公众号-技术文章全总结

Linux常用命令

Linux常用命令 常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list) -a ...

58260
来自专栏张善友的专栏

CentOS 7 安装Java 1.8

携程的Apollo配置中心服务端[https://github.com/ctripcorp/apollo/wiki]推荐的Java版本是:1.8+, 本文介绍如...

67970
来自专栏Rgc

redis权限认证及登录

67410
来自专栏Java帮帮-微信公众号-技术文章全总结

Redis实现参数的集中式管理【面试+工作】

分布式缓存Redis也提供了类似的发布订阅功能,并且Redis本身提供了缓存和持久化的功能,本文将介绍通过Redis实现简单的参数集中式管理。

12920

扫码关注云+社区

领取腾讯云代金券