zoukankan      html  css  js  c++  java
  • Springboot学习之 使用@Value()注解给类静态属性赋值

    最近在做项目时,需要要工具类中对属性进行赋值,里面有过期时间和秘钥,因为这两个都是相对固定不会变动的东西,所以配在配置文件 或者数据库配置表最好,这边使用的是配置文件(application.yml),然后通过@Value()属性注入到对应的属性中。

       刚开始在做的时候,启动项目后发现通过使用@Value注解对这两个属性进行赋值,结果两个都注不进去。
    

    这个让我很苦恼,通过查找资料。找到了通过set的办法进行注入,并成功。

    解决办法:

    1.将这两个私有属性的set方法从私有变成公开(private -->>> public);

    2.生成这两个静态属性的set方法;

    3.将原来在静态属性上的@Value() 注解改到设在 set方法上;

    4.去除这两个静态属性set方法的static关键字

    类上面的@Compoent 注解一定要有。

    最终结果如下:

    @Component
    public class JwtUtil {

    /**
     * 过期时间,单位毫秒
     */
    private static long EXPIRE_TIME ;
    
    /**
     * token秘钥
     */
    private static String TOKEN_SECRET ;
    
    @Value("${jwt.expire-time}")
    public void setExpireTime(long expireTime) {
        EXPIRE_TIME = expireTime;
    }
    
    @Value("${jwt.secret}")
    public void setTokenSecret(String tokenSecret) {
        TOKEN_SECRET = tokenSecret;
    }
    
    /***省去其他无关代码***/
    

    }
    改完后,重新启动项目,调用该工具类,可以得到对应的配置值。

  • 相关阅读:
    wmware虚拟机的克隆
    解决SecureCRT无法用非root账号登录ssh
    Docker容器操作
    Docker镜像操作
    Docker的安装和启动
    linux安装tomcat
    POJ 2456 Aggressive cows ( 二分搜索)
    POJ 1064 Cable master (二分查找)
    2008 APAC local onsites C Millionaire (动态规划,离散化思想)
    贿赂囚犯 Bribe the prisoners ( 动态规划+剪枝)
  • 原文地址:https://www.cnblogs.com/javalinux/p/14115750.html
Copyright © 2011-2022 走看看