静态方法中调用service

2017-08-18  本文已影响0人  pri17

啊 这个真心坑,百度到的东西让我试了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> T getBean(Class<T> clazz) {
        return instance.applicationContext.getBean(clazz);
    }
}

Spring.xml文件中注册

    <bean class="project.system.util.StaticContextAccessor" />

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

   StaticContextAccessor.getBean(MessageService.class).method();
上一篇下一篇

猜你喜欢

热点阅读