栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring boot多模块的项目的搭建与发布

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring boot多模块的项目的搭建与发布

1、写篇文章的目的是记录一下自己在spring boot多模块项目搭建与发布遇到的坑,也为读者提供借鉴的经验

2、springboot多模块就是将原来由一个spring boot项目开发管理的项目拆分成不同的模块,每一个模块都是一个maven项目,不同与原来的package;拆分的优点是有利解耦,有利于项目后期的扩展,缺点是把package拆分成不同的maven模块,增加了技术难度和维护成本;

3、项目结构介绍:

(1)模块介绍

整个项目分为四个模块,第一个模块是entity,用来存放pojo的模块;

第二个模块是common模块,这是一个用来存放公用的方法类的模块;

第三个模块是mapper模块,这个模块是mapper模块,用来操作数据库的模块;

第四个模块controller模块,存放service和controller接口的模块

(2)框架介绍:spring boot+mybatis-plus

(3)项目结构如图:

4、构建项目开始:

(1)新建一个springboot项目,作为父模块,名字是data-analysis-plat,这个模块的主要作用是连接其他模块,共享pom.xml里面的jar包,File->new->project->spring Initializr->...->finish

项目建好了之后,删掉不需要的部分结构,仅仅保留“.idea”、“pom.xml”、“*.iml”三个文件就够了,其他都可以删掉

(2)新建common、controller、entity、mapper四个模块,方法是点击建好的项目data-analysis-plat->new->Module->spring Initializr->...->finish,举例如下:

 

 

 

 如法炮制,建立common、mapper、controller三个module;注意controller模块我这边需要的是war包,所以在选择包类型的时候,是war包,其他的步骤不变

(3)建立父模块与子模块之间的关联

第一步:在父模块data-analysis-plat的pom.xml中修改packging为pom模式、引入子模块,如下图:

 第二步:在子模块中引入父模块,关键字parent,注意一定要引入父模块的pom.xml文件,不要你在mvn package或者install 的时候会说找不到 data-analysis-plat包,所有的子模块都要引入

第三步:建立子模块之间的依赖,entity和common是两个独立的模块,mapper模块依赖entity模块和common模块,controller模块依赖mapper,子模块与子模块之间的依赖使用dependency引入模块包就行,

(4)去除父模块pom和子模块中多余的部分

第一步:去掉父模块中的build部分,因为这里你不需要打包

第二步:把common、entity、mapper子模块中的启动类和pom中的build部分都删掉,这些模块都不需要打成可执行的jar包 

(5)父项目进行compile和install监测,注意这一步一定要做,不要你在后面单独打包子模块的时候会抛出错误,原因模块之间的依赖包找不到,比如mapper依赖entity模块;父模块install时,会提前帮你把模块之间的依赖包下载好;例如:

 

这个错误时之前攒下的,项目结构差不多 

在父maven项目中执行了compile和install没有问题,恭喜就完成了一大步了,走到这里那说明你的项目结构依赖已经没有问题了

注意如果打包的install的时候出现Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project controller: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode),那么你只需要在controller模块的pom中引入一下代码即可


                maven-war-plugin
                2.6
                
                    <!–如果想在没有web.xml文件的情况下构建WAR,请设置为false。–>
                    false
                

错误原因是因为你的controller是war模式的,这个模式用阿里云下载的依赖建立的模块需要你有web.xml文件,如果你没有这个文件,那么在这你要告诉它不需要xml配置

5、整合mybatis,

(1)在父项目的pom中引入mybatis-plus依赖和mysql驱动依赖,如下:

 
        
            mysql
            mysql-connector-java
        

        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.2.0
        

(2)在entity模块下的pom引入lombok依赖,并写下数据库的实体类,

引入依赖:

 
        
            org.projectlombok
            lombok
            true
        

新建数据库实体类:

package com.cys.entity.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;


@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class User extends Model {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private String name;

    private String password;

    private LocalDateTime createTime;


}

 (3)mapper模块下建立mapper接口和相关的配置文件

 

(4)在controller层要做的事,service层和接口层,在application.properties配置数据库地址和mybatis-plus,最后在启动类上面引入需要扫描的包和mapper

service层:

 

 controller层

 applition.properties:注意,数据库和mybatis-plus只能在controller层的配置文件里配置,在其他的地方配置会找不到

启动类配置:

最后启动项目,访问 http://localhost:8083/getUser?id=1

6、最后的注意点,如果你要把controller模块打war包,在tomcat发布,那么你需要在controller模块 的pom.xml引入servlet-api的包并移除spring boot的内嵌的tomcat,不然会报错:

终于写完了,再见 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号