Spring Boot 基础(四)@Value 注入

1,126 阅读1分钟

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;