美文网首页springboot
解决Spring 使用 @Value 取不到值

解决Spring 使用 @Value 取不到值

作者: sT丶 | 来源:发表于2017-08-16 10:30 被阅读2789次

    当在.properties文件中写入 一些值时,我们可以通过在类的属性上使用@Value注解,取到这个值。
    如在配置文件中写入

    user=st
    

    则在类中

    public class Test(){
      @Value("{user}")
      private String user;
    .....
    }
    

    这样可以获取到值。但是根据网上的例子,我一直获取不到,首先根据spring的例子,
    想要使用@Value,必须把当前类加入spring的容器管理, 如果使用注解,就是在类上加入
    @Controller @Service @Component 等容器注解,可是我加入了@Component注解,依然不能获取到值,但是如果是在@Controller 下,则可以。翻阅多篇博客论坛后,终于找到原因。
    原来,使用@Value的类,在spring中,不能直接通过new 操作符来使用,而是应该通过spring的注解 @Autowired 来使用,

    public class Test1(){
      @Autowired
      private Test test;
    
      public void getValue(){
          test.getUser();  //user=st
    }
    .....
    }
    

    这样才能成功通过@Value注解取到配置文件中的值。

    相关文章

      网友评论

        本文标题:解决Spring 使用 @Value 取不到值

        本文链接:https://www.haomeiwen.com/subject/ylabrxtx.html