Spring项目中value注解,@Value不能够读取到配置文件的值,无法成功注入值的问题汇总及解决

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34458791/article/details/84887157
@Value注解
常规用法
我们都知道通过@Value()注解可以取到我们配置文件的内容,之后我们通过修改配置文件就可以修改我们@Value注解修饰的属性,例如:


我们注解了一个Host:port,因为我们经常需要通过更换地址来改变我们所需要的云端服务器或者数据库地址,而当我们每次改变我们的配置文件就可以通过此方法来改变我们的属性值,而且可以在一个文件中修改多个属性的内容,可以说是一举多得非常方便,同时也不用去修改我们的Java代码更大的提高了效率。但是有时候我们难免会遇到配置了@Value但是取不到我们想要的配置文件中的值的情况。

想要使用我们的配置文件首先要在Spring中将我们的配置文件加载进去

第一种加载方式



        contextConfigLocation
        classpath*:bean/spring-web.xml
    


        org.springframework.web.context.ContextLoaderListener
    


第二种加载方式


       
           
                classpath:cfg/db/mysql.properties
                classpath:config.properties
                classpath:cfg/db/mongodb.properties
           

       

   


这是我常用的配置文件的加载方式,但是加载的方法有很多种我们这里主要说其中出现的问题,如果使用了上述加载方式你发现你没有加载到,那么首先先检查你的路径、文件名优培优匹配对,尤其是有同学不小心去掉了Resources的子文件选项;其次需要检查你写这段配置的spring文件有没有加载上,当然这都是明显的一些问题。
下面就是我遇到的一些比较隐秘的问题,第一:既然使用要使用@value把值注入,你的属性首先不能是static的,第二:你在使用的方法也不可以是static 的,第三:你使用这些属性的对象一定要自动装配,无论是使用Resource还是Autowired自动装配(区别一个根据名字一个根据类型装配),不可以自己去创建对象,使用spring就是要去使用它的特性去自动装配。而我出现的问题就是第三种加第二种还是对spring的机制认识的不够,还需要多家练习学习。当然不能排除还有其他问题可能引起属性值取不到,也可以在评论区大家一起交流~
文中如有错误、解释不到的地方欢迎指出大家一起进步~
 

你可能感兴趣的:(spring)