有时候把值设置在.yml或者.properties。在用到的时候会通过@Value
去取。
但是 static静态修饰的变量是无法通过@Value
取到的,例如下面:
/**
* 是否测试模式(1:测试 2生产)
*/
@Value("${NEOCISDEMO1: 1}")
public static String ISDEMO ;
ISDEMO
的值是NULL
,即使赋予了默认值 1
。
如果要设置移一定要设置static,可以通过set值的方式赋值:
public static String getISDEMO() {
return ISDEMO;
}
@Value("${NEOCISDEMO1: 1}")
public void setISDEMO(String iSDEMO) {
this.ISDEMO = iSDEMO;
}
可以通过区分ISDEMO
的值,分别赋值,区分不同的变量。 @PostConstruct
注解在微服务启动的时候会执行,可以利用这个初始化值。
@PostConstruct
public void init(){
log.info("初始化数据,isdemo的值:{}",IConstants.getISDEMO());
if (IConstants.getISDEMO().equals("2")) {
log.info("现在是生产模式");
}else {
log.info("现在是测试模式");
}