spring框架下@value注解属性static无法获取值问题

 更新时间:2021年11月29日 08:36:19   作者:qq_37749055  
这篇文章主要介绍了spring框架下@value注解属性static无法获取值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

这样是无法直接获得值的

解决办法

需要这样写

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

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

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

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

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

@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;
}

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

相关文章

  • Java 给PDF签名时添加可信时间戳的方法

    Java 给PDF签名时添加可信时间戳的方法

    这篇文章主要介绍了Java 给PDF签名时添加可信时间戳,关于jar导入的问题,本文给大家带来两种方法,一种是手动导入另一种是maven配置导入,需要的朋友可以参考下
    2021-07-07
  • Spring Boot面试必问之启动流程知识点详解

    Spring Boot面试必问之启动流程知识点详解

    SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手,这篇文章主要给大家介绍了关于Spring Boot面试必问之启动流程知识点的相关资料,需要的朋友可以参考下
    2022-06-06
  • 深入理解以DEBUG方式线程的底层运行原理

    深入理解以DEBUG方式线程的底层运行原理

    说到线程的底层运行原理,想必各位也应该知道我们今天不可避免的要讲到JVM 了。其实大家明白了Java的运行时数据区域,也就明白了线程的底层原理,今天带着大家一步一步DEBUG,来看看线程到底是怎么运行的,顺便把IDEA的DEBUG方法简单讲一下
    2021-06-06
  • 探讨java深拷贝

    探讨java深拷贝

    这篇文章主要针对java深拷贝的相关内容进行解析,帮助大家学习理解java深拷贝,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 使用springboot配置文件yml中的map形式

    使用springboot配置文件yml中的map形式

    这篇文章主要介绍了springboot配置文件yml中的map形式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java String字符串和Unicode字符相互转换代码

    Java String字符串和Unicode字符相互转换代码

    这篇文章主要介绍了Java String字符串和Unicode字符相互转换代码,需要的朋友可以参考下
    2014-10-10
  • Java实现图片合成的示例详解

    Java实现图片合成的示例详解

    前端有一个神器——canvas,这个画布标签可以处理各种图片的合成,可以精确到图片的具体坐标。java后端也有这样的神器,那就是image-combiner,可以很简单的合成图片,感兴趣的可以试一试
    2022-01-01
  • SpringMVC跨服务器上传文件中出现405错误的解决

    SpringMVC跨服务器上传文件中出现405错误的解决

    这篇文章主要介绍了SpringMVC跨服务器上传文件中出现405错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Javaweb 定时器功能代码实例

    Javaweb 定时器功能代码实例

    这篇文章主要介绍了Javaweb 定时器功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 详解Java分布式事务的 6 种解决方案

    详解Java分布式事务的 6 种解决方案

    在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态,本文侧重于其他几项,关于 2PC、3PC 传统事务,网上资料已经非常多了,这里不多做重复,本文通过示例给大家介绍Java分布式事务的 6 种解决方案,一起看看吧
    2021-06-06

最新评论