目录
1.什么是Spring Boot?
1.1Spring Boot优点
1.2第一个Spring Boot项目
2.Spring Boot配置文件
2.1配置文件的作用
2.2配置文件的格式
2.3properties 基本语法
3.读取配置文件
3.1读取配置文件方法1
3.2properties缺点
3.3读取配置文件方法2
3.4读取配置文件方法3
编辑
3.5 properties VS yml 总结
4.Spring Boot日志文件
4.1日志文件的作用
4.2日志的使用
4.3自定义打印日志
4.3.1在程序中获取日志对象和打印日志
4.4日志级别
5.日志的持久化
6.lombok简单获取日志并打印日志
6.1 lomnok原理解释
1.什么是Spring Boot?
Spring Boot就类似于盖房子的脚手架,可以快速的帮助我们盖房子。而Spring Boot则可以帮助我们快速的开发Spring框架。
1.1Spring Boot优点
1)快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
2)内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
3)快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
4)可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。 ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
1.2第一个Spring Boot项目
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UserController {
@RequestMapping("/hi")
@ResponseBody//返回给浏览器一个接口数据而非页面
public String sayHi(String name){
return "Hi, " + name;
}
}
因为之前的设置,这里的端口号是8888.
这里我们注意要把注入到容器类和启动类放在同一级目录下,这时Spring Boot才能正确的将bean注入到容器中
小结:约定大于配置
对⽐ Spring 的项⽬我们也可以看到这⼀特点,⽐如在 Spring 中也是要配置 Bean 的扫描路径的,⽽ Spring Boot 则不需要,Spring 配置如下:
总之Spring Boot是为了快速开发Spring而诞生的,Spring Boot具备:
1)快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
2)内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
3)快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
4)可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。 ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点。
2.Spring Boot配置文件
2.1配置文件的作用
整个项目中所有重要的数据都是在配置文件中配置的:比如:
1)数据库的连接信息(包含用户名和密码的设置)
2)项目的启动端口
3)第三方系统的调用密钥等信息
4)用于发现问题和定位问题的普通日志和异常日志
如果没有配置文件,我们甚至不能连接和操作数据库,甚至时不能保存可以用于排查问题的关键日志,所以配置文件的作用非常重要。
2.2配置文件的格式
1).properties
2).yml
这就好像连锁店⾥⾯的统⼀服装⼀样,有两种不同的款式,properties 类型的配置⽂件就属于⽼款“服 饰”,也是创建 Spring Boot 项⽬时默认的⽂件格式(主要是由于仓库⾥还有库存),⽽ yml 属于新版 款式,如果⽤户了解情况直接指定要新款服饰,那么就直接发给他。
说明:这里的两种配置文件可以在一个项目中同时存在,但是如果配置文件中出现了相同的配置,我们优先以properties 中的配置为主,也就是.properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。 但是实际上我们通常会采取一种统一的格式。
2.3properties 基本语法
properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,如:
3.读取配置文件
3.1读取配置文件方法1
如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。 @Value 注解使⽤“${}”的格式读取,如下代码所示:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ReadYml {
@Value("${server.port}")
private String port;
//@Component 在 Spring Boot 启动时候会注⼊到框架中,注⼊到框架中时会执⾏ @PostConstruct 初
//始化⽅法,这个时候就能读取到配置信息了。
@PostConstruct
public void postConstruct() {
System.out.println("Read YML,port:" + port);
}
}
3.2properties缺点
properties是以key-value的形式配置的:
yml配置文件的读取也可以使用上面的@Value,此外还有下面两种读法
3.3读取配置文件方法2
用@ConfigurationProperties读取一个实体类
3.4读取配置文件方法3
配置文件也可以配置list集合:
3.5 properties VS yml 总结
1) properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似 json 格式的 树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂ 冒号加空格的⽅式设置,并且空格不可省略。
2) properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的 解决数据冗余的问题。
3) yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份 配置⽂件作为 Java 和 Go 的共同配置⽂件。
4)yml 虽然可以和 properties 共存,但⼀个项⽬中建议使⽤统⼀的配置类型⽂件。
4.Spring Boot日志文件
4.1日志文件的作用
日志是程序的重要组成部分,如果程序报错了,不打开控制台看日志,是无法找到报错的原因的。除了发现问题和报错原因之外,我们还可以通过日志实现以下功能:
1)记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。
2)记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。
3)记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。
4.2日志的使用
我们的Spring Boot项目在使用的时候,默认就有日志输出,如:
4.3自定义打印日志
4.3.1在程序中获取日志对象和打印日志
日志说明:
因为 Spring Boot 中内置了⽇志框架 Slf4j,所以咱们可以直接在程序中调⽤ slf4j 来输出⽇志。
常用的日志框架:
4.4日志级别
5.日志的持久化
以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追 溯问题,把⽇志保存下来的过程就叫做持久化。
想要将⽇志进⾏持久化,只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后, Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。
这样我们就将日志存储到了文件下面
6.lombok简单获取日志并打印日志
1)添加lombok依赖
6.1 lomnok原理解释
不仅如此,我们的setter共和getter方法也是一样
总结:
⽇志是程序中的重要组成部分,使⽤⽇志可以快速的发现和定位问题,Spring Boot 内置了⽇志框架, 默认情况下使⽤的是 info ⽇志级别将⽇志输出到控制台的,我们可以通过 lombok 提供的 @Slf4j 注解 和 log 对象快速的打印⾃定义⽇志,
⽇志包含 6 个级别:
trace:微量,少许的意思,级别最低;
info:普通的打印信息;
debug:需要调试时候的关键信息打印;
warn:警告,不影响使⽤,但需要注意的问题;
error:错误信息,级别较⾼的错误⽇志信息;
fatal:致命的,因为代码异常导致程序退出执⾏的事件。 ⽇志级别依次提升,⽽⽇志界别越⾼,收到的⽇志信息也就越少,我们可以通过配置⽇志的保存名称或 保存⽬录来将⽇志永久地保存下来。



