以HttpEncodingAutoConfiguration ( Http编码自动配置)为例解释自动配置原理;
根据当前不同的条件判断,决定这个配置类是否生效?
但这个配置类生效;这个配置类就会给容器中添加各种组件;这些组件的属性是从对应的properties类中获取的,这些类里面的每一个属性又是和配置文件绑定的;
所有在配置文件中能配置的属性都是在xxxProperties类中封装者;配置文件能配置什么就可以参照某个功能对应的这个属性类
精髓:
1). SpringBoot启动会加载大量的自动配置类
2).我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3).我们再来看这个自动配置类中到底配置了哪些组件: (只要我们要用的组件有.我们就不需要再来配置了)
4).给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;
xxxxAutoConfigurartion自动配置类;
给容器中添加组件
xxxProperties:封装配置文件中相关属性;
2、SLF4j使用
1、如何在系统中使用SLF4j
以后开发的时候日志记录方法的调用 ,不应该来 直接调用日志的实现类 ,而是调用日志抽象层里面的方法 ;
给系统里面导入slf4j的jar和logback的实现jar
如何让系统中所有的日志都统一到sIf4j ;
1.将系统中其他日志框架先排除出去;
2.用中间包来替换原有的日志框架;
3.我们导入slf4j其他的实现
配置文件中修改日志级别:
日志输出格式:
%d表示日期时间,
%thread表示线程名,
%-5level :级别从左显示5个字符宽度
%logger{50}表示logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n是换行符
例子:%yyyy-M-dd HH:mm:ss .SSS} [%thread] %-5level %logger{50} - %msg%n
2、指定配置
给类路径下放上每个日志框架自己的配置文件即可; SpringBoot就不使用他默认配置的了
logback.xml :直接就被日志框架识别了; .
logbackspring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot
的高级Profile功能
否则: