首页 > 编程语言 > 详细

Springboot学习之 使用@Value()注解给类静态属性赋值

时间:2020-12-10 17:51:56      阅读:27      评论:0      收藏:0      [点我收藏+]

最近在做项目时,需要要工具类中对属性进行赋值,里面有过期时间和秘钥,因为这两个都是相对固定不会变动的东西,所以配在配置文件 或者数据库配置表最好,这边使用的是配置文件(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;
}

/***省去其他无关代码***/

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

Springboot学习之 使用@Value()注解给类静态属性赋值

原文:https://www.cnblogs.com/javalinux/p/14115750.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!