Spring的@Value
可以方便將properties檔中的設定值注入至程式內,如果注入的key不存在於properties檔,可透過設定預設值來避免null造的錯誤。
如果是用placeholder佔位符@Value("${ ... }")
語法,預設值放在冒號:
後面。
@Component
public class AppProperties{
@Value("${app.username:user123}")
private String username;
@Value("${app.security.enable:true}")
private boolean isSecurityEnabled;
@Value("${app.page.size:20}")
private int pageSize;
...
}
如果是用SpEL語法@Value("#{ systemProperties['...'] }")
,預設值放在Elvis Operator(貓王運算子)?:
後面。
@Component
public class AppProperties{
@Value("#{systemProperties['app.username'] ?: 'user123'}")
private String username;
@Value("#{systemProperties['app.security.enable'] ?: true}")
private boolean isSecurityEnabled;
@Value("#{systemProperties['app.page.size'] ?: 20}")
private int pageSize;
...
}
參考:
沒有留言:
張貼留言