和普通的变量不一样,static修饰的静态变量直接用@Value注解是获取不到对应的配置文件中的值的,需要通过set函数来设置,且set函数无需用static修饰,
原因:
public static String url;
public static String username;
public static String pwd;
@Value("${db.url}")
public void setUrl(String url) {
DbConnect.url = url;
}
@Value("${db.username}")
public void setUsername(String username) {
DbConnect.username = username;
}
@Value("${db.pwd}")
public void setPwd(String pwd) {
DbConnect.pwd = pwd;
}
原因分析:个人见解-望指正
Spring的@Value依赖注入是依赖set方法,而自动生成的set方法是普通的对象方法,你在普通的对象方法里,都是给实例变量赋值的,不是给静态变量赋值的,static修饰的变量,一般不生成set方法.