将相本无种,男儿当自强。这篇文章主要讲述如何在手动获取spring中的bean(Spring ApplicationContextAware获取上下文)相关的知识,希望能为你提供帮助。
一、目的
写了一个项目,多个module,然后想在A模块中实现固定的config注入,当B模块引用A时候,能够直接填写相对应的配置信息就行了。但是遇到一个问题,B引用A时候,A的配置信息总是填充不了,获取不到在B中配置好的信息。猜测原因:因为项目的的bean文件没有被统一管理。
【如何在手动获取spring中的bean(Spring ApplicationContextAware获取上下文)】二、ApplicationContextAware 接口
Spring 提供了ApplicationContextAware类,通过它可以获取所有bean上下文。
也就是说,当一个类实现了这个接口之后,这个类就可以方便地获得 ApplicationContext 中的所有bean。
换句话说,就是这个类可以直接获取Spring配置文件中,所有有引用到的bean对象。
三、接口引用
1.工具类SpringContextUtil实现ApplicationContextAware方法,实现
setApplicationContext方法即可
public class SpringContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext; // Spring应用上下文环境@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.applicationContext = applicationContext; }/** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); }}
2.业务调用
public String getConfig() throws IOException { MyConfig myConfig = (MyConfig)SpringContextUtil.getContext().getBean("myConfig"); System.out.println("my config is"+myConfig.toString()); return myConfig.toString(); }
3.MyConfig
只是一个正常properties的配置映射。
推荐阅读
- 阿里春招Android面经
- 20165232第4次实验《Android程序设计》实验报告
- 带领新手快速开发Android App开发视频课程 安卓快速入门教程
- Kotlin打造完整电商APP 模块化+MVP+主流框架
- Android 5.0+高级动画开发 矢量图动画 轨迹动画 路径变换
- HDU-5119 Happy Matt Friends (背包DP,递推枚举)
- Android架构师之路 网络层架构设计与实战
- 使用electron搭建桌面app的简便方法
- 安卓app上架指南