最近在一次项目的重构中,原项目需要在静态方法中调用service,现在需要更换框架,service需要自动注入,无法再静态方法中调用
解决思路:
创建一个当前类的静态变量,创建一个方法,使用@PostConstruct 进行注解,被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。方法中将当前service,调用时直接使用静态变量调用service
代码实例:
@Component
public class AutoLoginUtil {
@Autowired
private IUserService userService;
private static AutoLoginUtil autoLoginUtil;
@PostConstruct
public void init() {
autoLoginUtil = this;
autoLoginUtil.userService = this.userService;
}
public static void autoLogin() {
autoLoginUtil.userService.queryUserAutoLogin();
}
}