Spring Boot (三) Maven項目SpringBoot搭建

之前寫過一個簡單化的SpringBoot搭建流程,見鏈接:
簡化springBoot,本次則主要講述Maven框架下的SpringBoot搭建流程,首先我們要把Maven需要的多層結構搭建出來,在此我總共弄了四層,分別是rpc(遠程調用),utils(工具包),service(服務),web(對接),通過開發工具可以搭建,在此我則是通過之前講述的命令的方式完成了整個流程,搭建流程見鏈接:Maven多模塊命令搭建
我的簡單搭建命令如下:

mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-manager -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-manager-utils -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-manager-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-manager-rpc -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:generate -DgroupId=me.gacl -DartifactId=exam-manager-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

詳情見上邊鏈接,命令執行玩,我們需要手動造就層級之間的pom連接。(具體最後見下文pom文件)。
parent需SpringBoot配置,官網只是提供了兩個:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

當然我們可以不適用spring-boot-starter-parent,可以使用什麼添加什麼,比如應用到的:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>

等等……。
層層之間依賴關係:
依賴
最終pom文件如下:
父類pom:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>exam-manager-web</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.exam.api</groupId>
            <artifactId>exam-manager-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>exam-manager</finalName>
    </build>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
    </parent>
</project>

exam-manager-service pom文件:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.exam.api</groupId>
        <artifactId>exam-manager</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>exam-manager-service</artifactId>
</project>

exam-manager-rpc pom文件:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.exam.api</groupId>
        <artifactId>exam-manager</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.exam.api</groupId>
            <artifactId>exam-manager-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <artifactId>exam-manager-rpc</artifactId>
</project>

exam-manager-web pom文件:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>exam-manager-web</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.exam.api</groupId>
            <artifactId>exam-manager-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <finalName>exam-manager</finalName>
    </build>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
    </parent>
</project>

exam-manager-utils pom文件:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.exam.api</groupId>
    <artifactId>exam-manager</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>exam-manager-utils</artifactId>
</project>

pom文件配置完成,接下來我們則可以通過springBoot實現RESTful API,在此實現的過程和spring MVC應用一樣,只不過實現的過程需要的配置並不需要spring MVC那麼多。測試Controller類如下:

@RestController
public class examBaseController {

    @RequestMapping("/Hello")
    public String hello(){
        return "hello,nice to meet you";
    }
}

測試類創建完,我們則需要想辦法去啓動運行一下,對於SpringBoot而言,有一個專門的註解則可以完成啓動功能的重大任務:

@SpringBootApplication
public class Bootstrap {
    public static void main(String[] args) {
        SpringApplication.run(Bootstrap.class, args);
    }
}

@SpringBootApplication註解,這是整個Spring Boot的核心註解,它的目的就是開啓Spring Boot的自動配置,代碼完成之後,直接main方法則可以啓動SpringBoot整個項目。
目前我創建的Maven項目架構如下:
frame
假設再啓動過程中,又出現瞭如下錯誤:
error
這次我們並沒有空建類文件,但是包名有點太過於複雜,所以識別不出來,我們可以直接在@SpringBootApplication註解後邊加上包名,以便掃描識別。
到此爲止基本的啓動功能算是完工。

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