SpringBoot中ApplicationContextAware的作用和应用场景
ApplicationContextAware
是一个接口,Spring 容器中的 bean 可以实现这个接口来获取当前应用上下文(ApplicationContext)的引用。这个接口只有一个需要实现的方法 setApplicationContext(ApplicationContext applicationContext)
,它会在 bean 初始化时被调用,传入Spring的上下文。
应用场景:
- 获取容器中的任何一个bean,通过applicationContext.getBean(beanId)。
- 获取容器中定义的所有bean。
- 获取bean的类型。
- 获取bean的别名。
- 获取自定义的环境变量等。
示例代码:
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class MyApplicationContextAware implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
MyApplicationContextAware.context = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return context;
}
}
在需要使用ApplicationContext的地方,可以通过调用 MyApplicationContextAware.getApplicationContext()
来获取。
评论已关闭