java入門017~springboot創建多Modle多模塊的java項目

我們在開發過程中,一個項目越來越龐大,再加上多個程序員同時開發一個項目,如果只有一個moudle的話,勢必會造成很多代碼衝突,所以今天來教大家如何實現一個多moudle(多模塊)的springboot項目

本節知識點
1,springboot主項目的創建
2,springboot子項目的創建
3,springboot子項目間的相互調用
4,springboot多moudle項目的運行

一,創建主項目(父項目)

1,新建項目

2,創建springboot項目

3,包名要定義或者保持默認,項目名也可以自行修改,其餘保持默認,然後點next下一步

4,使用springboot最新版本2.1.6,然後點擊next

5,定義所在目錄文件,點擊finish

6,到這裏父項目就創建成功了

7,可以把下面紅框裏5個不用的文件刪除(也可以不用刪)

二,創建子moudle(子項目)


創建子moudle和上面創建父項目步驟基本一致,有下面需要注意的點。
1,包名要和父項目保持一致。

2,子moudle要用到web依賴

3,子項目的目錄一定要在父項目的目錄裏

4,創建好的子moudle如下

三,同樣的方式,再創建一個moudle2

四,改造父pom.xml文件

1,父項目的pom.xml文件做如下改造,刪除無用配置

2,設置打包爲爲pom

五,子項目pom.xml改造

moudle1和moudle2的 都要設置爲jar

六,把moudle2的入口application刪除,只保留moudle1的即可。


刪除後,項目結構如下

七,創建測試controller

在moudle1和moudle2裏分別創建controller類

moudle1的Controller類代碼如下

@RestController
public class Controller {
    @GetMapping("/hello1")
    public String hello1(){
        return "我是moudle1";
    }
}

moudle2的Controller2類代碼如下

@RestController
public class Controller2 {
    @GetMapping("/hello2")
    public String hello1(){
        return "我是moudle2";
    }
}

八,啓動項目


項目啓動成功

訪問hello1可以看到返回moudle1定義的信息

訪問hello2缺報404錯誤

出現這個錯誤的原因,是因爲moudle2裏的controller2沒有被註冊進項目,所以我們需要添加如下代碼。

@ComponentScan({“com.qcl”}) 就是掃描我們com.qcl包下的所有代碼,並把這些代碼註冊到項目。加完這段代碼,我們再重啓項目。
就可以通過hello2成功訪問到moudle2的信息了。

到這裏我們就成功的創建了多moudle的springboot項目了。

還有一點,需要在父項目的pom.xml把我們的兩個子模塊配置進去,代碼如下

下面我把父項目的子項目的pom.xml文件完整的貼出來給大家。

1,父項目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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qcl</groupId>
    <artifactId>moudles</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>moudles</name>
    <packaging>pom</packaging>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <modules>
        <module>moudle1</module>
        <module>moudle2</module>
    </modules>

</project>

2,子項目moudle1的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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qcl</groupId>
    <artifactId>moudle1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>moudle1</name>
    <packaging>jar</packaging>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 在moudle1中引入moudle2依賴       -->
        <dependency>
            <groupId>com.qcl</groupId>
            <artifactId>moudle2</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3,子項目moudle2的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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.qcl</groupId>
    <artifactId>moudle2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>moudle2</name>
    <packaging>jar</packaging>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

源碼:

https://github.com/qiushi123/moudles

視頻講解

https://edu.csdn.net/course/detail/23443

往期回顧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章