经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring » 查看文章
spring框架下@value注解属性static无法获取值问题
来源:jb51  时间:2021/11/29 10:50:38  对本文有异议

@value注解属性static无法获取值

  1. @Value("${appId}")
  2. private static String appid;

这样是无法直接获得值的

解决办法

需要这样写

  1. private static String appid;
  2. @Value("${appId}")
  3. public void setAppid(String appId) {
  4. this.appid = appid;
  5. }

@Value注解取不到值的几种情况

spring的框架中,我们经常使用@Value注解来获取定义在application.properties的属性值,正常情况下是可以轻松的获取到值的,但是有几种特殊情况下是获取不到值的,在这记录下,以防止以后犯错误。正常获取的用法如下:

application.properties中定义一个属性值:

正常情况下在代码里面这样获取:

  1. @Value("${ftpIP}")
  2. private String ftpIP;

几种获取不到值的特殊情况如下

情况一:使用static或者final修饰了tagValue

  1. @Value("${ftpIP}")
  2. private static String ftpIP;
  3. @Value("${ftpUserName}")
  4. private final String ftpUserName;

情况二:用该注解的类上面没有加注解,即不能被spring管理

  1. public class FTPManagerService {
  2. @Value("${ftpIP}")
  3. private static String ftpIP;
  4. }

情况三:类被new新建了实例,而没有使用@Autowired

  1. public class FTPManagerService {
  2. @Value("${ftpIP}")
  3. private static String ftpIP;
  4. }
  5. public class Test{
  6. /*错误用法*/
  7. FTPManagerService f = new FTPManagerService ();
  8. /*正确用法*/
  9. @Autowired
  10. FTPManagerService f2;
  11. }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号