详解在SpringBoot应用中获取应用上下文方法
1、定义上下文工具类:
packagecom.alimama.config; importorg.springframework.context.ApplicationContext; /** *上下文获取工具类 *@authormengfeiyang * */ publicclassSpringContextUtil{ privatestaticApplicationContextapplicationContext; publicstaticvoidsetApplicationContext(ApplicationContextcontext){ applicationContext=context; } publicstaticObjectgetBean(StringbeanId){ returnapplicationContext.getBean(beanId); } }
2、在启动入口类中注入applicationContext
packagecom.alimama; importorg.springframework.boot.SpringApplication; importorg.springframework.boot.autoconfigure.SpringBootApplication; importorg.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; importorg.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; importorg.springframework.boot.context.properties.EnableConfigurationProperties; importorg.springframework.context.ApplicationContext; importorg.springframework.context.annotation.ComponentScan; importcom.alimama.config.SbootConfig; importcom.alimama.config.SpringContextUtil; importcom.alimama.config.ZKConfig; importcom.alimama.quartz.InitTask; /** *springboot启动入口类 *@authormengfeiyang * */ @ComponentScan @SpringBootApplication @EnableConfigurationProperties({ZKConfig.class,SbootConfig.class}) publicclassSbootApplicationimplementsEmbeddedServletContainerCustomizer{ publicstaticvoidmain(String[]args){ ApplicationContextapplicationContext=SpringApplication.run(SbootApplication.class,args); SpringContextUtil.setApplicationContext(applicationContext); } @Override publicvoidcustomize(ConfigurableEmbeddedServletContainercontainer){ } }
3、调用方法
packagecom.alimama.quartz; importjava.io.IOException; importorg.phoenix.api.action.IInterfaceAPI; importorg.phoenix.api.action.InterfaceAPI; importorg.quartz.Job; importorg.springframework.beans.factory.annotation.Autowired; importcom.alimama.config.SpringContextUtil; importcom.alimama.dto.TaskBean; importcom.alimama.service.IConfigService; importcom.alimama.service.impl.ConfigService; /** *任务执行者 * */ publicclassTaskHandlerimplementsJob{ privateConfigServiceconfigService=(ConfigService)SpringContextUtil.getBean("configService"); privateIInterfaceAPIinterf=newInterfaceAPI(); @Override publicvoidexecute(JobExecutionContextarg0){ StringwatchDogServer=configService.getwatchDogServer(); System.out.println(watchDogServer); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。