静态方法中调用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> T getBean(Class<T> clazz) {
        return instance.applicationContext.getBean(clazz);
    }
}

Spring.xml文件中注册

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

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

   StaticContextAccessor.getBean(MessageService.class).method();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,935评论 6 342
  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan阅读 4,199评论 2 7
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 七律•秋思 作者:玥晔一轮秋月冷相侵,淡酒清茶独自斟。落寞无边思过往,闲愁从古到如今。茕茕孑立抬头望,踽踽而行俯首...
    随意诗社阅读 531评论 0 5