SpringBoot多模块项目建立步骤

Springboot项目分模块建立流程

内含一个或多个maven模块的SpringBoot项目称为SpringBoot多模块项目

为什么分模块?

**便于维护:**将一个大的单体项目分成多个子模块有利于模块间的维护, 删除或移动单个模块时对其他模块的影响也比较小,单个模块还可以复用,对于建立微服务时候进行服务的拆分

**共享依赖:**只需要在父类中定义公共的依赖项,子类模块都会共享父类的依赖项,在大型项目中会使得代码更容易简洁。

如何分模块流程

①创建父模块

创建父项目(SpringBoot)

image-20230128122203689

删除不需要的目录.mvn mvnw mvnw.cmd 文件

1.1pom.xml

packaging标签打包方式改为"pom" :表示这个模块是 聚合模块 把子类模块都"聚合"起来 使用maven打包,可以从这个模块开始,会自动计算打包顺序

<!--    打包方式-->
<packaging>pom</packaging>

父类的pom.xml的demo:

<!--	父类: springboot自带的启动类父类-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
 
<!--	创建时填写的基本信息-->
	<groupId>com.ysl.homedetection</groupId>
	<artifactId>home-detection</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>home-detection</name>
	<description>springboot多项目</description>
<!--	父类的packing只能是pom-->
	<packaging>pom</packaging>
<!-- 子类直接继承-->
 <dependencies>
<!-- 子类需要在pom中 手动加入依赖(version不用写)-->
 <dependencyManagement>

image-20230130223245114

1.2启动类

父模块启动类,是整个模块的启动类,所有的请求都走父模块的端口,为了使子模块的服务也能启动,需要在父模块启动类上加入注解:

@ComponentScan(basePackages = {"com.ysl.*",})

如下:

@SpringBootApplication
@ComponentScan(basePackages = {"com.ysl.*",}) // 扫描所有模块下的该路径
@MapperScan("com.ysl.**.mapper") // mybatisplus扫包
public class HomeAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(HomeAdminApplication.class, args);
    }
}

②创建子模块

选择Module

image-20230128123011084

选择maven项目(选SpringBoot项目删除一些SpringBoot的东西即可)

img

输入具体信息

img

若是创建了一个SpringBoot的子模块,需要把启动类删掉以及相关的SpringBoot的starter的maven包注释掉

image-20230130223818045

1.3pom.xml

若需要单独打包给该模块打包:

packaging标签这里可以选择jar或者war 指定打包方式

引入父类的pom:

    <parent>
        <artifactId>home-detection</artifactId>
        <groupId>com.ysl.homedetection</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

parent 子类pom中的parent自动指向了父类的GAV 子类会自动引入父类pom中 dependencies 的中依赖项com.ysl.homedetection0.0.1-SNAPSHOT

模块间依赖 需要依赖某个模块,只需要在pom中声明即可,这里的依赖是从本地仓库下载的,不是远程仓库,如下:

    <dependencies>
        <dependency>
            <groupId>com.ysl.homecommon</groupId>
            <artifactId>home-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
     </dependencies>

Maven插件

下载一个插件Maven Helper,在idea中安装maven helper点击pom文件,选择 Dependency Analyzer

image-20230130225119282

点击下方位置进行查看:

image-20230130225350618

即可查看并搜索依赖项,这对于解决依赖冲突很有帮助

image-20230131001956497

多模块打包

方式1:聚合模块直接打包

在聚合模块打包,会自动计算依赖顺序,依次打包:

image-20230131004524145

依次执行 clean 与 install maven会自动计算构建顺序:

image-20230131004819809

方式2:使用插件

方式1的问题就是耗费时间长, 因为是全部打包, 所以就需要实现单个模块打包 这里需要借助spring-boot-maven-plugin插件:

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于Spring Boot商场项目案例,有很多不同的实现方式和功能求。下面我为您提供一个简单的示例,希望对您有所帮助。 项目概述: 这是一个基于Spring Boot的简单商场项目,实现了用户注册、登录、商品浏览和购买等功能。 技术栈: - 后端框架:Spring Boot - 数据库:MySQL - 前端框架:Thymeleaf(可选) 功能模块: 1. 用户模块 - 用户注册:包括用户名、密码等信息的输入和保存。 - 用户登录:验证用户输入的用户名和密码是否正确。 2. 商品模块 - 商品浏览:展示商城中的商品列表,包括商品名称、价格等详细信息。 - 商品购买:用户可以选择要购买的商品和数量,并生成订单。 3. 订单模块 - 订单管理:展示用户的订单列表,包括订单编号、商品信息、订单状态等。 - 订单支付:用户可以选择支付方式完成订单支付,并更新订单状态。 实现步骤: 1. 创建Spring Boot项目,并配置相关依赖(如Spring Web、Spring Data JPA、Thymeleaf等)。 2. 设计数据库表结构,创建用户表和商品表,并建立相应的实体类和数据库映射关系。 3. 编写用户模块的控制器和服务层代码,处理用户注册、登录的逻辑。 4. 编写商品模块的控制器和服务层代码,实现商品的浏览和购买功能。 5. 编写订单模块的控制器和服务层代码,处理订单管理和支付的逻辑。 6. 创建前端页面,使用Thymeleaf进行数据展示和交互(可选)。 7. 进行测试和调试,修复可能存在的问题。 8. 部署项目到服务器上,并进行性能优化和安全加固。 请注意,上述示例只是一个简单的商城项目案例,实际开发中还要根据具体求进行功能扩展和优化。希望能对您有所启发!如有更多疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值