yml注意点:“abc\n” 代表:abc换行
‘abc\n’ 代表: abc\n
创建容器
表明用spring的驱动器来运行
表明这是一个单元测试程序,可以在测试期间很方便的进行类似编码一样的自动注入等容器的功能
将配置文件中配置的每一个属性的值,映射到这个组件中
为属性赋值,例如:
@Value("${person.last-name}")
private String lastName;
1、可以 批量注入配置文件中的属性
2、支持松散绑定(松散语法)
3、不支持 SpEL
4、支持JSR303数据校验
5、支持复杂类型封装
重要提示:如果要进行数据校验一定要用@ConfigurationProperties
1、需要一个个指定赋值的对象
2、不支持松散绑定(松散语法)
3、支持 SpEL
可以用表达式赋值
@Value("#{11*2}")
private Integer age;
4、不支持JSR303数据校验 不
5、不支持复杂类型封装
总结:
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;
加载指定的配置文件;
例如:
@PropertySource(value = {"classpath:person.properties"})
导入Spring的配置文件,让配置文件里面的内容生效;
例如:
@ImportResource(locations = "classpath:beans.xml")
将方法的返回值添加到容器中;
表明当前类是一个配置类;
全面接管springmvc
可通过此方式改变具体使用哪个配置文件:
spring.profiles.active=dev
由于本人idea版本与教程的idea版本有出入,以后有需要再做尝试。
这里给出写入命令:
-Dspring.profiles.active=dev
默认按照以下优先级执行:
– file:./config/
– file:./
– classpath:/config/
– classpath:/
运行入口类中有注释:
@SpringBootApplication:加载了配置文件的主配置类
主配置类注释中又有注释:
@EnableAutoConfiguration:在主配置类里开启了自动配置功能
自动配置类中利用EnableAutoConfigurationImportSelector给容器中导入一些组件
待续…(后面还不理解,以后再补充)
总结:
1)、SpringBoot启动会加载大量的自动配置类
2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;
@Conditional:满足指定条件才可以添加组件,如:
@Conditional扩展注解 作用(判断是否满足当前指定条 件)
@ConditionalOnJava 系统的java版本是否符合要求
@ConditionalOnBean 容器中存在指定Bean;
etc…
代码:
debug=true
java中有很多的日志框架,在springboot中使用的是SLF4j+Logback组合
默认日志级别为:info
可以通过在配置文件中更改:
logging.level.root=debug
#还可以设置指定的包文件下的日志级别:
logging.level.com.hand=trace
1)控制台日志格式
logging.pattern.console=
2)更改文件日志格式:
logging.pattern.file=
例如:
th:id
替换原标签id的值
etc…
其他语法表达式可以查官方文档:
基于个人能力所限,决定放在以后再学习…