spring boot 新建多模块项目

这篇具有很好参考价值的文章主要介绍了spring boot 新建多模块项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、新建项目

spring boot 新建多模块项目

然后 下一步 完成 即可,如果完成后pom.xml里面的springboot版本报错,则将版本修改为2.6.6即可解决,可能是新的版本没那么稳定,更换成老的版本就不报错了。

新建好后,文件结构只保留pom.xml以及idea必须文件,如下图:

spring boot 新建多模块项目

2、修改pom.xml文件

pom.xml中,作为模块项目的父项目,groupId、artifactId、version是必须的,name、description可以删除,新增打包方式为pom(父级必须定义为pom),新增modules项配置,如下图:

spring boot 新建多模块项目

3、新建common模块项目

在项目上右键菜单,选择新建 模块 ,和新建父项目一样,修改name和groupId,注意jdk版本,即可新建完成。

spring boot 新建多模块项目

案例中,新建的是一个共同类项目,可以删除掉除了src和pom.xml以外的东西,以及src下面的启动类、test包下的所有(可选删除),将application修改为yml文件精简配置。

spring boot 新建多模块项目

在父级pom.xml的modules配置中,增加子模块common

spring boot 新建多模块项目

在子级pom.xml配置中,groupId、artifactId、version这三项改为当前父级的,删除build下的全部,默认是maven打包插件(删除打包插件显得页面简洁,运行也正常,但是后续整个项目打包还是要加回去,所以可以不删除),如果没有特殊的依赖,可以删除properties、dependencies下的全部,如下图:

spring boot 新建多模块项目

dao和service模块和common一样的创建方法。

4、web模块和entrance启动模块

web模块基本创建如common一样,pom.xml文件稍有不同,增加packaging打包方式为jar(百度过,默认就是jar,可以不设置),因为是web模块,需要保留maven打包插件。

spring boot 新建多模块项目

entrance启动模块基本创建和common一样,pom.xml文件稍有不同,增加packaging打包方式为jar(可选),保留maven打包插件,dependencies依赖引入两个web。

spring boot 新建多模块项目

5、整合

1)关联依赖

根据谁依赖哪个引用哪个的依赖原则,在service中引入dao依赖,在两个web中引入service依赖,entrance引入两个web依赖(第4步已经引入了):

spring boot 新建多模块项目

spring boot 新建多模块项目

2)修改启动类扫描包路径

默认启动类entrance启动只会扫描当前模块项目下的包路径,需要增加配置使其扫描所有模块的包路径。当前创建的所有包都命名在“com.liang"下,所以直接配置一个即可,如果各个子模块包命名不一致,还需要使用数组方式配置多个包路径,如@ComponentScan(value={"com.liang","com.demo"})。类似的,如果使用mybatis,还需要增加Mapper的扫描,@MapperScan(value="com.liang")

spring boot 新建多模块项目

3)启动类模块配置文件

spring boot 新建多模块项目

6、测试项目

在web中创建测试controller,特别注意,两个web创建的controller的类名不能重复,试过了,重复会报错。

spring boot 新建多模块项目

创建好后,启动项目,在浏览器分别输入localhost:8080/helloWeb01、localhost:8080/helloWeb02测试访问是否正常。

7、打包项目

1)配置maven打包插件

启动模块配置文件需要配置启动类路径

spring boot 新建多模块项目

两个web都保留maven打包插件,需要配置忽略启动类,service、dao、common也需要把maven打包插件补上并都配置相同代码

spring boot 新建多模块项目

2)按依赖程度依次打包

首先先执行一下父项目的install

spring boot 新建多模块项目

然后按谁依赖谁,从低到高一次点击install,顺序为common、dao、service、web01、web02、entrance。

找到entrance子模块下target目录下的jar文件,在该目录下打开cmd,执行 java -jar entrance-0.0.1-SNAPSHOT.jar即可运行该项目文章来源地址https://www.toymoban.com/news/detail-406848.html

8、不同模块类名相同无法启动解决方案

1)新建处理类

public class UniqueNameGenerator extends AnnotationBeanNameGenerator {

    @Override
    public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
        //全限定类名
        String beanName = definition.getBeanClassName();
        return beanName;
    }
}

2)在启动类增加注解引用该处理类

@ComponentScan(nameGenerator = UniqueNameGenerator.class)

