纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

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

快乐的小三菊   2021-11-18 我要评论
想了解关于@Value注解取不到值的几种情况的相关内容吗,快乐的小三菊在本文为您仔细讲解@Value注解取不到值的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:@Value注解,@Value取不到值,@Value注解取值,下面大家一起来学习吧。

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

@Value取不到值的原因

在springboot中想获取配置文件中的值,一般的方法为

@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层注值

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


相关文章

猜您喜欢

  • Tomcat类加载机制 Tomcat的类加载机制流程及源码解析

    想了解Tomcat的类加载机制流程及源码解析的相关内容吗,张维鹏在本文为您仔细讲解Tomcat类加载机制的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Tomcat类加载机制,tomcat类加载器的加载过程,tomcat类加载器源码,下面大家一起来学习吧。..
  • vue添加electron vue项目中添加electron的详细代码

    想了解vue项目中添加electron的详细代码的相关内容吗,(ღ星辰ღ)在本文为您仔细讲解vue添加electron的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:vue添加electron,vue,electron,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.hss19.cn 【绿色下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式