SpringBoot入门学习(二)~~SpringBoot项目结构分析 Maven的模块化开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaozhegaa/article/details/82912238

目录

Maven的模块化开发

一、案例分析:【Why+How】

二、代码搭建~~ 【what】

三、Pom文件配置的分析~~~


 

Maven的模块化开发

这里介绍Maven的模块化开发,在上一篇文章中,我们知道Maven可以改造成SprigBoot项目。基于上述模块结构,我们也可以直接应用在SpringBoot中。因为在公司新项目中介绍到这种架构,那么在这里详细介绍如何去搭建这样的架构。

  • 一、案例分析:【Why+How】

以风控系统为例:这里有两个项目

在旧的系统,一般都不区分多个项目,直接写在一个项目里面,这样的话,项目就会显得很臃肿。但是呢!在比较大的项目中,最好是拆分开来,比较方便维护。这里暂时划分为两个项目:

Website:是公司外部人员使用App的项目

Mgrsite:是公司内部人员使用管理后台的项目

进一步分析,如果说两个项目有部分公用的部分,例如:用户的实体,website项目本身就需要对用户进行身份验证;后台管理系统也需要对用户进行管理,因此也是需要这个用户的实体,如果说:每个项目都维护一个用户实体的话,那么就很麻烦。每次更新需要更新两次代码,因此,将共同的部分抽取出来当做一个单独的项目。

       因此,这里就有三个项目,变成下面的结构图:

 

在进一步思考一个问题,如果说Website项目和Mgrsite项目都有自己的版本控制,那么在修改版本信息的需要修改两次,能不能把这种版本控制呢,交由给一个工程来控制,这个工程叫父工程,子工程只需要去继承父工程即可。经由这步思想,改造成下面这种架构。

 

下面这张图就是解释为什么可以把版本控制交由给父工程来控制,这是因为有一个叫:

dependencyManagement的标签:这个标签呢,定义的依赖表示不是立即加载,而是当子模块在dependencies去定义依赖的时候,如果没有指定版本的话,那么它会直接使用dependencyManagement里面的依赖版本,这样的话就实现了子工程的依赖交由给父工程控制。

 

 

  • 二、代码搭建~~ 【what】

  1. 创建一个父工程~~上一篇maven创建步骤已经详细截图了,这里不冗余了。
  • 选择quickstart
  • 将src文件删除,它只是一个管理依赖的父工程,不需要任何的代码编码
  • 删除所有的pom依赖,跟插件,留下最简单的pom文件即可
  • 增加一行配置,打包方式为pom方式,代码如下
<packaging>pom</packaging>
<?xml version="1.0" encoding="UTF-8"?>

  <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>

  

    <groupId>com.dgut.edu.cn</groupId>

    <artifactId>parentDemo</artifactId>

    <version>1.0-SNAPSHOT</version>

    <!--设置它的打包方式,自己添加的-->

    <packaging>pom</packaging>

  

  </project>
 

  1. 创建core工程 ~~ 这个是两个工程的共同部分
  • 在父工程右边àNewàModule
  • 接下来就跟maven工程是一样的,按照提示输入:项目名称,版本号即可

 

 

  • 查看pom文件,你会发现parent就是parentDemo
  • 在parent中,也会自动有一个module的属性配置
  • 增加一行配置,打包方式为pom方式,代码如下

<packaging>jar</packaging>

<?xml version="1.0" encoding="UTF-8"?>

  <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">

    <parent>

        <artifactId>parentDemo</artifactId>

        <groupId>com.dgut.edu.cn</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

    <modelVersion>4.0.0</modelVersion>

  

    <groupId>com.dgut.edu.cn</groupId>

    <artifactId>core</artifactId>

    <version>1.0-SNAPSHOT</version>

    <!--手动指定它的打包方式为jar-->

    <packaging>jar</packaging>

  

  </project>

 

3.  Website项目和Mgrsite项目的创建方式上面core创建方式一样,但是有一点不一样的是,指定它的打包类型为war形式。

<packaging>war</packaging>

这里就不掩饰了,直接上最终项目的效果图。

 

这样子,项目的基本架构就搭建成功了。接下来,给大家分析一下pom文件中几个重要的标签。

  • 三、Pom文件配置的分析~~~

  1. 全局配置依赖~~ 实现父工程控制所有子工程依赖的效果。

在parent父工程中的pom引入

<dependencies>

  <dependency>

    <groupId>org.projectlombok</groupId>

    <artifactId>lombok</artifactId>

    <version>1.16.16</version>

  </dependency>

  </dependencies>

打开右边的Maven Projects可以看到~~三个子工程都引入了该依赖。

 

  1. 全局控制版本~~ 实现父工程控制所有子工程版本的效果。
<dependencyManagement>

  <dependencies>

    <dependency>

      <groupId>org.springframework</groupId>

      <artifactId>spring-webmvc</artifactId>

      <version>4.2.4.RELEASE</version>

    </dependency>

  </dependencies>

  </dependencyManagement>

可以看,其他模块并没有立刻引入了该依赖,而是只有在子模块中,声明了要使用该依赖才会立刻使用该依赖。

 

 

在mgrsite和Website项目中:引入该依赖,但是没有声明版本号

 

以上呢,SpringBoot的模块化开发基本就搭建完成了。

  1. 其他工程依赖core工程
<dependency>

    <groupId>com.dgut.edu.cn</groupId>

    <artifactId>core</artifactId>

    <version>1.0.0</version>

  </dependency>

 

猜你喜欢

转载自blog.csdn.net/xiaozhegaa/article/details/82912238