一、@Value@ConfigurationProperties这两个注解都必须是作用在容器中的组件上。 @ConfigurationProperties(prefix = "person")默认从全局配置文件中获取值;使用@ConfigurationProperties(prefix = "person")要赋值的属性一定要有setter方法;
二、@PropertySource(value = {"classpath:person.properties"}):加载指定的配置文件,这个文件是普通的配置文件;@ImportResource(locations = {"classpath:beans.xml"})导入Spring的配置文件让其生效,Spring配置文件是文件内有<beans/>标签的这种文件,要标注在一个配置类上。
三、@EnableAutoConfiguration 作用:开启自动配置功能
四、@EnableConfigurationProperties(HttpEncodingProperties.class) //启动指定类的ConfigurationProperties功能;将配置文件中对应的值和HttpEncodingProperties绑定起来;并把HttpEncodingProperties加入到ioc容器中
五、SpringFactoriesLoader.loadFactoryNames()扫描所有jar包类路径下 META‐INF/spring.factories把扫描到的这些文件的内容包装成properties对象从properties中获取到EnableAutoConfiguration.class类(类名)对应的值,然后把他们添加在容器中
六、SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;
五、 启动程序时可以修改某些值 使用这种方式:java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;多个配置用空格分开; --配置项=值 Sringboot的配置文件读取顺序是先从jar包外再到jar包内,也就是说SpringBoot的配置文件可以存放到jar包的同级路径下并且其优先级按自动寻找来说是最高的。
八、SpringBootAdmin的日志级别不归SpringBoot的logging管理,也就是说admin的日志用的不是logging框架