1.为什么使用Spring Boot
2.构建Spring Boot项目
2.1构建项目
方式1:使用官方初始化方法:https://start.spring.io/
方式2:使用IDE方式:
idea:
STS
Spring Initializr
Web方式
IDE方式
项目结构
启动类
@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@ComponentScan
2.2运行项目
IDE运行
jar包运行:java -jar
maven插件:mvn spring-boot:run
2.3新建hellowoeld
sts pom报错:
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
3.热部署
使用spring-boot-devtools,一种自动重新打包组件
1.在pom中直接引入依赖
org.springframework.boot
spring-boot-devtools
true
2.idea中进行自动构建相关配置
2.1
2.2
alt+shift+ctrl+/
4.Spring Boot配置文件优先级
4.1 多配置文件切换
生产、测试、开发有不同的配置文件
命令行 : --spring.profiles.active=dev
配置文件 : spring.profiles.active=dev
4.2配置文件书写
设置端口号
设置全局变量,使用@Value接收
@Value("${avatarPath}")
4.3配置文件加载位置及优先级
a、内部配置:
•配置文件的优先级(由高到低)
•工程根目录:file:./config/
•工程根目录的config目录:file:./
•类路径的config目录:/src/main/resources/config/
•类路径:src/main/resources/ (推荐使用)
高优先级配置会覆盖低优先级配置
b、外部配置:
例如:命令行参数,详情见官方文档
–server.port=8087
java -jar class7-web-0.0.1-SNAPSHOT.jar --server.port=8081
外部优先级高于内部
5.日志
5.1 SLF4J——Simple Logging Facade For Java
SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定的——它提供了各类日志框架的binding。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private Logger log = LoggerFactory.getLogger(HelloWorldController.class);
5.2日志格式
•时间日期:精确到毫秒
•日志级别:ERROR, WARN, INFO, DEBUG or TRACE
•进程ID
•分隔符:— 标识实际日志的开始
•线程名:方括号括起来(可能会截断控制台输出)
•Logger名:通常使用源代码的类名
•日志内容
一条简单的INFO日志:
2019-11-19 13:04:20.533 INFO 121100 — [nio-8080-exec-6] c.c.t.t.controller.HelloWorldController : HelloWorldController-index-打印日志:hello,world
5.3日志文件
日志输出
输出到控制台
默认情况下,Spring Boot将日志输出到控制台
输出到文件
在application.properties中设置logging.file或logging.path属性
(2.2.1版本为logging.file.path)
默认情况下,日志文件的大小达到10MB时会切分一次,可自行设定(logging.file.max-size)
6.单元测试
6.1.引入依赖
org.springframework.boot
spring-boot-starter-test
test
查看spring-boot-starter-test结构
6.2 业务代码测试
新建test类:
在需要测试的类上使用ctrl+shift+t自动创建测试类(idea)
或者新建测试类:
以要进行测试的类开头,以Test结尾
类赋予:
@SpringBootTest注解:
1.表示当前加载的是SpringBoot测试类、
2.加载SpringBoot启动 类,启动SpringBoot
方法赋予:
@Test注解
引入需要测试的类,赋予@Autowired注解
在测试方法中测试要测试的方法
6.3 接口Api测试
使用postman测试
dto转json
com.alibaba
fastjson
1.2.62
7.Actuator(监控与管理)
1.pom文件
依赖:
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-starter-web
浏览器打开链接http://localhost:8080/actuator/
actuator
/actuator/health
默认,只有health和info通过HTTP暴露了出来
2.常用配置
如果要看到所有支持的状态查询,需要配置
也可自定义暴露端点
management.endpoints.web.exposure.include=*
显示所有健康状态,需要加配置
management.endpoint.health.show-details=always
健康状况中显示当前磁盘空间,redis,db等健康状况
以beans为例
我们可以看到在每个Bean 中都包含了下面这些信息。
bean: Bean 的名称。
scope: Bean 的作用域。
type: Bean 的 Java 类型。
resource: class 文件的具体路径。
dependencies: 依赖的 Bean 名称
启用端点
默认情况下,除shutdown以外的所有端点均已启用。要配置单个端点的启用,请使用management.endpoint..enabled属性。
management.endpoint.shutdown.enabled=true
另外可以通过management.endpoints.enabled-by-default来修改全局端口默认配置,以下示例启用info端点并禁用所有其他端点:
management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true
3.chrome展示json数据
打开 https://github.com ;
搜索 jsonView 链接:https://github.com/search?utf8=%E2%9C%93&q=jsonview;
选择需要的插件(我是选这个gildas-lormeau/JSONView-for-Chrome);
点击【Download Zip】,插件下载完成,解压缩到相应目录(D:\Download\JSONView-for-Chrome-master);
安装,打开chrome - 扩展程序 (地址栏输入chrome://extensions/);
右上角,选中“开发模式”;
点击"加载正在开发的扩展程序…" -> 选择插件目录(D:\Download\JSONView-for-Chrome-master\WebContent);
安装完成,重新加载 (Ctrl+R)。
4.翻译 endpoints
5.文档地址
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/production-ready-features.html#production-ready