spring2.2.0.RELEASE 文档学习-------Getting Started入门

1. Introducing Spring Boot

spring boot使您可以轻松地创建可以运行的独立的、生产级的基于spring的应用程序。我们对spring平台和第三方库有一个自以为是的看法,这样您就可以从最少的麻烦开始了。大多数Spring启动应用程序只需要很少的Spring配置。

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

我们的主要目标是:

为所有spring开发提供一个更快、更容易获得的入门体验。

开箱即用,但要在需求开始偏离默认值时迅速离开。

提供一系列对大型项目类通用的非功能性特性(如嵌入式服务器、安全性、度量、运行状况检查和外部化配置)。

完全没有代码生成,也不需要xml配置

2. System Requirements

spring boot 2.2.0.release需要java 8,并且兼容java 13(包括java13)。spring framework 5.2.0.release或更高版本也是必需的。

为以下生成工具提供显式生成支持:

Build ToolVersion

Maven

3.3+

Gradle

5.x (4.10 is also supported but in a deprecated form)

Spring Boot支持以下嵌入式Servlet容器:

NameServlet Version

Tomcat 9.0

4.0

Jetty 9.4

3.1

Undertow 2.0

4.0

 您还可以将spring引导应用程序部署到任何与servlet 3.1+兼容的容器中。

3. Installing Spring Boot

spring boot可以与“经典”java开发工具一起使用,也可以作为命令行工具安装。不管怎样,您都需要JavaSDKv1.8或更高版本。开始之前,应使用以下命令检查当前的Java安装:

$ java -version

3.1Maven Installation

Spring Boot与ApacheMaven 3.3或更高版本兼容。如果尚未安装maven,可以按照maven.apache.org上的说明进行操作。

Spring引导依赖项使用org.springframework.boot groupid。通常,你的maven pom文件继承自spring-boot-starter-parent,并向一个或多个“starters”声明依赖关系。spring boot还提供了一个可选的maven插件来创建可执行jar。

下面是一个例子

<?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 https://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.2.0.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>

3.3. Upgrading from an Earlier Version of Spring Boot

如果要从1.x版本的Spring Boot进行升级,请查看Project Wiki上提供详细升级说明的“迁移指南”。还可以查看“发行说明”以获取每个发行版的“新的和值得注意的”功能列表。

升级到新功能版本时,某些属性可能已重命名或删除。spring boot提供了一种在启动时分析应用程序环境和打印诊断信息的方法,但也可以在运行时为您临时迁移属性。要启用该功能,请将以下依赖项添加到项目中:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>

4. Developing Your First Spring Boot Application

spring.io网站包含许多使用spring boot的“入门”指南。如果你需要解决一个特定的问题,先检查一下。

您可以通过转到start.spring.io并从依赖项搜索器中选择“web”启动程序来简化以下步骤。这样做会生成一个新的项目结构,以便您可以立即开始编码。有关更多详细信息,请查看spring初始化https://docs.spring.io/initializr/docs/current/reference/html//#user-guide文档。

4.1. Creating the 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 https://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.2.0.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->

</project>

4.2. Adding Classpath Dependencies

spring boot提供了许多“Starters”,允许您将jar添加到类路径中。我们的烟雾测试应用程序使用pom父部分中的spring-boot-starter-parent部分。spring-boot-starter-parent程序是一个特殊的启动程序,它提供了有用的maven默认值。它还提供了一个依赖项管理部分,以便您可以省略依赖项的版本标记。

其他“Starters”提供在开发特定类型的应用程序时可能需要的依赖项。因为我们正在开发一个web应用程序,所以我们添加了一个spring-boot-starter-web依赖项。在此之前,我们可以通过运行以下命令查看当前的情况:

$ mvn dependency:tree

[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

mvn dependency:tree命令打印项目依赖项的树表示。您可以看到spring boot starter父级本身不提供依赖项。

4.3. Writing the Code

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) {
        SpringApplication.run(Example.class, args);
    }

}

4.3.1. The @RestController and @RequestMapping Annotations

示例类的第一个注解是@restcontroller。这被称为原型注解。它为阅读代码的人和spring提供了类扮演特定角色的提示。在本例中,我们的类是web@controller,因此spring在处理传入的web请求时会考虑它。

@RequestMapping 注释提供“路由”信息。它告诉spring任何带有/path的http请求都应该映射到home方法。@restcontroller注释告诉spring将结果字符串直接呈现回调用方。

@RestController 和@RequestMapping 注解是spring mvc注解(它们不是spring boot特有的)。有关更多详细信息,请参见spring参考文档中的mvc部分

4.3.2. The @EnableAutoConfiguration Annotation

这个注释告诉spring boot根据您添加的jar依赖项“猜测”您想要如何配置spring。由于spring-boot-starter-web添加了tomcat和spring mvc,因此自动配置假定您正在开发一个web应用程序并相应地设置spring。

4.3.3. The “main” Method

我们的main方法通过调用run委托给spring boot的springapplication类。spring application引导我们的应用程序,启动spring,然后启动自动配置的tomcat web服务器。我们需要将example.class作为参数传递给run方法,以告诉springapplication哪个是主spring组件。args数组也被传递以公开任何命令行参数。

4.4. Running the Example

此时,您的应用程序应该可以工作。由于使用了spring boot starter父pom,因此有一个有用的运行目标,可以用来启动应用程序。键入mvn spring boot:从根项目目录运行以启动应用程序。您将看到类似于以下内容的输出

$ mvn spring-boot:run

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.2.0.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)

如果你打开浏览器localhost:8080你就会看到

Hello World!

4.5. Creating an Executable Jar

我们通过创建一个完全独立的可执行jar文件来完成我们的示例,该文件可以在生产环境中运行。可执行jar是包含编译类以及代码需要运行的所有jar依赖项的归档文件。

要创建一个可执行的jar,我们需要将spring boot maven插件添加到pom.xml中。为此,请在“依赖项”部分下面插入以下行

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

 spring-boot-starter-parent pom包含绑定重新打包目标的<executions>配置。如果不使用父pom,则需要自己声明此配置。有关详细信息,请参阅插件文档https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/maven-plugin//usage.html

 

$ 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.2.0.RELEASE:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

 如果您在target 目录中查找,应该会看到myproject-0.0.1-snapshot.jar。文件大小应该在10 MB左右。如果你想偷看里面,可以使用jar tvf,如下所示: 

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

您还应该在目标目录中看到一个更小的文件myproject-0.0.1-snapshot.jar.original。这是maven在spring boot重新打包之前创建的原始jar文件。

要运行该应用程序,请使用java-jar命令,如下所示:

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值