@Value
Posted kikochz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Value相关的知识,希望对你有一定的参考价值。
@Data
@Component
//可以通过@ConfigurationProperties来自动绑定
//@ConfigurationProperties(prefix = "test2")
@PropertySource({"classpath:test.properties"})
public class SpELBean {
// @Value 在spring包下, 必须将所在类注入到ioc中才会生效
@Value("#{‘老王‘.concat(‘八‘)}")
private String name;
//调用注入到ioc中的bean, 支持三目运算
@Value("#{spELBean.name.length()==3?-100:100}")
private Integer age;
// Elvis表达式, 与${}不同的是,${}使用Elvis表达式不用带?
@Value("#{null?:100}")
private Double score;
@Value("#{‘100kg‘.toUpperCase()}")
private String weight;
/* 内置对象相当于
system.getProperties*/
@Value("#{systemProperties[‘user.dir‘]}")
private String dir;
//使用 T(...) 可以调用Jdk中的一些工具类的静态方法
@Value("#{T(Math).random()*10}")
private Double num;
// T(...)对应Class类型
@Value("#{T(Double)}")
private Class<?> aClass;
@Value("#{{‘a‘,‘b‘,‘c‘}}")
private List<String> list1;
//自定义的properties属性绑定list
@Value("#{‘${test2.list}‘.split(‘,‘)}")
private List<Integer> list3;
//通过自定义的properties属性绑定map, key不带双引号
@Value("#{${test2.map}")
private Map<String, String> map;
}
test2.list=1,2,3,4,5
#map的key不用带双引号
test2.map={name:"张丹",age:12}
以上是关于@Value的主要内容,如果未能解决你的问题,请参考以下文章
Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决(代码片段