zoukankan      html  css  js  c++  java
  • spring boot--@Value注解失效

    接手一个任务开发预警邮件需求,计划将邮件信息(hostName,用户名,密码,发送方,接受方等)设置为可配置变量,配置在配置中心,使用@Value注解获取配置,如下:

    @Value("${warning.email.hostName}")
    private  String hostName;
    
    @Value("#{'${warning.email.receivers}'.split(',')}")
    private  List<String> receivers;
    
    @Value("${warning.email.userName}")
    private  String userName;
    
    @Value("${warning.email.passWord}")
    private  String passWord;
    
    @Value("${warning.email.sendFrom}")
    private  String sendFrom;

    以上为正确配置方式,发生错误的情况是将这些变量全部声明为了静态变量,导致取值全部为空:

    @Value("${warning.email.hostName}")
    private  static String hostName;

    上网查询了下使用@Value的注意事项:

    1.不能作用于静态变量(static);

    2.不能作用于常量(final);

    3.不能在非注册的类中使用(类需要被注册在spring上下文中,如用@Service,@RestController,@Component等);

    4.使用这个类时,只能通过依赖注入的方式,用new的方式是不会自动注入这些配置的。

  • 相关阅读:
    你读了该博客中哪些超链接?有何感想
    最理想的师生关系是健身教练和学员的关系,在这种师生关系中你期望获得来自老师的哪些帮助?
    1500802028 王莉娟
    解码方法
    N皇后问题
    两个链表的交叉
    全排列
    交叉字符串
    翻转链表
    爬楼梯
  • 原文地址:https://www.cnblogs.com/yanl55555/p/12541497.html
Copyright © 2011-2022 走看看