springboot
springboot启动类要与controller,service这些包同级,属于同一个包下,启动时才能扫描到那些包里的组件,也能扫描到与启动类同级的类。(可以扫描到兄弟的儿子,和自己的兄弟,不能扫描到爸爸的兄弟的儿子)
yml配置文件语法特别注意list数组元素的 - 后面也要有空格
list:
- one
- two
Alt+insert 快捷键set和get方法和tostring() 生成
@ConfigurationProperties(prefix = "emp" ) 一般放在组件类上的注解 可以将application.yml或application.properties这两个全局配置文件中的属性和组件类中的属性一一对应绑定,emp是某前缀名,可以去搜寻yml中的这个属性前缀
@Component 把当前组件收纳为springboot管理
测试类里需要有@RunWith(SpringRunner.class) 可以把所有组件都直接扫描到来运行
配置文件有中文:
settings里的file encodings修改
@Value 可以替代@ConfigurationProperties 来在实体类中获取到配置文件里对应属性的值
@Value("${emp.name}") 或者是spring表达式直接赋值 @Value("#{20}") / @Value("20")
@Value 和 @ConfigurationProperties 的区别对比
@Value | @ConfigurationProperties | |
松散绑定语法(大小写有区别或者有符号) | 不支持 | 支持 |
spel(spring表达式,比如一些运算) | 支持 | 不支持 |
复杂类型封装(比如map,list) | 不支持 | 支持 |
JSR303数据校验(@Validated+@Email) | 不支持 | 支持 |
总结:少量的不涉及复杂类型封装和数据校验的用@Value,其他都用@ConfigurationProperties
另外的:从常用角度:map=(key:(key:value))
list=key:value1,value2,....