我正在尝试加载 keystore 并检查过期日期。所以说我有两个值
@Value(“${connections.keystoreA}”)
private String keystoreA;
@Value(“${connections.keystoreB}”)
private String keystoreB;
有些环境具有其中一个值,有些环境则两者都有。我的问题是,除了使用默认值之外,是否有任何方法可以防止在运行时失败(如果其中一个值不存在)?
编辑:我也想这样做,以便将来可以添加其他配置,keystoreC、keystoreD 等
最佳答案
您可以在 application.properties
中执行 if/else 并设置默认值。
例如,您的 application.properties 可能类似于:
my.connections.keystoreA=${connections.keystoreA:defaultA}
my.connections.keystoreB=${connections.keystoreB:defaultB}
想法是:如果connections.keystoreA
不存在,则将注入(inject)字符串defaultA
。
之后,您可以注入(inject)值:
@Value("${my.connections.keystoreA}")
private String keystoreA;
@Value("${my.connections.keystoreB}")
private String keystoreB;
这样做,spring就不会在运行时失败。
另一种选择是在必要时直接在字段中使用此 if/else 来设置默认值:
@Value("${connections.keystoreA:defaultA}")
private String keystoreA;
@Value("${connections.keystoreB:defaultB}")
private String keystoreB;
关于java - 防止空 @Value 的运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51029636/