@Value注解作用于字段、方法、参数、注解属性。
使用方法
1. 普通值
直接赋值,支持字符串、包装类、基本类型的直接赋值。
@Value("str")
private String str1;
@Value("1")
private Integer int1;
@Value("2")
private int int2;
2. 资源
注入文件资源、URL资源。
@Value("classpath:application.yml")
private Resource file;
@Value("https://www.baidu.com")
private URL url;
3. 配置文件配置值
注入配置文件的属性值,支持不存在时赋默认值
@Value("${spring.profiles.active}")
private String active;
@Value("${spring.profiles.test:defaultTest}")
private String test;
4. 随机值
注入随机数。
@Value("${random.int.1,10;}")
private Integer randomInt;
5. Spring Bean
注入Spring Bean。
@Value("#{systemProperties}")
private Properties systemProperties;
@Value("#{systemProperties['sun.management.compiler']}")
private String compiler;
@Value("#{systemProperties['port']?:'8888'}")
private String port;
@Value("#{['spring.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties']}")
private RedisProperties redisProperties;
@Value("#{['spring.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties']['lettuce'].pool.maxActive}")
private String maxActive;
6. 更多SpEL用法
参考文章:https://blog.csdn.net/JokerLJG/article/details/124434854