使用IDEA构建微服务Maven聚合工程保姆级教程

本次喵子给大家分享一个通用的聚合工程搭建教程,细致入微、充满人文关怀的保姆级教程,基本上搭建一次后续即可作为通用模版,应用到其它项目里。

    • 一、简单了解微服务
    • 二、Maven构建聚合工程
      • 1.环境说明
      • 2.开始构建
        • 2.1.创建空的父工程
        • 2.2.创建common子工程
        • 2.3.创建pojo子工程
        • 2.4.创建mapper子工程
        • 2.5.创建service子工程
        • 2.6.创建apis子工程
        • 2.7.工程安装
    • 三、总结

一、简单了解微服务

随着微服务技术的流行,越来越多的项目采用微服务架构设计,尤其是大型的、业务比较复杂的项目,采用微服务架构可以让业务分门别类的独立出来,解决业务臃肿。

维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。

二、Maven构建聚合工程

1.环境说明

操作系统:MacOS 10.5.6
Java版本:JDK 11.0.13
开发工具:IntelliJ IDEA 2021.3.2
Maven版本:Apache Maven 3.8.4

2.开始构建

2.1.创建空的父工程

(1)打开IDEA欢迎面板,选择Project–>New Project

使用IDEA构建微服务Maven聚合工程保姆级教程_第1张图片

(2)进入新建项目面板,点击左侧Maven菜单,项目SDK根据你本地环境进行选择,默认会加载本地最新的JDK,点击Next。

使用IDEA构建微服务Maven聚合工程保姆级教程_第2张图片

(3)红框中标示的地方,输入自己项目名称和GroupId即可,其它可保持默认,然后点击Finish,Maven自动构建并进入父工程。

使用IDEA构建微服务Maven聚合工程保姆级教程_第3张图片
使用IDEA构建微服务Maven聚合工程保姆级教程_第4张图片
(4)因为要使用maven构建一个空的聚合工程,所以顶级工程的打包方式选择pom的形式。这里顺便科普下Maven的三种打包方式:

  • jar:默认的打包方式,打包成jar用作jar包使用。
  • war:将会打包成war,发布在服务器上,如网站或服务。一般是java web项目打包。
  • pom:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom。
    使用IDEA构建微服务Maven聚合工程保姆级教程_第5张图片
2.2.创建common子工程

(1)该子工程可用于存放一些通用工具或者功能,为其它各个子工程提供公共服务。在项目名称上右键new–>Module

使用IDEA构建微服务Maven聚合工程保姆级教程_第6张图片

(2)跟创建父工程一样,点击Next

使用IDEA构建微服务Maven聚合工程保姆级教程_第7张图片

(3)红框填入子工程项目名称,注意到此时该子工程已经默认选中了Parent父工程。点击Finish。

使用IDEA构建微服务Maven聚合工程保姆级教程_第8张图片

可以看到此时父工程下多出一个common子工程,与此同时pom.xml文件中也多出一个modules标签,自动填充了common子工程module。

使用IDEA构建微服务Maven聚合工程保姆级教程_第9张图片

2.3.创建pojo子工程

(1)创建pojo子module的过程同common,如法炮制即可。这里介绍下pojo及pojo工程的作用。

POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

单独给pojo类创建一个工程,可以方便业务维护,项目在开发过程中也是一目了然,结构清晰。在打成jar包后部署在服务器上,可供各个业务模块使用,非常的方便。

使用IDEA构建微服务Maven聚合工程保姆级教程_第10张图片

(2)因common子工程作为一个公共工程,这里可以引入到pojo子工程中。后续pojo在被其它子工程依赖时,即可间接给其它工程提供公共服务的调用。

使用IDEA构建微服务Maven聚合工程保姆级教程_第11张图片

2.4.创建mapper子工程

(1)该子工程可以如法炮制common子工程。mapper子工程主要用于数据层的代码管理,所有数据层相关的东西可以放在此模块中,便于集中管理和维护。

使用IDEA构建微服务Maven聚合工程保姆级教程_第12张图片

(2)因为是数据处理曾子工程。所以该工程不可避免的要用到pojo子工程中的pojo实体类,所以,mapper子工程和pojo子工程就产生了关联关系,即mapper子工程依赖于pojo子工程。注意:这里不仅仅是只有mapper子工程才可以依赖pojo子工程,项目中的任何工程都可以相互依赖。
这里要给mapper子工程的pom.xml文件中添加pojo依赖,如下图所示:
使用IDEA构建微服务Maven聚合工程保姆级教程_第13张图片

2.5.创建service子工程

(1)该子工程同样可以如法炮制common子工程。该子工程主要用于处理系统业务,业务相关的处理逻辑可以写在该子工程里面,不同模块业务可通过包名来区分,避免维护混乱,给后期代码维护带来极大方便。

使用IDEA构建微服务Maven聚合工程保姆级教程_第14张图片

(2)因为service子工程中的业务处理需要依赖mapper子工程中的数据处理功能,所以这里也要在service子工程中把mapper子工程引入进来。

使用IDEA构建微服务Maven聚合工程保姆级教程_第15张图片

2.6.创建apis子工程

(1)该子工程也是同样可以如法炮制common子工程。该子工程主要用于restful风格的接口存放,不同业务controller可以通过包名及控制器名称进行区分,统一在一个子工程中,便于管理和维护。

使用IDEA构建微服务Maven聚合工程保姆级教程_第16张图片

(2)同样的,apis子工程中要调用service子工程中的业务处理相关功能,所以这里要把service子工程引入到apis子工程中。

使用IDEA构建微服务Maven聚合工程保姆级教程_第17张图片

经过上面一番设置后,整个工程中各个子模块就建立了相互联系,即:

  • apis子工程依赖service,service依赖mapper,mapper依赖pojo,pojo依赖common。
  • apis子工程可以调用service、pojo及common中相应的方法。
2.7.工程安装

将定义好的顶级工程进行一次安装,将各子工程安装进顶级工程。
在idea右侧找到Maven面板工具,找到父工程,点开Lifecycle,找到install命令,双击即可进行工程安装。

使用IDEA构建微服务Maven聚合工程保姆级教程_第18张图片

这样整个聚合工程就搭建完了。

三、总结

  1. 一个顶级工程可以由多个子工程组合而成。
  2. 顶级工程与子工程之间为父子继承关系,多个子工程是平级的,子工程之间可以互相依赖。
  3. 子工程可以使用顶级工程里所有资源,子工程之间如果要使用资源,必须构建依赖关系。

关注 @程序喵子发掘更多有趣有用的东西与大家共同分享,共同进步!

更多精彩推荐:

软考系列
操作系统
Java编程系列
面试系列
实用工具系列
数据库系列

你可能感兴趣的:(经验分享,intellij-idea,微服务,maven,经验分享,学习)