美文网首页我爱编程
Spring Boot 2.0 系列(一):快速开始

Spring Boot 2.0 系列(一):快速开始

作者: ViYoung | 来源:发表于2018-05-27 18:40 被阅读0次

    写在前面

    1. 介绍SpringBoot

    Spring Boot可以使我们轻松地创建独立的、生产级的基于Spring的应用程序,由于整合了一些对Spring和第三方库的配置,我们可以快速开始一个应用程序。大多数Spring Boot应用程序都需要很少的Spring配置。

    我们可以使用Spring Boot来创建Java应用程序,这些应用程序可以通过使用 java -jar 或更传统的war部署来启动。Spring Boot还提供了一个运行“spring脚本”的命令行工具。

    Spring Boot 为我们都做了什么:

    • 为所有Spring开发人员提供一种快速而广泛的入门体验。

    • 由于整合了一些对Spring和第三方库的配置解决了深受XML配置困扰的Spring开发人员的痛点

    • 提供一系列非功能特性,这些特性在大型项目中是常见的(例如嵌入式服务器、安全、度量、健康检查和外部化配置)。

    2.系统环境需求

    • Java 8 或 9

    • Spring 5.0.6 RELEASE 或 以上

    • 构建工具

      • Maven 3.2 +
      • Gradle 4
    • Spring Boot支持以下servlet容器:

      • Tomcat 8.5
      • Jetty 9.4
      • Undertow 1.4

    3. 构建项目的方式

    1.基于Maven的构建
    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>
    
        <groupId>com.example</groupId>
        <artifactId>myproject</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <!-- Inherit defaults from Spring Boot -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.2.RELEASE</version>
        </parent>
    
        <!-- Add typical dependencies for a web application -->
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    
        <!-- Package as an executable jar -->
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    2.基于Gradle的构建
    bulid.gradle 内容如下:

    plugins {
        id 'org.springframework.boot' version '2.0.2.RELEASE'
        id 'java'
    }
    
    jar {
        baseName = 'myproject'
        version =  '0.0.1-SNAPSHOT'
    }
    
    repositories {
        jcenter()
    }
    
    dependencies {
        compile("org.springframework.boot:spring-boot-starter-web")
        testCompile("org.springframework.boot:spring-boot-starter-test")
    }
    

    4.开发Spring Boot 的Hello World 项目(使用maven构建工具)

    </br>

    第一步: 创建pom文件

    <?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.example</groupId>
        <artifactId>myproject</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.2.RELEASE</version>
        </parent>
    
        <!-- Additional lines to be added here... -->
    
    </project>
    

    第二步:添加依赖

    Spring Boot提供了许多“starter”,可以让您将jar添加到classpath 中。上文已经在POM的父部分使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特殊的“starter”,它提供有用的Maven默认值。它还提供了一个依赖管理部分,这样我们就就可以为关联的依赖项省略版本标记。
    其他"starter"提供了在开发特定类型的应用程序时可能需要的依赖项。由于我们正在开发一个web应用程序,所以我们添加了一个spring-boot-starter-web依赖项。在此之前,我们可以通过运行以下命令查看当前所拥有的内容。

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

    第三步:编写代码

    要完成我们的应用程序,我们需要创建一个Java文件,Java文件包含以下代码:

    import org.springframework.boot.*;
    import org.springframework.boot.autoconfigure.*;
    import org.springframework.web.bind.annotation.*;
    
    @RestController
    @EnableAutoConfiguration
    public class Example {
    
        @RequestMapping("/")
        String home() {
            return "Hello World!";
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Example.class, args);
        }
    
    }
    

    注:

    在我们的示例类上的第一个注释是@RestController。这被称为构造型注释。它为阅读代码的人们提供了一些提示,并且为Spring提供了一个特定的角色。在本例中,我们的类是一个web @Controller,所以Spring在处理传入web请求时考虑它。@RequestMapping注释提供路由信息。它告诉Spring,任何带有/ path的HTTP请求都应该映射到home方法。@RestController注释告诉Spring将生成的字符串直接呈现给调用者。

    第二个类级别注释是@EnableAutoConfiguration。这个注释告诉Spring Boot基于您添加的jar依赖项“猜测”您想如何配置Spring,。因为Spring-boot-starter-web添加了Tomcat和Spring MVC,所以自动配置假设您正在开发一个web应用程序,并相应地设置Spring。

    我们的应用程序的最后一部分是主方法。这只是遵循应用程序入口点的Java约定的标准方法。通过调用run,我们的main方法委托给Spring Boot的SpringApplication类。SpringApplication引导我们的应用程序启动Spring,而Spring又启动了自动配置的Tomcat web服务器。我们需要通过例子。类作为运行方法的参数,以告诉SpringApplication是主Spring组件。args数组也被传递,以公开任何命令行参数。

    第四步:运行程序:

    运行main方法,或者在根目录运行 mvn spring-boot: run命令。

    $ mvn spring-boot:run
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::  (v2.0.2.RELEASE)
    ....... . . .
    ....... . . . (log output here)
    ....... . . .
    ........ Started Example in 2.222 seconds (JVM running for 6.514)
    

    打开浏览器,输入localhost:8080,你可以看到

    Hello World!
    

    第五步:创建可执行的jar

    将下列代码添加到pom.xml文件中:

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

    保存文件,并在命令行输入maven package,可以看到:

    $ mvn package
    
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building myproject 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] .... ..
    [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
    [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
    [INFO]
    [INFO] --- spring-boot-maven-plugin:2.0.2.RELEASE:repackage (default) @ myproject ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    

    这时你会发现target目录下多了一个名为myprojectname-0.0.1-SNAPSHOT.jar的文件,文件大概10MB,如果你想查看文件的详细内容,可以使用

    $ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
    

    如果你想运行,可以使用 java -jar,如下:

    $ java -jar target/myproject-0.0.1-SNAPSHOT.jar
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::  (v2.0.2.RELEASE)
    ....... . . .
    ....... . . . (log output here)
    ....... . . .
    ........ Started Example in 2.536 seconds (JVM running for 2.864)
    

    若知后事如何,且听下回分解~

    相关文章

      网友评论

        本文标题:Spring Boot 2.0 系列(一):快速开始

        本文链接:https://www.haomeiwen.com/subject/ngqijftx.html