部署你的第一个Spring Boot 应用

翻译自Spring Boot 1.5.7 手册,我把一些废话都去了~

让我们来构建一个”Hello World!” 式的Java Web 应用来说明 Spring boot 的一些关键特性。该项目使用 Maven 来构建。

start.spring.io/ 上,你可以帮快速地创建一个 Spring Boot 项目。

开始前,请确认你的开发环境中 jdk 1.7+ ,maven 3.2+ 已正确配置。

该例子不使用IDE,而是用文本编辑器……

创建 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>1.5.7.RELEASE</version>
    </parent>

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

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

写代码

Example.java:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
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 和 @RequestMapping 注解

Example 类的第一个注解是 @RestController。它为人们阅读代码提供了一些提示,对于Spring来说,这个类具有特定的作用。在这个例子中,在处理Web请求时,Spring会尝试去调用这个类。

@RequestMapping 注解提供一个 “路径”信息。它告诉Spring任何对于 “/” 的HTTP请求都会由 home 方法来处理。@RestController 注释告诉Spring将生成的字符串直接返回给调用者。

@RestController和@RequestMapping注释是Spring MVC注释(它们不是 Spring boot 特定的)。 有关更多详细信息,请参阅Spring参考文档中的MVC部分。

@EnableAutoConfiguration 注解

第二个类级别的注解是 @EnableAutoConfiguration。这个注释告诉Spring Boot根据你添加的jar依赖关系来“猜”你将如何配置Spring。由于 spring-boot-starter-web 添加了 Tomcat 和 Spring MVC,自动配置将假定您正在开发Web应用程序并相应地设置Spring。

Starter(启动器) 和 自动配置
自动配置旨在与“Starter”配合使用,但这两个概念并不直接相关。 您可以自由选择启动器之外的jar依赖项,Spring Boot仍然会自动配置您的应用程序。

main 方法

我们的应用程序的最后一部分是 main 方法。 这只是一个遵循Java惯例的应用程序入口点的标准方法。 我们的 main 方法通过 Spring Boot代理的 SpringApplication 类来 运行( run )。 SpringApplication 将引导我们的应用程序,启动Spring,然后启动自动配置的Tomcat Web服务器。 我们需要将 Example.class 作为参数传递给 run 方法来告诉 SpringApplication 哪是主Spring组件。 args数组也被传递以暴露传入的命令行参数。

运行 例子

现在我们的应用程序可以运行了, 由于我们使用在POM中添加了 spring-boot-starter-parent-parent,因此我们有一个有用的运行目标,我们可以使用它来启动应用程序。 键入mvn spring-boot: 从根目录运行以启动应用程序:(手册上是在命令行操作的,IDE中通过配置 Run Configuration 即可)

$ mvn spring-boot:run

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

打开浏览器,输入http://localhost:8080/ 你会得到下面的输出:

Hello World!

通过 Ctrl-c 来退出程序

创建可运行的 jar 包

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

查看jar包里的内容 jar tvf

$ jar tvf myproject-0.0.1-SNAPSHOT.jar

运行程序命令 java -jar

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

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.5.7.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)

官方提供的 spring-boot 的各种例子

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值