通过application.properties(.yml/.yaml)和@Value进行注入:
@Value的值有以下三大类:
@Value("${ property : default_value}")
$注入的是外部配置文件对应的property,使用“ : ”对未配置或值为空的属性设置默认值。
@Value("#{ obj.property?:default_value}")
#注入的是SpEL表达式对应的内容,使用“ ?: ”对未配置或值为空的表达式设置默认值。
直接把值注入
@Value("字符串类型的值")
在注入Map时 需要使用 #{${}} 结合使用
# application-dev.properties配置文件: # 属性注入测试 # 字符串 string=这是字符串 # 数字 整型 浮点型 intv=20 doublev=99.9 # 数组/List string-arr=元素1,元素2,3 # map mapsv= {key1: 'value1', key2: 'value2'} #person person.name=张三 # application-test.yaml配置文件: # 属性注入测试 color: person2: name: ${name} # 属性注入测试 # 字符串 string=这是字符串 # 数字 整型 浮点型 intv=20 doublev=99.9 # 数组/List string-arr=元素1,元素2,3 # map mapsv= {key1: 'value1', key2: 'value2'} #person person.name=张三 # 属性注入测试 # 字符串 string: 这是字符串 # 数字 整型 浮点型 intv: 20 doublev: 99.9 # 数组/List string-arr: 元素1,元素2,3 # map 一定要用""把map所对应的value包起来,要不然解析会失败 mapsv: "{key1: 'value1', key2: 'value2'}" #personperson: name: 张三 |
在HelloController里通过@Value注解注入:
输出: