在静态方法中应用spring注入的类
最近在一次项目的重构中,原项目需要在静态方法中调用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(); } }