本次喵子给大家分享一个通用的聚合工程搭建教程,细致入微、充满人文关怀的保姆级教程,基本上搭建一次后续即可作为通用模版,应用到其它项目里。
随着微服务技术的流行,越来越多的项目采用微服务架构设计,尤其是大型的、业务比较复杂的项目,采用微服务架构可以让业务分门别类的独立出来,解决业务臃肿。
维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。
操作系统:MacOS 10.5.6
Java版本:JDK 11.0.13
开发工具:IntelliJ IDEA 2021.3.2
Maven版本:Apache Maven 3.8.4
(1)打开IDEA欢迎面板,选择Project–>New Project
(2)进入新建项目面板,点击左侧Maven菜单,项目SDK根据你本地环境进行选择,默认会加载本地最新的JDK,点击Next。
(3)红框中标示的地方,输入自己项目名称和GroupId即可,其它可保持默认,然后点击Finish,Maven自动构建并进入父工程。
(4)因为要使用maven构建一个空的聚合工程,所以顶级工程的打包方式选择pom的形式。这里顺便科普下Maven的三种打包方式:
(1)该子工程可用于存放一些通用工具或者功能,为其它各个子工程提供公共服务。在项目名称上右键new–>Module
(2)跟创建父工程一样,点击Next
(3)红框填入子工程项目名称,注意到此时该子工程已经默认选中了Parent父工程。点击Finish。
可以看到此时父工程下多出一个common子工程,与此同时pom.xml文件中也多出一个modules标签,自动填充了common子工程module。
(1)创建pojo子module的过程同common,如法炮制即可。这里介绍下pojo及pojo工程的作用。
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
单独给pojo类创建一个工程,可以方便业务维护,项目在开发过程中也是一目了然,结构清晰。在打成jar包后部署在服务器上,可供各个业务模块使用,非常的方便。
(2)因common子工程作为一个公共工程,这里可以引入到pojo子工程中。后续pojo在被其它子工程依赖时,即可间接给其它工程提供公共服务的调用。
(1)该子工程可以如法炮制common子工程。mapper子工程主要用于数据层的代码管理,所有数据层相关的东西可以放在此模块中,便于集中管理和维护。
(2)因为是数据处理曾子工程。所以该工程不可避免的要用到pojo子工程中的pojo实体类,所以,mapper子工程和pojo子工程就产生了关联关系,即mapper子工程依赖于pojo子工程。注意:这里不仅仅是只有mapper子工程才可以依赖pojo子工程,项目中的任何工程都可以相互依赖。
这里要给mapper子工程的pom.xml文件中添加pojo依赖,如下图所示:
(1)该子工程同样可以如法炮制common子工程。该子工程主要用于处理系统业务,业务相关的处理逻辑可以写在该子工程里面,不同模块业务可通过包名来区分,避免维护混乱,给后期代码维护带来极大方便。
(2)因为service子工程中的业务处理需要依赖mapper子工程中的数据处理功能,所以这里也要在service子工程中把mapper子工程引入进来。
(1)该子工程也是同样可以如法炮制common子工程。该子工程主要用于restful风格的接口存放,不同业务controller可以通过包名及控制器名称进行区分,统一在一个子工程中,便于管理和维护。
(2)同样的,apis子工程中要调用service子工程中的业务处理相关功能,所以这里要把service子工程引入到apis子工程中。
经过上面一番设置后,整个工程中各个子模块就建立了相互联系,即:
将定义好的顶级工程进行一次安装,将各子工程安装进顶级工程。
在idea右侧找到Maven面板工具,找到父工程,点开Lifecycle,找到install命令,双击即可进行工程安装。
这样整个聚合工程就搭建完了。
关注 @程序喵子发掘更多有趣有用的东西与大家共同分享,共同进步!
更多精彩推荐:
软考系列
操作系统
Java编程系列
面试系列
实用工具系列
数据库系列