Spring Boot

通过 Spring Boot 可以快速构建⼀个基于 Spring 框架的 Java Application,简化配置,自动装配。
JavaConfiguration 用 Java 类替代 XML 的配置方式。
Spring Boot 对常用的第三方库提供了配置方案,可以很好地和 Spring 进行整合,⼀键式搭建功能完备的 Java 企业级应用。

开箱即用是 Spring Boot 的特点

Spring Boot 的优势:

不需要任何 XML 配置⽂件,内嵌 Tomcat,可以直接部署,默认支持 JSON 数据,不需要进行转换,支持 RESTful,配置⽂件非常简单,支持 YAML 格式。

Spring Boot 是⼀种只需要极少配置就可以快速搭建 Spring 应用,并且集成了常用的第三⽅类库,让开发者可以快速进行企业级应用开发。

Spring Boot 2.x 要求必须基于 Spring 5.x,Spring 5.x 要求 Java 版本必须是 8 以上。

Spring Boot 的使用

1、创建 Handler

package com.southwind.springboot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloHandler {
 @GetMapping("/index")
 public String index(){
 return "Hello Spring Boot";
 }
}

2、创建启动类

package com.southwind.springboot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloHandler {
 @GetMapping("/index")
 public String index(){
 return "Hello Spring Boot";
 }
}

启动类必须覆盖所有与业务相关的类:启动类所在的包必须是业务类所在包的同包或者父包,如果没有覆盖,业务类就不会自动装配到 IoC 容器中。

Spring Boot 配置文件

自定义 banner

springboot 启动指定config目录 springboot jar启动指定配置文件_java


Properties

#端⼝
server.port=8181
#项⽬访问路径
server.servlet.context-path=/springboot
#cookie失效时间
server.servlet.session.cookie.max-age=100
#session失效时间
server.servlet.session.timeout=100
#编码格式
server.tomcat.uri-encoding=UTF-8

YAML

YAML 是不同于 Properties 的另外⼀种⽂件格式,同样可以用来写配置文件,Spring Boot 默认支持YAML 格式,YAML 的优点在于编写简单,结构清晰,利用缩紧的形式来表示层级关系。
相比于 Properties,YAML 可以进⼀步简化配置文件的编写,更加方便。

server:
 port: 8181
 servlet:
 context-path: /springboot
 session:
 cookie:
 max-age: 100
 timeout: 100
 tomcat:
 uri-encoding: UTF-8

需要注意的是 YAML 格式书写规范⾮常严格,属性名和属性值之间必须至少⼀个空格。

如果 Properties 和 YAML 两种类型的文件同时存在,Properties 的优先级更高。

配置文件除了可以放置在 resources 路径下之外,还有 3 个地方可以放置,如下图所示

springboot 启动指定config目录 springboot jar启动指定配置文件_YAML_02


优先级顺序如下所示:

1、根路径下的 config 中的配置文件

2、根路径下的配置文件

3、resources 路径下的 config 中的配置文件

4、resources 路径下的配置文件

可以直接在 Handler 中读取 YAML 文件中的数据,比如在业务方法中向客户端返回当前服务的端口信息。

package com.southwind.springboot.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloHandler {
 /**
 * SpEL Spring Expression Language
 */
 @Value("${server.port}")
 private String port;
 @GetMapping("/index")
 public String index(){
 return "当前服务的端⼝是:"+this.port;
 }
}

@Value 注解同样适⽤于 Properties ⽂件。