网站文件夹目录结构,seo对网络推广的作用是什么?,怎么制作免费网站教程视频,做旅游计划的网站⛰️个人主页: 蒾酒
#x1f525;系列专栏#xff1a;《spring boot实战》 目录
写在前面
多模块结构优缺点
模块介绍
Common 模块#xff1a;
API 模块#xff1a;
Web 模块#xff1a;
Service 模块#xff1a;
DAO 模块#xff1a;
搭建步骤
1.创建 父…
⛰️个人主页: 蒾酒
系列专栏《spring boot实战》 目录
写在前面
多模块结构优缺点
模块介绍
Common 模块
API 模块
Web 模块
Service 模块
DAO 模块
搭建步骤
1.创建 父Maven 项目
2.添加各模块
3.配置父项目构建
4.配置Web模块构建
5.配置Service模块构建
6.配置DAO模块构建
7.配置API模块构建
8.配置Common模块构建
9.启动类位置修改
10.编写测试接口
11.打包测试 12.启动项目测试接口
写在最后 写在前面
本文介绍了springboot开发后端服务多模块项目工程搭建。坚持看完相信对你有帮助。
同时欢迎订阅springboot系列专栏持续分享spring boot的使用经验。
多模块结构优缺点
多模块项目将代码分成多个子模块每个模块可以单独构建和管理。通常适用于大型项目或团队以及那些希望将不同的功能或服务进行解耦的场景。
优点 模块化代码解耦每个模块负责特定的功能易于维护。团队协作不同的团队可以在不同的模块上工作减少冲突。重用性可以将模块打包成共享库供其他项目使用。 缺点 复杂性项目结构更复杂构建和部署过程可能需要更多配置。管理难度需要更多的协调和沟通以确保模块之间的兼容性。 模块介绍 Common 模块 职责Common 模块通常包含各种通用的工具类、常量定义、异常类等。功能 存放通用的工具方法如日期处理、字符串处理等。存放常量定义如错误码、常量字符串、数据对象等。定义通用的异常类如自定义的业务异常。 API 模块 职责API 模块用于定义应用程序的外部接口通常是 RESTful API 或 GraphQL 接口。功能 定义接口的请求和响应对象。定义接口的路径、请求方法和参数。提供接口文档和描述。 Web 模块 职责Web 模块负责处理 HTTP 请求将请求转发给 Service 模块处理并返回响应给客户端。功能 处理请求参数的验证和转换。调用 Service 模块提供的服务进行业务逻辑处理。构建响应并返回给客户端。 Service 模块 职责Service 模块包含应用程序的业务逻辑负责处理业务规则和数据处理。功能 实现应用程序的业务逻辑。调用 DAO 模块提供的数据访问接口进行数据库操作。处理事务管理。 DAO 模块 职责DAO 模块负责与数据库进行交互执行数据访问操作。功能 提供数据访问对象DAO接口定义对数据库的增删改查操作。实现 DAO 接口执行 SQL 查询和更新操作。处理数据库连接和资源管理。 搭建步骤
1.创建 父Maven 项目 父工程在 Maven 项目中扮演着组织和管理子模块的角色。它通常是一个空的 POMProject Object Model文件用于定义项目的基本信息和管理子模块的依赖关系。父工程可以统一管理子模块的版本号、依赖项和插件配置从而简化项目的构建和维护过程。同时父工程也可以提供一些公共的配置和资源供子模块共享使用。 父项目不放任何代码用不到的文件全部删除 2.添加各模块
在项目中创建各个模块的子目录如Common、API、Web、Service和DAO。 Common模块 任何依赖都先不用选后续统一在pom.xml导入 删除无用文件只保留src、.gitignore、pom.xml src/main/java/·····内的启动类删除src/test/java/····内的测试类删除 API模块、Web模块、Service模块和DAO模块 添加方法跟Common模块一样、依次添加即可。
仅web模块要保留启动类和测试类
添加完成如图 删除无用文件如图 3.配置父项目构建 在项目的根目录下的 pom.xml 文件中配置 Maven 构建指定各个模块的依赖关系和构建顺序。 父项目pom.xml:
需要清理无用配置
设置打包方式为pom
导入子模块 完整pom.xml如下
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.2.5/versionrelativePath//parentgroupIdcom.mijiu/groupIdartifactIdspringboot-modules-template/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot-modules-template/namedescriptionspringboot-modules-template/descriptionpropertiesjava.version17/java.version/properties!--设置打包方式为pom--packagingpom/packaging!--子模块--modulesmodulecommon/modulemoduleapi/modulemoduleservice/modulemoduledao/modulemoduleweb/module/modules!--依赖的子模块--dependencyManagementdependenciesdependencygroupIdcom.mijiu/groupIdartifactIdcommon/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdcom.mijiu/groupIdartifactIdapi/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdcom.mijiu/groupIdartifactIdservice/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdcom.mijiu/groupIdartifactIddao/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdcom.mijiu/groupIdartifactIdweb/artifactIdversion0.0.1-SNAPSHOT/version/dependency/dependencies/dependencyManagement
/project 4.配置Web模块构建 web模块继承父项目web模块依赖service模块web模块需要spring boot web组件 pom.xml:
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 继承父包 --parentgroupIdcom.mijiu/groupIdartifactIdspringboot-modules-template/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdweb/artifactIdversion0.0.1-SNAPSHOT/versionnameweb/namedescriptionweb/descriptionpropertiesjava.version17/java.version/propertiesdependencies!-- web组件 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- 引入service模块 --dependencygroupIdcom.mijiu/groupIdartifactIdservice/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project5.配置Service模块构建 service模块继承父项目service模块依赖dao模块 pom.xml:
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 继承父包 --parentgroupIdcom.mijiu/groupIdartifactIdspringboot-modules-template/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdservice/artifactIdversion0.0.1-SNAPSHOT/versionnameservice/namedescriptionservice/descriptionpropertiesjava.version17/java.version/propertiesdependencies!-- 引入dao模块 --dependencygroupIdcom.mijiu/groupIdartifactIddao/artifactId/dependency/dependencies/project 6.配置DAO模块构建 dao模块继承父项目dao模块依赖common模块 ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 继承父包 --parentgroupIdcom.mijiu/groupIdartifactIdspringboot-modules-template/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIddao/artifactIdversion0.0.1-SNAPSHOT/versionnamedao/namedescriptiondao/descriptionpropertiesjava.version17/java.version/propertiesdependencies!-- 引入common模块 --dependencygroupIdcom.mijiu/groupIdartifactIdcommon/artifactId/dependency/dependencies/project7.配置API模块构建 api模块继承父项目api模块依赖common模块 ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 继承父包 --parentgroupIdcom.mijiu/groupIdartifactIdspringboot-modules-template/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdapi/artifactIdversion0.0.1-SNAPSHOT/versionnameAPI/namedescriptionAPI/descriptionpropertiesjava.version17/java.version/propertiesdependencies!-- 引入common模块 --dependencygroupIdcom.mijiu/groupIdartifactIdcommon/artifactId/dependency/dependencies/project 8.配置Common模块构建 common模块继承父项目 ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 继承父包 --parentgroupIdcom.mijiu/groupIdartifactIdspringboot-modules-template/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdcommon/artifactIdversion0.0.1-SNAPSHOT/versionnamecommon/namedescriptioncommon/descriptionpropertiesjava.version17/java.version/propertiesdependencies/dependencies/project
9.启动类位置修改
再次强调只有web模块保留启动类和测试类
原位置 修改后 10.编写测试接口 package com.mijiu.web;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class TestController {RequestMapping(/hello)public String hello() {return Hello World!;}
}11.打包测试
在此之前一定保证仅web模块保留启动类和测试类其他模块一律删除。 打包成功 12.启动项目测试接口
在web模块的启动类启动项目 启动成功 测试接口 写在最后
spring boot3多模块项目工程搭建基础搭建到这里就结束了。任何问题评论区或私信讨论欢迎指正。