最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot單體多模塊項(xiàng)目環(huán)境搭建

 更新時(shí)間:2026年02月12日 10:57:42   作者:我怎么想不到  
本文主要介紹了SpringBoot單體多模塊項(xiàng)目環(huán)境搭建,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

快速搭建一個(gè)基于SpringBoot + Mybatis Plus 的多模塊的單體架構(gòu)項(xiàng)目。

1、創(chuàng)建Maven子模塊

按照如下目錄結(jié)構(gòu)創(chuàng)建一個(gè)多模塊的Maven工程。

 lease
 ├── common(公共模塊——工具類、公用配置等)
 │   ├── pom.xml
 │   └── src
 ├── model(數(shù)據(jù)模型——與數(shù)據(jù)庫(kù)相對(duì)應(yīng)地實(shí)體類)
 │   ├── pom.xml
 │   └── src
 ├── web(Web模塊)
 │   ├── pom.xml
 │   ├── web-admin(后臺(tái)管理系統(tǒng)Web模塊——包含mapper、service、controller)
 │   │   ├── pom.xml
 │   │   └── src
 │   └── web-app(移動(dòng)端Web模塊——包含mapper、service、controller)
 │       ├── pom.xml
 │       └── src
 └── pom.xml

步驟1:創(chuàng)建項(xiàng)目根模塊

 <?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:創(chuàng)建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:創(chuàng)建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:創(chuàng)建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:創(chuàng)建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文件中增加如下內(nèi)容:

 <!-- 繼承Spring Boot父項(xiàng)目 -->
 <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統(tǒng)一管理依賴版本-->
 <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登錄認(rèn)證相關(guān)-->
         <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>
 ?
         <!--圖形驗(yàn)證碼-->
         <dependency>
             <groupId>com.github.whvcse</groupId>
             <artifactId>easy-captcha</artifactId>
             <version>${easycaptcha.version}</version>
         </dependency>
 ?
         <!--對(duì)象存儲(chǔ),用于存儲(chǔ)圖像等非結(jié)構(gòu)化數(shù)據(jù)-->
         <dependency>
             <groupId>io.minio</groupId>
             <artifactId>minio</artifactId>
             <version>${minio.version}</version>
         </dependency>
 ?
         <!--阿里云短信客戶端,用于發(fā)送短信驗(yàn)證碼-->
         <dependency>
             <groupId>com.aliyun</groupId>
             <artifactId>dysmsapi20170525</artifactId>
             <version>${aliyun.sms.version}</version>
         </dependency>
     </dependencies>
 </dependencyManagement>

web模塊的pom.xml文件中增加如下內(nèi)容:

 <!--包含spring web相關(guān)依賴-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 ?
 <!--包含spring test相關(guān)依賴-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
 </dependency>
 ?
 <!-- Spring Boot Maven插件,用于打包可執(zhí)行的JAR文件 -->
 <build>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
     </plugins>
 </build>

步驟2:創(chuàng)建application.yml文件

web-admin模塊src/main/resources目錄下創(chuàng)建application.yml配置文件,內(nèi)容如下:

server:
  port: 8080

步驟3: 創(chuàng)建SpringBoot啟動(dòng)類

web-admin模塊下創(chuàng)建com.atguigu.lease.AdminWebApplication類,內(nèi)容如下:

@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文件中增加如下內(nèi)容:

<!--mybatis-plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>

<!--mysql驅(qū)動(dòng)-->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

model模塊的pom.xml文件中增加如下內(nèi)容:

因?yàn)?strong>model模塊下的實(shí)體類中需要配置Mybatis-Plus相關(guān)注解,故也需引入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 # 自動(dòng)檢測(cè)連接
      connection-timeout: 60000 #數(shù)據(jù)庫(kù)連接超時(shí)時(shí)間,默認(rèn)30秒
      idle-timeout: 500000 #空閑連接存活最大時(shí)間,默認(rèn)600000(10分鐘)
      max-lifetime: 540000 #此屬性控制池中連接的最長(zhǎng)生命周期,值0表示無(wú)限生命周期,默認(rèn)1800000即30分鐘
      maximum-pool-size: 12 #連接池最大連接數(shù),默認(rèn)是10
      minimum-idle: 10 #最小空閑連接數(shù)量
      pool-name: SPHHikariPool # 連接池名稱
      
#用于打印框架生成的sql語(yǔ)句,便于調(diào)試
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

注意:需根據(jù)實(shí)際情況修改hostname、port、databaseusername、password。

步驟3:添加配置類

common模塊下創(chuàng)建com.atguigu.lease.common.mybatisplus.MybatisPlusConfiguration類,內(nèi)容如下:

@Configuration
@MapperScan("com.atguigu.lease.web.*.mapper")
public class MybatisPlusConfiguration {
  
}

注意@MapperScan()的包路徑需要根據(jù)實(shí)際情況進(jìn)行修改。

4、Knife4j配置

步驟1:pom文件配置

web模塊的pom.xml文件添加如下內(nèi)容

因?yàn)?strong>web-app模塊同樣需要 依賴,故在兩個(gè)的父工程引入依賴即可

<!-- knife4j -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
</dependency>

model模塊的pom.xml文件添加上述內(nèi)容

因?yàn)?strong>model模塊下的實(shí)體類需要配置Knife4j相關(guān)注解,故也需引入Knife4j依賴

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
</dependency>

步驟2:添加配置類

后臺(tái)管理系統(tǒng)和移動(dòng)端的接口配置并不相同,所以需各自編寫(xiě)一個(gè)配置類。在web-admin模塊下創(chuàng)建com.atguigu.lease.web.admin.custom.config.Knife4jConfiguration類,內(nèi)容如下:

