配置
①继承的父类定义了依赖的版本
②启动器starter:帮我们导入了一个功能模块正常运行所依赖的组件
③EnableAutoConfiguration自动配置类把预配置在META-INF/spring.factories的配置置自动装载
④YAML默认字符串不用加符号,双引号不会转义特殊字符,单引号会转义;可以使用占位符${Stuu.other},如果找不到,就会把它做为字符输出,可以加默认值:stu.otherer:张三;用—可以定义文档块;
对象或Map写法:
Stu:
namee: 训
age:20
Stu: {namee: 组,age: 18了}
数组:
petss:
- cat
- dog
pets:[cat∫,dog]
⑤@ConfigurationProperties(prefix ="pets")获取配置文件信息,需要放入容器中:@Component;支持松散绑定和JSR303数据校验和复杂类型封装
⑥settings-FiIe Encodings-最下边勾上native-to-asccii解决配置文件乱码
⑦@Value:${petss.cat}、2*3(SpEL)、true;不支持复杂类型封装。
⑧@PropertySource读取取指定的配置文件,和@ConfigurationProperties配合使用
⑨@ImportResource导入spring的配置文件,就是以前的xml配置;推荐使用@Bean,方法的反回值就是要添加的组件,方法名就是id
⑩配置文件加载:fiIe:./config/ 》 file:./ 》 classpath:/config/ 》 classpath:/ 优先级从高到底,所有文件都会被加载,高就先级会覆盖低优先级的内容。还可以用spring.config.location在命令行指定新的配置文件,会和默认加载的配置文件共同起作用。注意:左根目录下的配置不会被打到包里!也可以从外部加载,具体参考官网。
①自动配置原理:
@SpringBootApplication→@EnableAutoConfiguration→@lmport({AutoConfigurationImportSelector.class})→selectImports方法的getCandidateConfigurations方法获取候选的配置(所有Jar包类路径下META一INF/spring.factories文件,把这些文件内容包装成properties对象,最终获取到EnableAutoConfiguration.class类名对应的值,添加到容器。可以到org.springframework.boot:spring-boot-autoconfigure看。每个xxxAutoConfiguration类都是一个自动配置组件)→HttpEncodingAutoConfiguration→@EnableConfigurationProperties(通过ConfigurationProperties从配置文件中绑定粗应的Bean值,然后在Http…tion中通过@Bean的方式new出相应的配置组件方到容器)。
②通过在YmI里启用debug=true来让控制台打印自动配置报告:
AUTO-CONFIGURATION REPORT
Positive matches:(自动配置启用了)
Negative matches:(未启用)