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;
}
参考: