SpringBood
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 以上。
springboot的使用
1. 创建handler
2. 创建启动类
启动类必须覆盖所有与业务相关的类:启动类所在的包必须是业务类所在包的同包或者⽗包,如果没有
覆盖,业务类就不会⾃动装配到 IoC 容器中。
springboot配置文件
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 ⽂件中的数据,⽐如在业务⽅法中向客户端返回当前服务的端⼝信
息。
@Value 注解同样适⽤于 Properties ⽂件。
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;
}
}
Spring Boot 整合 JSP
Spring Boot 与视图层的整合
- JSP
- Thymeleaf
Java Server Page,是 Java 提供的⼀种动态⽹⻚技术,底层是 Servlet,可以直接在 HTML 中插⼊ Java
代码。 - JSP 底层原理:
JSP 是⼀种中间层组件,开发者可以在这个组件中将 Java 代码与 HTML 代码进⾏整合,由 JSP 引擎将组
件转为 Servlet,再把开发者定义在组件中的混合代码翻译成 Servlet 的响应语句,输出给客户端。
1.创建基于 Maven 的 Web 项⽬,pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>9.0.19</version>
</dependency>
</dependencies>
2.创建handler
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/hello")
public class HelloHandler {
@GetMapping("/index")
public ModelAndView index(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("index");
modelAndView.addObject("mess","Hello Spring Boot");
return modelAndView;
}
}
3.jsp
<html> <head>
<title>Title</title>
</head> <body>
<h1>Index</h1>
${mess}
</body>
</html>
4、application.yml
server:
port: 8181
spring:
mvc:
view:
prefix: /
suffix: .jsp
5.有如下界面则成功