详解在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);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。