静态方法中调用service

啊 这个真心坑,百度到的东西让我试了2天都没结果,还是google到的结果靠谱。
在运维“虞书漂”的时候遇到要在工具类的static方法中调用MessageService发送消息。
现在亲试可行的方法是
Spring.xml配置文件中注册bean -- StaticContextAccessor

@Component
public class StaticContextAccessor {

    private static StaticContextAccessor instance;

    @Autowired
    private ApplicationContext applicationContext;

    @PostConstruct
    public void registerInstance() {
        instance = this;
    }

    public static  T getBean(Class clazz) {
        return instance.applicationContext.getBean(clazz);
    }
}

Spring.xml文件中注册

    

然后在静态方法中就可这样调用

   StaticContextAccessor.getBean(MessageService.class).method();

你可能感兴趣的:(静态方法中调用service)