自定义的yum参数
my:
testType: 1
1. @Value("${keyPath:default}")
在使用@Value注解时
@Value("${my.testType:1}")
private String testType;
如果担心yum文件中spring.testType属性不存在的话,可以在${my.testType}里面使用keyPath:defaultValue的方式添加默认值,如果数据在yum文件中存着,则默认值无效
@Value("${my.testType:${my.defaultType:1}}")
String type;
如果my.testType存在则为my.testType如果不存在则为my.defaultType,如果my.defaultType也不存在则为1
2.@Value()使用在方法上
当@Value()注解使用在方法上时,会将注解的值填写入方法的参数中,不管有几个参数,全部参数都是@Value()所引用的属性,常用于给类中的属性设置值
server:
port: 7001
private String homeName;
@Value("${server.port}")
public void setHomeName(String homeName,String d,String f){
System.out.println("第一个参数");
System.out.println(homeName);
System.out.println("第二个参数");
System.out.println(d);
System.out.println("第三个参数");
System.out.println(f);
homeName+="@Value用在方法上";
this.homeName=homeName;
}
@RequestMapping("/test")
public String test(){
return this.homeName;
}
3.注解属性
在设置某些注解的属性时,想要能够便捷的修改,就可以将属性定义到yum文件中,然后在注解使用时,在设置属性时使用${KeyPath}即可
如:
@FeignClient(name = "test", url = "${my.testType}/test")
4.#与$
@Value("${}"):可以获取对应属性文件中定义的属性值。
@Value("#{}"):表示 SpEl 表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。
test:
t1: a1,a2,a3
t2: fasdf
@Value("${test.t1}")
String[] s1;
@Value("#{'${test.t2}'}")
String[] s2;
@Value("#{'${test.t2}'.substring(1,'${test.t2}'.length()-1)}")
String s3;