以HttpEncodingAutoConfiguration ( Http编码自动配置)为例解释自动配置原理;

spring boot请求日志 request id_xml

spring boot请求日志 request id_配置文件_02

根据当前不同的条件判断,决定这个配置类是否生效?
但这个配置类生效;这个配置类就会给容器中添加各种组件;这些组件的属性是从对应的properties类中获取的,这些类里面的每一个属性又是和配置文件绑定的;

所有在配置文件中能配置的属性都是在xxxProperties类中封装者;配置文件能配置什么就可以参照某个功能对应的这个属性类

spring boot请求日志 request id_日志框架_03

精髓:
1). SpringBoot启动会加载大量的自动配置类
2).我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3).我们再来看这个自动配置类中到底配置了哪些组件: (只要我们要用的组件有.我们就不需要再来配置了)
4).给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;
xxxxAutoConfigurartion自动配置类;
给容器中添加组件
xxxProperties:封装配置文件中相关属性;
 

2、SLF4j使用

1、如何在系统中使用SLF4j

以后开发的时候日志记录方法的调用 ,不应该来 直接调用日志的实现类 ,而是调用日志抽象层里面的方法 ;

给系统里面导入slf4j的jar和logback的实现jar

spring boot请求日志 request id_xml_04

如何让系统中所有的日志都统一到sIf4j ;

1.将系统中其他日志框架先排除出去;

2.用中间包来替换原有的日志框架;

3.我们导入slf4j其他的实现

spring boot请求日志 request id_日志框架_05

配置文件中修改日志级别:

spring boot请求日志 request id_xml_06

日志输出格式:

%d表示日期时间,

%thread表示线程名,

%-5level :级别从左显示5个字符宽度

%logger{50}表示logger名字最长50个字符,否则按照句点分割。

%msg:日志消息,

%n是换行符

例子:%yyyy-M-dd HH:mm:ss .SSS} [%thread] %-5level %logger{50} - %msg%n

spring boot请求日志 request id_xml_07

spring boot请求日志 request id_配置文件_08

2、指定配置

给类路径下放上每个日志框架自己的配置文件即可; SpringBoot就不使用他默认配置的了

spring boot请求日志 request id_配置文件_09

logback.xml :直接就被日志框架识别了; .

logbackspring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot

的高级Profile功能

spring boot请求日志 request id_日志框架_10

否则:

spring boot请求日志 request id_xml_11

spring boot请求日志 request id_日志框架_12