博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot获取ApplicationContext的几种方式
阅读量:2217 次
发布时间:2019-05-07

本文共 2049 字,大约阅读时间需要 6 分钟。

工具类

package com.yzj.learn.common.utils;import org.springframework.context.ApplicationContext;public class SpringContextUtil {    private static ApplicationContext applicationContext;    public static void setApplicationContext(ApplicationContext context){        applicationContext=context;    }    public static ApplicationContext getApplicationContext() {        return applicationContext;    }    public static Object getBean(String name){        return applicationContext.getBean(name);    }    public static Object getBean(Class
requiredType){ return applicationContext.getBean(requiredType); }}

第一种写法

@SpringBootApplicationpublic class ServiceCommonApplication {    public static void main(String[] args) {       SpringContextUtil.setApplicationContext( SpringApplication.run(ServiceCommonApplication.class, args));    }}

第二种写法

package com.yzj.learn.common.listeners;import com.yzj.learn.common.utils.SpringContextUtil;import org.springframework.context.ApplicationListener;import org.springframework.context.event.*;public class ContexListener implements ApplicationListener
{ @Override public void onApplicationEvent(ApplicationContextEvent event) { if (event instanceof ContextRefreshedEvent) { SpringContextUtil.setApplicationContext(event.getApplicationContext()); System.out.println("context 刷新"); } if (event instanceof ContextClosedEvent) { System.out.println("context 关闭"); } if (event instanceof ContextStoppedEvent) { System.out.println("context 停止"); } if (event instanceof ContextStartedEvent) { System.out.println("Context 开启"); } }}
@SpringBootApplicationpublic class ServiceCommonApplication {    public static void main(String[] args) {        SpringApplication springApplication=new SpringApplication(ServiceCommonApplication.class);        springApplication.addListeners(new ContexListener());        springApplication.run(args);    }}

第三种写法直接注入

@AutowiredApplicationContext app;

 

转载地址:http://oikfb.baihongyu.com/

你可能感兴趣的文章
探索Redis设计与实现10:Redis的事件驱动模型与命令执行过程
查看>>
分布式系统理论基础1: 一致性、2PC和3PC
查看>>
分布式系统理论基础2 :CAP
查看>>
分布式系统理论基础3: 时间、时钟和事件顺序
查看>>
分布式系统理论基础4:Paxos
查看>>
分布式系统理论基础5:选举、多数派和租约
查看>>
分布式系统理论基础6:Raft、Zab
查看>>
分布式系统理论进阶7:Paxos变种和优化
查看>>
分布式系统理论基础8:zookeeper分布式协调服务
查看>>
搞懂分布式技术1:分布式系统的一些基本概念
查看>>
搞懂分布式技术2:分布式一致性协议与Paxos,Raft算法
查看>>
搞懂分布式技术3:初探分布式协调服务zookeeper
查看>>
搞懂分布式技术4:ZAB协议概述与选主流程详解
查看>>
搞懂分布式技术5:Zookeeper的配置与集群管理实战
查看>>
搞懂分布式技术6:Zookeeper典型应用场景及实践
查看>>
搞懂分布式技术10:LVS实现负载均衡的原理与实践
查看>>
搞懂分布式技术11:分布式session解决方案与一致性hash
查看>>
搞懂分布式技术12:分布式ID生成方案
查看>>
搞懂分布式技术13:缓存的那些事
查看>>
搞懂分布式技术14:Spring Boot使用注解集成Redis缓存
查看>>