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

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

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

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

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

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

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

步驟1:創(chuà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父項目 -->
 <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登錄認證相關-->
         <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>
 ?
         <!--對象存儲,用于存儲圖像等非結(jié)構(gòu)化數(shù)據(jù)-->
         <dependency>
             <groupId>io.minio</groupId>
             <artifactId>minio</artifactId>
             <version>${minio.version}</version>
         </dependency>
 ?
         <!--阿里云短信客戶端,用于發(fā)送短信驗證碼-->
         <dependency>
             <groupId>com.aliyun</groupId>
             <artifactId>dysmsapi20170525</artifactId>
             <version>${aliyun.sms.version}</version>
         </dependency>
     </dependencies>
 </dependencyManagement>

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

 <!--包含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插件,用于打包可執(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啟動類

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ū)動-->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

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

因為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 #數(shù)據(jù)庫連接超時時間,默認30秒
      idle-timeout: 500000 #空閑連接存活最大時間,默認600000(10分鐘)
      max-lifetime: 540000 #此屬性控制池中連接的最長生命周期,值0表示無限生命周期,默認1800000即30分鐘
      maximum-pool-size: 12 #連接池最大連接數(shù),默認是10
      minimum-idle: 10 #最小空閑連接數(shù)量
      pool-name: SPHHikariPool # 連接池名稱
      
#用于打印框架生成的sql語句,便于調(diào)試
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

注意:需根據(jù)實際情況修改hostname、port、database、usernamepassword。

步驟3:添加配置類

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

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

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

4、Knife4j配置

步驟1:pom文件配置

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

因為web-app模塊同樣需要 依賴,故在兩個的父工程引入依賴即可

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

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

因為model模塊下的實體類需要配置Knife4j相關注解,故也需引入Knife4j依賴

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

步驟2:添加配置類

后臺管理系統(tǒng)和移動端的接口配置并不相同,所以需各自編寫一個配置類。在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ǒng)API")
                        .version("1.0")
                        .description("后臺管理系統(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("后臺登錄管理").
                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參數(shù)需要根據(jù)實際情況進行配置。

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

相關文章

  • IDEA使用入門小白操作教程

    IDEA使用入門小白操作教程

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

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

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

    Java直接輸出對象變成@.....的問題及解決

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

    MyBatis update標簽詳解

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

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

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

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

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

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

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

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

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

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

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

    Java設計模式之責任鏈模式簡介

    這篇文章主要介紹了Java設計模式之責任鏈模式,需要的朋友可以參考下
    2014-07-07

最新評論

新营市| 惠安县| 涞水县| 武穴市| 安乡县| 金华市| 化德县| 福州市| 乾安县| 佛冈县| 大庆市| 元朗区| 明溪县| 峡江县| 英山县| 信阳市| 维西| 河东区| 武强县| 常山县| 兴仁县| 石柱| 泸定县| 自贡市| 邓州市| 集贤县| 秦皇岛市| 永川市| 郎溪县| 兴宁市| 泌阳县| 宜宾市| 来安县| 盘锦市| 海安县| 肥东县| 乡城县| 武功县| 贵州省| 河津市| 苗栗县|