Spring Boot項目中@Value取不到配置文件中的配置參數值
原取值方式如下所示:
@Value("${authox.sql.url}")
private static String url;
@Value("${authox.sql.username}")
private static String user;
@Value("${authox.sql.password}")
private static String password;
@Value("${authox.sql.driver-class-name}")
private static String driver;
產生原因:
- 在SpringBoot中使用@Value只能給普通變量賦值,不能給靜態變量賦值
解決方法:
- 給靜態變量增加一個非靜態的set方法,注意需要把@Value注解寫到對應的set方法上,而不是定義的靜態變量上,如下所示:
@Value("${authox.sql.url}")
public void setUrl(String url) {
JdbcUtils.url = url;
}
@Value("${authox.sql.username}")
public void setUser(String user) {
JdbcUtils.user = user;
}
@Value("${authox.sql.password}")
public void setPassword(String password) {
JdbcUtils.password = password;
}
@Value("${authox.sql.driver-class-name}")
public void setDriver(String driver) {
JdbcUtils.driver = driver;
}
參考:
