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
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 个地方可以放置,如下图所示
优先级顺序如下所示:
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 ⽂件。