/**
*
* Token 工具类
*/
@Component // 关键1,将该工具类注册为组件, 加粗!!!
public class TokenUtil {
@Autowired
private TokenRepository tokenRepository;
@Autowired
private TokenService tokenService;
private static SimpleDateFormat df =
new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
private int dueTime = 86400000;
public static TokenUtil tokenUtil; // 关键2
public TokenUtil() {
}
// 关键3
@PostConstruct
public void init() {
tokenUtil = this;
tokenUtil.tokenRepository = this.tokenRepository;
}
解决办法
通过添加以下三个关键的地方,可以解决该问题
关于@PostConstruct:被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
这样一来,就能在TokenUtils
工具类中,通过tokenUtil.tokenRepository
来调用相关的spring data jpa的函数:
可以看到这样改完以后,tokenUtil.tokenRepository
不是null
原文地址:https://blog.csdn.net/qq_35056292/article/details/78430777