zoukankan      html  css  js  c++  java
  • Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版

    Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版

    百度很多博客都不详细,弄了半天才把 Spring Boot 多模块项目构建开发整的差不多,特地重新创建配置,记录一下,也分享给有需要的人

    本篇也会非常详细的介绍涉及的基础知识点,更多都写在注释上了

    先放成功截图:
    (1)项目结构:

    (2)启动:
    在这里插入图片描述
    (3)测试主子模块:

    (4)测试子模块依赖:

    第一步:创建父模块,子模块

    (1)打开创建项目窗口,点击 Create New Project

    在这里插入图片描述

    (2)填写
    在这里插入图片描述

    (3)填写
    在这里插入图片描述

    (4)Maven 自动导入
    在这里插入图片描述

    (5)没有 iml 文件,请重新创建,请看截图:
    在这里插入图片描述

    (6)在父项目上,右键新建模块
    在这里插入图片描述

    (7)这里用 xpwi-main
    在这里插入图片描述
    (8)填写

    (提示:这个名字建议个上面的一致,不然项目名和文件夹名不一致哈)
    在这里插入图片描述

    (9)依次类推,创建自己需要的子模块
    (10)然后去创建包,示例:

    第二步:父 pom.xml 配置

    请查看详细注释,根据自己的项目修改

    注意:

    • 子模块那个是不需要配置的,由创建时自动生成
    • dependencyManagement 也在注释上讲解了
    <?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>
    
        <!--基本信息-->
        <description>Spring Boot 多模块构建示例</description>
        <groupId>com.xpwi</groupId>
        <artifactId>first-springboot</artifactId>
        <!--父 pom 的 packing 必须为 pom,请核查-->
        <packaging>pom</packaging>
        <version>1.0.0</version>
    
        <!--指定整个项目的父项目-->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.5.RELEASE</version>
        </parent>
    
        <!--模块:这里声明多个子模块 -->
        <!--注意,这个不用手动自己去写,因为创建的时候是会自动生成的-->
        <modules>
            <module>xpwi-test</module>
            <module>xpwi-main</module>
            <module>xpwi-login</module>
        </modules>
    
        <!--属性变量配置-->
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <!--加载依赖管理-->
        <!--注意:如果使用dependencyManagement,只是对版本进行管理,不会直接引入jar  -->
        <!--是为了在这里配置版本,为了让子模块pom或者本pom的直接dependencies不单独配置版本 -->
        <!--如果没有版本,会先到这里找版本号,以免版本冲突  -->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                    <version>2.0.5.RELEASE</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <!--公共模块加载,非公共模块请一般放在子pom进行加载-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <!--插件-->
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.0.1.RELEASE</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    第三步:子 pom.xml 配置

    请查看详细注释,根据自己的项目修改

    注意:

    • 父模块依赖
    • 子模块与子模块依赖
    <?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">
        <parent>
            <artifactId>first-springboot</artifactId>
            <groupId>com.xpwi</groupId>
            <version>1.0.0</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>xpwi-main</artifactId>
        <dependencies>
    
            <!--这个已经移动到父 pom 了-->
            <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-web</artifactId>-->
            <!--</dependency>-->
    
            <!--现在是去加载自己创建的模块-->
            <!--就是加载子模块对子模块的依赖-->
            <dependency>
                <groupId>com.xpwi</groupId>
                <artifactId>xpwi-test</artifactId>
                <version>1.0.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.xpwi</groupId>
                <artifactId>xpwi-login</artifactId>
                <version>1.0.0</version>
            </dependency>
    
        </dependencies>
    
    
    </project>
    

    第四步:创建启动类,本模块测试类

    (1)创建两个文件

    (2)启动类 App.java 源代码:

    package com.xpwi.main;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Date;
    
    /**
     * 描述:Spring Boot 多模块测试项目
     * @author Xiao Pengwei
     * @since  2019-03-25
     */
    
    @SpringBootApplication
    @RestController
    //扫描 main,test 模块中的下的所有包
    //在 pom 加载子模块依赖才可以骚包
    @ComponentScan({"com.xpwi.main","com.xpwi.test"})
    public class App {
    
        public static void main(String[] args) {
            //启动 Web 容器
            SpringApplication.run(App.class, args);
            System.out.println("[启动成功]"+new Date());
        }
    }
    

    (3)MainController.java 文件源代码:

    package com.xpwi.main.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * 描述:本模块测试类
     * @author Xiao Pengwei
     * @since  2019-03-25
     */
    
    @RestController
    @RequestMapping("/main")
    public class MainController {
    
        //请求映射,当请求 /main/test 时执行该方法
        @RequestMapping("/test")
        public String home() {
            return "Hello Main!";
        }
    }
    
    

    第五步:子模块依赖测试类

    (1)结构:

    (2)TestController 文件源代码:

    package com.xpwi.test.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * 描述:子模块依赖测试
     * @author Xiao Pengwei
     * @since  2019-03-25
     */
    
    @RestController
    @RequestMapping("test")
    public class TestController {
    
        //请求映射,当请求 /home 时执行该方法
        @RequestMapping("/test")
        public String home() {
            return "Hello Test!";
        }
    }
    

    第六步:启动与测试

    (1)启动:
    在这里插入图片描述
    (2)测试主子模块:

    (3)测试子模块依赖:

    自定义 banner

    一键加技术朋友群

  • 相关阅读:
    Review Python装饰器
    Python自动化开发三元运算 列表解析 生成器表达式
    Python自动化开发函数02
    Python自动化开发函数03
    Python自动化开发文件
    ELK02ELK收集Linux系统平台应用系统日志
    ELK01Elasticsearch
    html5调用摄像头并拍照
    Docker 安装 PostgreSQL
    《TensorFlow+Keras自然语言处理实战》图书介绍
  • 原文地址:https://www.cnblogs.com/xpwi/p/10593486.html
Copyright © 2011-2022 走看看