到了这里,关于spring boot 新建多模块项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot多模块项目打包

    例如父项目 build_test 下面有三个子模块,一个是common模块 一个是a模块,一个b模块;其中common是公共模块,a和b都依赖于公共模块common,我现在想把a和b模块打包成jar包。 创建父工程 创建3个子模块,分别是common和a和b模块 鼠标右击红框位置 选New 再选Module,鼠标左键点一下, 同

    2024年02月09日
    浏览(40)
  • Spring Boot多模块项目的创建和配置(Maven工程多模块)

    在进行分布式系统开发时,我们通常会创建多个模块的工程项目。即每一个功能就是一个Spring Boot工程,作为一个个模块,然后这些模块都会有一个父模块,父模块通常没有代码只有一个 pom.xml 。 今天就来分享一下Spring Boot如何创建一个多模块项目,以创建一个两个子模块的

    2024年02月12日
    浏览(29)
  • 工程项目管理系统源码+功能清单+项目模块+spring cloud +spring boot em

    ​   工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理    工程项目各模块及其功能点清单 一、系统管理     1、数据字典:实现对数据字典

    2024年02月12日
    浏览(39)
  • spring boot3单模块项目工程搭建-下(个人开发模板)

    ⛰️个人主页:     蒾酒 🔥系列专栏 :《spring boot实战》 目录 写在前面 上文衔接 常用依赖介绍以及整合 web组件 测试组件 样板代码生成 数据库连接器 常用工具包 面向切面编程 ORM框架 数据连接池 接口测试、文档导出 缓存中间件 参数校验 认证鉴权 基础功能完善 跨域问

    2024年04月28日
    浏览(27)
  • spring boot3单模块项目工程搭建-上(个人开发模板)

      ⛰️个人主页:     蒾酒 🔥系列专栏 :《spring boot实战》 目录 写在前面 上文衔接 常规目录创建 common目录 exception.handle目录 result.handle目录 controller目录 service目录 mapper目录 entity目录 test目录 写在最后 本文介绍了springboot开发后端服务,单模块项目工程搭建。单模块搭建出

    2024年04月29日
    浏览(27)
  • 网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

    匹配成功返回数据 1. message消息类别 2. ok 3. reson 4. 房间id 5. 双方id 6.白色玩家 一个类记录房间中的信息(房间id,两个用户id,是否为白棋) 信息提示框 处理匹配API 初始化游戏(棋盘,下一个棋子,接受棋子处理响应,判断是否结束) 1. 客户端连接到游戏房间后, 服务器返回

    2024年02月13日
    浏览(38)
  • Java版企业工程项目管理系统源码+java版本+项目模块功能清单+spring cloud +spring boot

          工程项目各模块及其功能点清单 一、系统管理     1、数据字典:实现对数据字典标签的增删改查操作     2、编码管理:实现对系统编码的增删改查操作     3、用户管理:管理和查看用户角色     4、菜单管理:实现对系统菜单的增删改查操作     5、角色管理:

    2024年02月16日
    浏览(35)
  • IDEA 中搭建 Spring Boot Maven 多模块项目 (父SpringBoot+子Maven)

    [Ref] 新建一个SpringBoot项目 删除无用的 .mvn 目录、 src 目录、 mvnw 及 mvnw.cmd 文件,最终只留 .gitignore 和 pom.xml ① 删除 dependencies 标签及其中的 spring-boot-starter 和 spring-boot-starter-test 依赖,因为 Spring Boot 提供的父工程已包含,并且父 pom 原则上都是通过 dependencyManagement 标签管理

    2024年01月20日
    浏览(60)
  • 记录spring boot项目中新增模块在swagger中不显示新增接口的问题

    1、先排查新增接口是否添加了对应的@RequestMapping和@Controller注解 ; 2、若第一步所需注解均已添加,则排查新增模块的父级模块pom中是否新增了对应新加的模块;【红框中为新增的子模块】 3、排查 父级模块的父级模块的pom文件中是否添加了新增的模块依赖。 4、排查启动类

    2024年02月05日
    浏览(44)
  • Java 版 spring cloud + spring boot 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

           工程项目各模块及其功能点清单 一、系统管理     1、数据字典:实现对数据字典标签的增删改查操作     2、编码管理:实现对系统编码的增删改查操作     3、用户管理:管理和查看用户角色     4、菜单管理:实现对系统菜单的增删改查操作     5、角色管理:

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包