问题:使用配置文件的注解@Value后再构造代码块或构造方法中的值为null
public class ServiceImpl {
@Value("${xxx.xxx.xxx}")
public String url;
{
System.out.println(this.url); // 这里输出null
}
}
解决方法:改用有参构造方法实现
public ServiceImpl(@Value("${xxx.xxx.xx}") String url) {
this.url = url;
System.out.println("====");
System.out.println(this.url); // 这里有值的
}
在Spring框架中,使用@Value注解从配置文件注入值时,如果在构造代码块中直接使用,可能会遇到值为null的问题。这是因为Spring在实例化bean时,构造代码块先于依赖注入执行。解决办法是改用带有@Value注解的构造方法来确保注入的值在对象创建时可用。通过这种方法,可以在构造方法中正确获取到配置的值。
2769

被折叠的 条评论
为什么被折叠?



