Spring Boot并不重复“造轮子”

2.1 Spring Boot简介

Spring Boot是由Pivotal团队提供的基于Spring的全新框架,其设计目的是简化Spring应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而使开发者无须进行大量的XML配置。Spring Boot致力于成为蓬勃发展的快速应用开发领域的领导者。

Spring Boot并不重复“造轮子”,而是在原有Spring框架的基础上进行封装,并且它集成了一些类库,用于简化开发。换句话说,Spring Boot就是一个大容器。

关于Spring Boot,其官网是这样描述的:

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.

We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

从上面的描述中,我们可以了解到,Spring Boot带给了我们全新的应用部署方案,通过它可以很方便地创建独立的、生产级的基于Spring的应用程序。同时,通过Spring平台和第三方库可以轻松构建视图。

其实,Spring Boot默认集成了Tomcat,因此我们可以只编译成jar包,通过Java命令启动应用,大多数Spring Boot应用程序只需要很少的Spring配置。

2.2 第一个Spring Boot工程

本节中,我们将创建第一个Spring Boot工程,读者可以按照下面的步骤进行操作。

(1) 打开IntelliJ IDEA,依次点击File→New→Module,在弹出的对话框中选择Maven,并点击Next按钮,创建一个Maven项目。这里我们在ArtifactId一栏中输入demo-lesson-one,在GroupId一栏中输入com.lynn.boot。创建好工程后,为pom.xml增加以下内容:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
</parent>

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

其中,标签声明了Spring Boot的父项目,版本号定义为2.0.3.RELEASE。我们还可以注意到,标签中声明了spring-boot-starter-web依赖,它提供了对Spring MVC的支持。

(2) 编写应用启动类Application:

package com.lynn.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

Spring Boot的强大之处在于可以直接通过main方法启动Web应用程序。在上述代码中,我们提供了应用程序的入口,通过调用SpringApplication.run()来启动内置Web容器。我们注意到,在Application类中添加了@SpringBootApplication注解,我们将在2.4节中介绍它的作用。

默认情况下,Spring Boot内置了Tomcat。当然,它还支持其他容器,如Jetty。倘若我们要将默认容器改为Jetty,可以将pom.xml文件修改成下面这样:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

在上述代码中,我们通过标签将Tomcat的依赖包移除,并增加了Jetty的依赖包。

(3) 编写控制器以验证Spring Boot框架:

package com.lynn.boot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping(value = "hello")
    public String hello(){
       return "Hello World!";
    }
}

在上述代码中,@RestController注解指示了该类为控制器类,与它对应的注解是 @Controller。@RestController注解相当于 @Controller注解和@ResponseBody注解的结合。@RequestMapping注解的作用是定义一个HTTP请求地址,默认不限制请求方式,可以是GET、POST亦或其他方法,如果要限制请求方法,可以在注解后面增加method属性,如method=RequestMethod.GET表示只有GET请求才能调用该HTTP地址。

上面提到的注解均为Spring MVC注解,我们之所以能够在这里很方便地使用Spring MVC注解,是因为第(1)步的依赖中添加了spring-boot-starter-web依赖,该依赖集成了Spring MVC。

(4) 运行Application类的main方法,并访问localhost:8080/hello,即可看到如图2-1所示的界面。

图像说明文字

通过以上示例,我们可以知道:

 使用Spring Boot创建一个工程非常简单,既没有XML配置文件,也没有Tomcat,通过几个简单的注解,运行main方法就能启动一个Web应用;

 Spring Boot默认内置Tomcat;

 Spring Boot用注解代替了烦琐的XML配置。

2.3 使用YAML文件配置属性

在上一节中,我们实现了一个最简单的Web工程,没有创建任何配置文件。当然,Spring Boot的任何配置都可以通过代码实现。为了便于扩展,它引入了PROPERTIES格式和YAML格式 的文件,可以在其中定义一些常用属性或自定义属性。

2.3.1 YAML的基本用法

下面我们先来看一下Spring Boot的一般配置,步骤如下。

(1) 在src/main/resources目录下创建一个名为application.yml的配置文件,并编写以下内容:

server:
    servlet:
        #定义上下文路径
        context-path: /demo
    #定义工程启动的端口
    port: 8081

在上述配置中,我们通过server.servlet.context-path定义了应用的上下文路径为/demo,它的默认值为/,server.port定义应用的启动端口,其默认值为8080,这里设置为8081。

(2) 启动工程并访问localhost:8081/demo/hello,就可以看到如图2-1所示的界面。

① 本书的所有示例都使用了YAML 栺式的配置文件。

在2.2节中,我们启动工程时的监听端口为8080,上下文路径为/,但是我们并没有配置任何信息,那是因为所有配置属性都有默认值,如端口的默认值为8080。

接下来,我们看一下YAML文件的结构,其基本格式为:

key1:
    key2:
        key3: value

我们将它替换成properties的形式,即key1.key2.key3&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值