快速搭建一个基于springboot + mybatis plus 的多模块的单体架构项目。
1、创建maven子模块
按照如下目录结构创建一个多模块的maven工程。
lease ├── common(公共模块——工具类、公用配置等) │ ├── pom.xml │ └── src ├── model(数据模型——与数据库相对应地实体类) │ ├── pom.xml │ └── src ├── web(web模块) │ ├── pom.xml │ ├── web-admin(后台管理系统web模块——包含mapper、service、controller) │ │ ├── pom.xml │ │ └── src │ └── web-app(移动端web模块——包含mapper、service、controller) │ ├── pom.xml │ └── src └── pom.xml
步骤1:创建项目根模块
<?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.ghm</groupid>
<artifactid>javaprackit</artifactid>
<version>1.0-snapshot</version>
<packaging>pom</packaging>
<!-- 子模块 -->
<modules>
<module>common</module>
<module>model</module>
<module>web</module>
</modules>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
</project>
步骤2:创建common子模块
<?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>
<parent>
<groupid>com.ghm</groupid>
<artifactid>javaprackit</artifactid>
<version>1.0-snapshot</version>
</parent>
<artifactid>common</artifactid>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
</project>
步骤3:创建model子模块
<?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>
<parent>
<groupid>com.ghm</groupid>
<artifactid>javaprackit</artifactid>
<version>1.0-snapshot</version>
</parent>
<artifactid>model</artifactid>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
</project>
步骤4:创建web子模块
<?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>
<parent>
<groupid>com.ghm</groupid>
<artifactid>javaprackit</artifactid>
<version>1.0-snapshot</version>
</parent>
<artifactid>web</artifactid>
<packaging>pom</packaging>
<!-- 子模块 -->
<modules>
<module>admin</module>
</modules>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
<dependencies>
<!-- 引入common模块 -->
<dependency>
<groupid>com.ghm</groupid>
<artifactid>common</artifactid>
<version>1.0-snapshot</version>
</dependency>
</dependencies>
</project>
步骤5:创建web-admin子模块
<?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>
<parent>
<groupid>com.ghm</groupid>
<artifactid>web</artifactid>
<version>1.0-snapshot</version>
</parent>
<artifactid>admin</artifactid>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
</properties>
</project>
2、springboot配置
步骤1:配置pom工程
在父工程的pom.xml文件中增加如下内容:
<!-- 继承spring boot父项目 -->
<parent>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-parent</artifactid>
<version>3.0.5</version>
<relativepath/>
</parent>
<!-- 注意:直接替换pom文件中原有的properties -->
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceencoding>utf-8</project.build.sourceencoding>
<mybatis-plus.version>3.5.3.1</mybatis-plus.version>
<swagger.version>2.9.2</swagger.version>
<jwt.version>0.11.2</jwt.version>
<easycaptcha.version>1.6.2</easycaptcha.version>
<minio.version>8.2.0</minio.version>
<knife4j.version>4.1.0</knife4j.version>
<aliyun.sms.version>2.0.23</aliyun.sms.version>
</properties>
<!--配置dependencymanagement统一管理依赖版本-->
<dependencymanagement>
<dependencies>
<!--mybatis-plus-->
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-boot-starter</artifactid>
<version>${mybatis-plus.version}</version>
</dependency>
<!--knife4j文档-->
<dependency>
<groupid>com.github.xiaoymin</groupid>
<artifactid>knife4j-openapi3-jakarta-spring-boot-starter</artifactid>
<version>${knife4j.version}</version>
</dependency>
<!--jwt登录认证相关-->
<dependency>
<groupid>io.jsonwebtoken</groupid>
<artifactid>jjwt-api</artifactid>
<version>${jwt.version}</version>
</dependency>
<dependency>
<groupid>io.jsonwebtoken</groupid>
<artifactid>jjwt-impl</artifactid>
<scope>runtime</scope>
<version>${jwt.version}</version>
</dependency>
<dependency>
<groupid>io.jsonwebtoken</groupid>
<artifactid>jjwt-jackson</artifactid>
<scope>runtime</scope>
<version>${jwt.version}</version>
</dependency>
<!--图形验证码-->
<dependency>
<groupid>com.github.whvcse</groupid>
<artifactid>easy-captcha</artifactid>
<version>${easycaptcha.version}</version>
</dependency>
<!--对象存储,用于存储图像等非结构化数据-->
<dependency>
<groupid>io.minio</groupid>
<artifactid>minio</artifactid>
<version>${minio.version}</version>
</dependency>
<!--阿里云短信客户端,用于发送短信验证码-->
<dependency>
<groupid>com.aliyun</groupid>
<artifactid>dysmsapi20170525</artifactid>
<version>${aliyun.sms.version}</version>
</dependency>
</dependencies>
</dependencymanagement>
在web模块的pom.xml文件中增加如下内容:
<!--包含spring web相关依赖-->
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-web</artifactid>
</dependency>
<!--包含spring test相关依赖-->
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-test</artifactid>
<scope>test</scope>
</dependency>
<!-- spring boot maven插件,用于打包可执行的jar文件 -->
<build>
<plugins>
<plugin>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-maven-plugin</artifactid>
</plugin>
</plugins>
</build>
步骤2:创建application.yml文件
在web-admin模块的src/main/resources目录下创建application.yml配置文件,内容如下:
server: port: 8080
步骤3: 创建springboot启动类
在web-admin模块下创建com.atguigu.lease.adminwebapplication类,内容如下:
@springbootapplication
public class adminwebapplication {
public static void main(string[] args) {
springapplication.run(adminwebapplication.class, args);
}
}
3、mybatis-plus配置
mybatis-plus为公用工具,故将其配置于common模块。具体配置可参考其官方文档。
步骤1:pom文件配置
在common模块的pom.xml文件中增加如下内容:
<!--mybatis-plus-->
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-boot-starter</artifactid>
</dependency>
<!--mysql驱动-->
<dependency>
<groupid>com.mysql</groupid>
<artifactid>mysql-connector-j</artifactid>
</dependency>
在model模块的pom.xml文件中增加如下内容:
因为model模块下的实体类中需要配置mybatis-plus相关注解,故也需引入mybatis-plus依赖
<!--mybatis-plus-->
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-boot-starter</artifactid>
</dependency>
步骤2:application.yml配置
spring:
datasource:
type: com.zaxxer.hikari.hikaridatasource
url: jdbc:mysql://<hostname>:<port>/<database>?useunicode=true&characterencoding=utf-8&usessl=false&allowpublickeyretrieval=true&servertimezone=gmt%2b8
username: <username>
password: <password>
hikari:
connection-test-query: select 1 # 自动检测连接
connection-timeout: 60000 #数据库连接超时时间,默认30秒
idle-timeout: 500000 #空闲连接存活最大时间,默认600000(10分钟)
max-lifetime: 540000 #此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
maximum-pool-size: 12 #连接池最大连接数,默认是10
minimum-idle: 10 #最小空闲连接数量
pool-name: sphhikaripool # 连接池名称
#用于打印框架生成的sql语句,便于调试
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
注意:需根据实际情况修改hostname、port、database、username、password。
步骤3:添加配置类
在common模块下创建com.atguigu.lease.common.mybatisplus.mybatisplusconfiguration类,内容如下:
@configuration
@mapperscan("com.atguigu.lease.web.*.mapper")
public class mybatisplusconfiguration {
}
注意:@mapperscan()的包路径需要根据实际情况进行修改。
4、knife4j配置
步骤1:pom文件配置
在web模块的pom.xml文件添加如下内容
因为web-app模块同样需要 依赖,故在两个的父工程引入依赖即可
<!-- knife4j -->
<dependency>
<groupid>com.github.xiaoymin</groupid>
<artifactid>knife4j-openapi3-jakarta-spring-boot-starter</artifactid>
</dependency>
在model模块的pom.xml文件添加上述内容
因为model模块下的实体类需要配置knife4j相关注解,故也需引入knife4j依赖
<dependency>
<groupid>com.github.xiaoymin</groupid>
<artifactid>knife4j-openapi3-jakarta-spring-boot-starter</artifactid>
</dependency>
步骤2:添加配置类
后台管理系统和移动端的接口配置并不相同,所以需各自编写一个配置类。在web-admin模块下创建com.atguigu.lease.web.admin.custom.config.knife4jconfiguration类,内容如下:
@configuration
public class knife4jconfiguration {
@bean
public openapi customopenapi() {
return new openapi().info(
new info()
.title("后台管理系统api")
.version("1.0")
.description("后台管理系统api"));
}
@bean
public groupedopenapi systemapi() {
return groupedopenapi.builder().group("系统信息管理").
pathstomatch(
"/admin/system/**"
).
build();
}
@bean
public groupedopenapi loginapi() {
return groupedopenapi.builder().group("后台登录管理").
pathstomatch(
"/admin/login/**",
"/admin/info"
).
build();
}
@bean
public groupedopenapi apartmentapi() {
return groupedopenapi.builder().group("公寓信息管理").
pathstomatch(
"/admin/apartment/**",
"/admin/room/**",
"/admin/label/**",
"/admin/facility/**",
"/admin/fee/**",
"/admin/attr/**",
"/admin/payment/**",
"/admin/region/**",
"/admin/term/**",
"/admin/file/**"
).build();
}
@bean
public groupedopenapi leaseapi() {
return groupedopenapi.builder().group("租赁信息管理").
pathstomatch(
"/admin/appointment/**",
"/admin/agreement/**"
).build();
}
@bean
public groupedopenapi userapi() {
return groupedopenapi.builder().group("平台用户管理").
pathstomatch(
"/admin/user/**"
).build();
}
}
注意:pathstomatch参数需要根据实际情况进行配置。
到此这篇关于springboot单体多模块项目环境搭建的文章就介绍到这了,更多相关springboot单体多模块搭建内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论