目录
一、SpringBoot配置文件的作用
二、SpringBoot配置文件的分类
1、application.properties
2、application.yml
3、application.yaml
三、使用配置文件实例--验证码
1、使用Kaptcha插件生成验证码
2、网页需求分析
3、前端页面
4、发送请求
5、服务器作出响应
6、客户端作出响应
7、效果展示
四、SpringBoot日志
1、日志形式
2、打印日志内容
3、解释slf4j
4、日志级别
5、打印不同级别日志
6、修改日志级别输出
7、日志持久化
8、配置日志文件分割
9、配置日志格式
10、使用注解生成日志对象
一、SpringBoot配置文件的作用
很多项目或者框架的配置信息都放在了SpringBoot配置文件中,比如:项目的启动端口、连接数据库的配置信息、有关日志的配置等信息都可以在配置文件中设定。
二、SpringBoot配置文件的分类
配置文件有三种:application.properties、application.yml、application.yaml.
1、application.properties
(1)配置项目端口号为9090:
此时若要访问服务器,端口号就是9090,不再是8080了。
(2)读取配置文件
通过@Value注解 + “${}”读取配置文件内容
(3)properties的优缺点
格式简单,但有很多冗余的信息。
2、application.yml
(1)配置项目端口号为9090以及配置数据库连接信息:
(2)读取配置文件
(3)yml优缺点
可读性高,但格式要求高,不适合写复杂的配置文件。
(4)yml中配置不同类型及空值
(5)value值加单双引号
结论:①字符串不需要加单双引号;②单引号会转义,‘\n’被转义了,不再表示换行符;③双引号不会转义,‘\n’未被转义,依旧表示换行符。
(6)配置对象
①配置文件中写入对象:
②@ConfigurationProperties注解读取配置对象,放在容器中:
③注入输出:
(7)配置集合list
①配置文件中写入list集合:
②@ConfigurationProperties注解读取配置对象,放在容器中:
name2是和上面对应的,不一样会输出null。
③注入输出:
(8)配置map
①配置文件中写入map:
②@ConfigurationProperties注解读取配置对象,放在容器中:
③注入输出:
3、application.yaml
与application.yml格式一样,就不做详细说明。
注:当application.properties配置文件与application.yml配置文件都存在时,properties的优先级大于yml。
三、使用配置文件实例--验证码
验证码可以由客户端生成,也可以由服务端生成。服务端生成分为两部分:第一部分生成验证码内容,根据验证码内容和干扰项生成图片,返回给客户端;第二部分是将生成的字符串内容存储起来,校验时拿出来。
1、使用Kaptcha插件生成验证码
(1)引入依赖
(2)配置文件中生成验证码
(3)访问配置文件路径
(4)配置验证码生成样式
还可以配置其他内容:图片长宽、干扰项样式,具体内容可以进入官网查看。
2、网页需求分析
(1)页面生成验证码;
(2)输入验证码内容,点击提交,匹配成功页面跳转,不成功提示不正确。
3、前端页面
前端有两个页面:index.html和success.html。
(1)index.html页面
查看效果:
(2)success.html页面
4、发送请求
请求方法:post,请求格式:json,请求内容:输入的内容。路径:/admin/check
5、服务器作出响应
6、客户端作出响应
7、效果展示
四、SpringBoot日志
1、日志形式
2、打印日志内容
(1)直接打印
直接打印的日志信息会缺少一些信息。
(2)按日志形式打印日志
①导入日志对象,是slf4j框架。
②输出打印内容
3、解释slf4j
slf4j是一个日志门面,不是一个真正的日志框架,是其他日志框架的门面。
门面模式:称为外观模式,提供了一个统一的接口,用来访问子系统的许多接口。减少了系统的相互依赖,实现了客户端与子系统的耦合关系;提高了灵活性,客户端无需子系统关心的具体实现方式。
常见的日志框架:log4J,logback。
引入日志门面的优点:引入日志门面后只需要维护一套日志文件配置,且当底层框架修改,也不影响日志门面的使用。
4、日志级别
日志级别代表了对应日志信息的问题的严重性,级别越高收到的日志信息越少。一共有6个级别,从高到低为:FATAL、ERROR、WARN、INFO、BEBUG、TRACE。
5、打印不同级别日志
(1)没有设置fatal级别的日志
是因为springboot默认使用的是logback日志框架,logback框架没有fatal级别,被映射到error级别了。出现fatal级别的日志,表明服务器一定程度上已经不可用了。
(2)没有打印debug和trace级别的日志
与日志级别的配置有关,日志输出级别默认是info,只会打印大于等于info级别的日志,即:error、warn、info三个级别的日志。
6、修改日志级别输出
此时就可以打印debug级别的日志了。
7、日志持久化
持久化:日志内容保存下来。
以上日志内容都是被打印在了控制台,若重新启动服务器,日志内容就没有了,所以需要将日志内容保存下来,以便后续发现问题。
(1)配置日志文件名
name后可以跟绝对路径,也可以跟相对路径。
(2)配置日志文件存储目录
该路径下就会放一个文件名固定为spring.log的文件,记录存储的日志内容。
8、配置日志文件分割
以上会存在一个问题:不断往文件中存储日志,文件会越来越大,此时就需要对文件分割。
如果不进行配置,当文件大小超过10MB时也会自动分割。
最开始的日志内容在springboot.log.2024-2-20.0文件中。
9、配置日志格式
%clr(表达式){颜色}:设置输入日志的颜色;
%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}}:日期和时间,精确到毫秒;
%5p:显示日志级别;
%t:线程名,%c:类的全限定名,%L:行号,%thread:线程名称;
10、使用注解生成日志对象
每个类想打印日志获取日志对象时都需要写入:LoggerFactory.getLogger(xxx.class)。可以使用注解直接获取对象:
也可以打印日志:
注:使用@Slf4j注解时,要先引入lombok依赖。是lombok提供的@Slf4j注解。