Spring Boot 使用@Value注解将外部值动态注入到 Bean 中。
常量注入
@Value(常量),常量可以是字符串、文件、URL。
// 注入普通字符串
@Value("Hello, Spring Boot")
private String hello;
// 注入文件资源
@Value("classpath:config.txt")
private Resource resource;
// 注入 URL 资源
@Value("http://www.baidu.com")
private Resource url;
配置文件值注入
@Value("${配置名:默认值}"),当配置文件中不存在配置名时注入默认值。
@Value("${location.longitude:unknown}")
private String longitude;
注入其它 Bean 属性
@Value("#{Bean.属性名?:'默认值'}"),如果属性名对应的值为null时显示默认值。
注意默认值有单引号,且属性名必须存在。
@Value("#{beanX.name?:'unknown'}")
private String beanXName;
注入系统属性
@Value("#{systemProperties['系统属性名']?:'默认值'}"),如果系统属性名不存在时显示默认值。
@Value("#{systemProperties['os.name']?:'...'}")
private String systemPropertiesName;
注入表达式结果
@Value("#{T(java.lang.Math).random() * 100.0}")
private double randomNumber;