我爱编程

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

2018-05-27  本文已影响0人  ViYoung

写在前面

1. 介绍SpringBoot

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

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

Spring Boot 为我们都做了什么:

2.系统环境需求

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)

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

上一篇下一篇

猜你喜欢

热点阅读