ApplicationContextAware快速获取bean
admin
2023-02-19 03:40:05
0

ApplicationContext的BeanFactory 的子类, 拥有更强大的功能,ApplicationContext可以在服务器启动的时候自动实例化所有的bean,而 BeanFactory只有在调用getBean()的时候才去实例化那个bean, 这也是我们为什么要得到一个ApplicationContext对象, 事实上Spring2相关的web应用默认使用的是ApplicationContext对象去实例化bean, 换一句话说, 在服务器启动的时候,Spring容器就已经实例化好了一个ApplicationContext对象,所以我们要在老的代码里尝试去获取这个对象。 但是如何才能得到一个ApplicationContext对象呢?方法很多,最常用的办法就是用ClassPathXmlApplicationContext, FileSystemClassPathXmlApplicationContext, FileSystemXmlApplicationContext 等对象去加载Spring配置文件,这样做也是可以, 但是在加载Spring配置文件的时候,就会生成一个新的ApplicaitonContext对象而不是Spring容器帮我们生成的哪一个, 这样就产生了冗余, 所以我们在这里不采用这种加载文件的方式,我们使用ApplicationContextAware让Spring容器传递自己生成的ApplicationContext给我们, 然后我们把这个ApplicationContext设置成一个类的静态变量, 这样我们就随时都可以在老的代码里得到Application的对象了。(此段说明转自:http://blog.csdn.net/kouwoo/article/details/43405109)


@Component
public class SpringUtils implements ApplicationContextAware {

	private static ApplicationContext applicationContext;
	
	@Override
	public void setApplicationContext(ApplicationContext arg0) throws BeansException {
		applicationContext = arg0;
	}

	public static Object getObject(String id) {
		Object object = null;
        object = applicationContext.getBean(id);
        return object;
	}
	
}


相关内容

热门资讯

今日重大发现“随便跑胡子可以开... 有 亲,根据资深记者爆料随便跑胡子是可以开挂的,确实有挂(咨询软件无需打...
终于懂了“打两圈麻将辅助器?”... 您好:打两圈麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
【第一财经】“人人乐麻将到底有... 【第一财经】“人人乐麻将到底有挂吗?”(原来真的有挂)您好,人人乐麻将这个游戏其实有挂的,确实是有挂...
今日重大发现“微壳字牌可以开挂... 您好:微壳字牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
【今日要闻】“天天福建十三张到... 有 亲,根据资深记者爆料天天福建十三张是可以开挂的,确实有挂(咨询软件无...
终于明白“福建众娱开挂神器?”... 家人们!今天小编来为大家解答福建众娱透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...
玩家最新攻略“德娴麻将怎么装挂... 您好:德娴麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
【第一财经】“桂麻圈可以开挂吗... 您好:桂麻圈这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏中...
【第一财经】“九线拉王有挂吗?... 您好:九线拉王这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
【今日要闻】“阿拉斗牌到底有挂... 有 亲,根据资深记者爆料阿拉斗牌是可以开挂的,确实有挂(咨询软件无需打开...