如果application.properties中缺少一个键,我有一个要求初始化另一个键的值。
例如,我有两个键abc和xyz,其中只有一个在application.properties中可以找到。
但是还有另一个实用程序,它将在我的springboot应用程序出现之前将密钥和值写入application.properties。
所以我需要相应地读取按键。
是否可以从application.properties中读取值,例如,如果存在abc,则要读取的abc值,否则为xyz。
但是我需要将这些值读入同一个java变量中,而不管application.properties中是否存在任何键。
任何潜在客户都将受到高度赞赏。
我的代码:
public class Sample {
public static Integer CONNECT_INACTIVITY_TIME_LIMIT;
public static Integer MAX_NUM_CONNECTION;
@Value("${accessKey.connectionTimeInactivityLimit}")
public void setConnectTimeLimit(Integer CONNECT_INACTIVE_TIME_LIMIT) {
Sample.CONNECT_INACTIVITY_TIME_LIMIT = CONNECT_INACTIVE_TIME_LIMIT;
}
@Value("${accessKey.maxConnectionNumber}")
public void setMaxConnectionNumber(Integer MAX_NUM_CONNECTION) {
Sample.MAX_NUM_CONNECTION = MAX_NUM_CONNECTION;
}
}
答案 0 :(得分:1)
您可以这样做:
@Value("${accessKey.connectionTimeInactivityLimit:${accessKey.maxConnectionNumber}}")
如果第一个属性不存在,则将使用第二个属性分配值。
答案 1 :(得分:0)
您可以这样做:
@Autowired
private Environment env;
@Value("${accessKey.connectionTimeInactivityLimit}")
public void setConnectTimeLimit(Integer CONNECT_INACTIVE_TIME_LIMIT) {
if (env.getProperty("JaccessKey.maxConnectionNumber") != null) {
Sample.CONNECT_INACTIVITY_TIME_LIMIT = env.getProperty("JaccessKey.maxConnectionNumber");
}
Sample.CONNECT_INACTIVITY_TIME_LIMIT = CONNECT_INACTIVE_TIME_LIMIT;
}