ApplicationContext 代表 Spring IoC 容器,其中包含应用程序创建的所有 Bean。它负责实例化、配置和创建 Bean。
@SpringBootApplication
public class YourApplication{
public static void main(String[] args){
ConfigurableApplicationContext applicationContext = SpringApplication.run(YourApplication.class, args);
applicationContext.getBean("xxx");
}
}
@Component //!!!!
public class YourClass{
@Resource
private ApplicationContext applicationContext;
public void doSome(){
//使用上下文对象
applicationContext.getBean........
}
}
获取ApplicationContext对象,可以通过实现ApplicationContextAware接口:
@Component
public class YourClass{
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext){
this.applicationContext = applicationContext; //给当前类的applicationContext属性赋值
}
public void doSome(){
//使用上下文对象
applicationContext.getBean........
}
}
也可封装成一个工具类:
@Component
public class MyIocUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext){
this.applicationContext = applicationContext; //给当前工具类的applicationContext属性赋值
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
}
此后,在你需要使用上下文对象的地方直接:
MyIocUtils.getApplicationContext()
即可拿到上下文对象。
待续…遇到好的方法再继续整理。