@Configuration
public class Knife4jConfiguration {

    @Bean
    public OpenAPI customOpenAPI() {

        return new OpenAPI().info(
                new Info()
                        .title("后臺(tái)管理系統(tǒng)API")
                        .version("1.0")
                        .description("后臺(tái)管理系統(tǒng)API"));
    }
    
    @Bean
    public GroupedOpenApi systemAPI() {

        return GroupedOpenApi.builder().group("系統(tǒng)信息管理").
                pathsToMatch(
                        "/admin/system/**"
                ).
                build();
    }

    @Bean
    public GroupedOpenApi loginAPI() {

        return GroupedOpenApi.builder().group("后臺(tái)登錄管理").
                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("平臺(tái)用戶管理").
                pathsToMatch(
                        "/admin/user/**"
                ).build();
    }
}

注意pathsToMatch參數(shù)需要根據(jù)實(shí)際情況進(jìn)行配置。

到此這篇關(guān)于SpringBoot單體多模塊項(xiàng)目環(huán)境搭建的文章就介紹到這了,更多相關(guān)SpringBoot單體多模塊搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA使用入門(mén)小白操作教程

    IDEA使用入門(mén)小白操作教程

    IntelliJ IDEA,就是Java語(yǔ)言開(kāi)發(fā)工具 (IDE) 功能與Eclipse同類!本文通過(guò)圖文并茂的形式給大家介紹IntelliJ IDEA使用入門(mén)教程,非常適合新手小白操作,感興趣的朋友一起看看吧
    2020-10-10
  • Java去掉小數(shù)點(diǎn)后面無(wú)效0的方案與建議

    Java去掉小數(shù)點(diǎn)后面無(wú)效0的方案與建議

    當(dāng)前小數(shù)點(diǎn)后面的位數(shù)過(guò)多的時(shí)候,多余的0沒(méi)有實(shí)際意義,下面這篇文章主要給大家介紹了關(guān)于Java去掉小數(shù)點(diǎn)后面無(wú)效0的方案與建議,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Java直接輸出對(duì)象變成@.....的問(wèn)題及解決

    Java直接輸出對(duì)象變成@.....的問(wèn)題及解決

    這篇文章主要介紹了Java直接輸出對(duì)象變成@.....的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • MyBatis update標(biāo)簽詳解

    MyBatis update標(biāo)簽詳解

    這篇文章主要介紹了MyBatis update標(biāo)簽,使用 Map 傳遞參數(shù)會(huì)導(dǎo)致業(yè)務(wù)可讀性的喪失,繼而導(dǎo)致后續(xù)擴(kuò)展和維護(hù)的困難,所以在實(shí)際應(yīng)用中我們應(yīng)該果斷廢棄該方式,需要的朋友可以參考下
    2023-10-10
  • java不依賴后綴名判斷上傳文件的類型的兩種方法

    java不依賴后綴名判斷上傳文件的類型的兩種方法

    在Java中,判斷上傳文件的類型而不依賴文件后綴名,可以通過(guò)分析文件的內(nèi)容特征來(lái)實(shí)現(xiàn),以下是兩種常用方法,大家可以根據(jù)自己的需求參考
    2025-10-10
  • java -jar example.jar 產(chǎn)生的日志輸出到指定文件的方法

    java -jar example.jar 產(chǎn)生的日志輸出到指定文件的方法

    這篇文章給大家介紹java -jar example.jar 產(chǎn)生的日志輸出到指定文件的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2025-08-08
  • Java在長(zhǎng)字符串中查找短字符串的實(shí)現(xiàn)多種方法

    Java在長(zhǎng)字符串中查找短字符串的實(shí)現(xiàn)多種方法

    這篇文章主要介紹了Java在長(zhǎng)字符串中查找短字符串的實(shí)現(xiàn)多種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java的動(dòng)態(tài)代理模式之Cglib代理詳解

    Java的動(dòng)態(tài)代理模式之Cglib代理詳解

    這篇文章主要介紹了Java的動(dòng)態(tài)代理模式之Cglib代理詳解,Cglib代理也叫作?子類代理,它是在內(nèi)存中構(gòu)建一個(gè)子類對(duì)象從而實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象功能擴(kuò)展,?有些書(shū)也將Cglib代理歸屬到動(dòng)態(tài)代理,需要的朋友可以參考下
    2023-11-11
  • Java swing五子棋的實(shí)現(xiàn)方法

    Java swing五子棋的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Java swing五子棋的實(shí)現(xiàn)方法,Java開(kāi)發(fā)圖形界面程序五子棋的實(shí)現(xiàn)方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java設(shè)計(jì)模式之責(zé)任鏈模式簡(jiǎn)介

    Java設(shè)計(jì)模式之責(zé)任鏈模式簡(jiǎn)介

    這篇文章主要介紹了Java設(shè)計(jì)模式之責(zé)任鏈模式,需要的朋友可以參考下
    2014-07-07

最新評(píng)論

吐鲁番市| 涞水县| 澄城县| 杭州市| 公安县| 定日县| 西吉县| 大荔县| 彭山县| 嘉禾县| 平和县| 巴林左旗| 博罗县| 孝感市| 潮州市| 余江县| 克山县| 杭锦后旗| 乌鲁木齐县| 鄂温| 南宫市| 定安县| 杨浦区| 仁寿县| 泰兴市| 南郑县| 张家港市| 历史| 远安县| 都安| 阳谷县| 镇原县| 昭觉县| 滦南县| 河南省| 汉中市| 香河县| 贵溪市| 咸宁市| 克拉玛依市| 都昌县|