洞察提升小程序标签管理,实现高效的金融行业数字化转型
2017
2022-11-22
关于@Value注解取不到值的几种情况
目录@Value注解取不到值的几种情况几种获取不到值的特殊情况如下@Value取不到值的原因可能原因有正确方式
@Value注解取不到值的几种情况
在spring的框架中,我们经常使用@Value注解来获取定义在application.properties的属性值,正常情况下是可以轻松的获取到值的,但是有几种特殊情况下是获取不到值的,在这记录下,以防止以后犯错误。正常获取的用法如下:
在application.properties中定义一个属性值:
正常情况下在代码里面这样Nulluv获取:
@Value("${ftpIP}")
private String ftpIP;
几种获取不到值的特殊情况如下
情况一:使用static或者final修饰了tagValue
@Value("${ftpIP}")
private static String ftpIP;
@Value("${ftpUserName}")
private final String ftpUserName;
情况二:用该注解的类上面没有加注解,即不能被spring管理
public class FTPManagerService {
@Value("${ftpIP}")
private static String ftpIP;
}
情况三:类被new新建了实例,而没有使用@Autowired
public class FTPManagerService {
@Value("${ftpIP}")
private static String ftpIP;
}
public class Test{
/*错误用法*/
FTPManagerService f = new FTPManagerService ();
/*正确用法*/
@Autowired
FTPManagerService f2;
}
@Value取不到值的原因
@Value("${tag}")
private String tagValue;
但是取值时,有时这个tagvalue为NULL,
可能原因有
1.类没有加上@Component(或者@service等)
@Component //遗漏
class TestValue{
@Value("${tag}")
private String tagValue;
}
2.类被new新建了实例,而没有使用@Autowired
@Component
class TestValue{
@Value("${tag}")
private String tagValue;
}
class Test{
...
TestValue testValue = new TestValue()
正确方式
1.使用@Autowired注入
2.在controller层注值
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~