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注解后边加上包名,以便扫描识别。
到此为止基本的启动功能算是完工。

posted on 2018-05-21 10:56  huohuoL  阅读(470)  评论(0编辑  收藏  举报

导航