通过实现 ApplicationContextAware 接口获取 Spring 上下文

原文:ApplicationContextAware 详解用法

当一个类实现了 ApplicationContextAware 接口之后,这个类就可以方便地获得 ApplicationContext 对象(Spring 上下文)。

Spring 容器在创建 Bean 之后,发现 Bean 实现了 ApplicationContextAware 接口,会自动调用该 Bean 的 setApplicationContext 方法,调用该方法时,会将容器本身(ApplicationContext 对象)作为参数传递给该方法。

案例

封装一个 ApplicationContextUtil,方便从 Spring 容器中获取 Bean。

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class ApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
public static ApplicationContext getApplicationContext(){
return context;
}
/**
* 通过 name 获取 Bean
* @param name beanName
* @return Object
*/
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
public static <T> T getBean(Class<T> requiredType) throws BeansException{
return getApplicationContext().getBean(requiredType);
}
}
posted @   Higurashi-kagome  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示