使用ApplicationContextAware得到一个ApplicationContext对象
来源:互联网 发布:net.sft.json包 下载 编辑:程序博客网 时间:2024/05/18 00:27
ApplicationContextHelper
- import org.springframework.beans.BeansException;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.ApplicationContextAware;
- /**
- *
- * @author MinFei
- */
- public class ApplicationContextHelper implements ApplicationContextAware {
- private static ApplicationContext appCtx;
- /**
- * 此方法可以把ApplicationContext对象inject到当前类中作为一个静态成员变量。
- * @param applicationContext ApplicationContext 对象.
- * @throws BeansException
- */
- @Override
- public void setApplicationContext( ApplicationContext applicationContext ) throws BeansException {
- appCtx = applicationContext;
- }
- /**
- * 这是一个便利的方法,帮助我们快速得到一个BEAN
- * @param beanName bean的名字
- * @return 返回一个bean对象
- */
- public static Object getBean( String beanName ) {
- return appCtx.getBean( beanName );
- }
- }
配置 ApplicationContextHelper
- <bean id="SpringApplicationContext" class="com.company.helper.ApplicationContextHelper"></bean>
使用些列方法去得到一个bean
- BeanExample beanExample= (BeanExample )ApplicationContextHelper.getBean( "beanExample" );
这样我们在老代码里取得了一个Spring配置的对象, 然后我们就可以自由自在的在老代码里边享受Spring提供的功能。
1.编写一个JavaBean实现ApplicationContextAware方法
Test.java
public class Test implements ApplicationContextAware {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setApplicationContext(ApplicationContext context)
throws BeansException {
Test test = (Test) context.getBean("test");
System.out.println("内部打印 : " + test.getName());
}
}
如果实现了ApplicationContextAware接口,在Bean的实例化时会自动调用setApplicationContext()方法
2.把这个JavaBean加入Spring的管理
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="test" class="com.wj.spring.lesson3.applicationcontextaware.Test">
<property name="name" value="hello"></property>
</bean>
</beans>
3.测试这个JavaBean
TestBean.java
public class TestBean {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Test hb = (HelloBean)context.getBean("test");
}
}
4.查看控制台打印的结果
内部打印 : hello
从数据结果可以看出setApplicationContext()方法确实在bean的初始化过程中被调用了
- Spring - 使用ApplicationContextAware得到一个ApplicationContext对象
- Spring - 使用ApplicationContextAware得到一个ApplicationContext对象
- 使用ApplicationContextAware得到一个ApplicationContext对象
- Spring - 使用ApplicationContextAware得到一个ApplicationContext对象
- Spring - 使用ApplicationContextAware得到一个ApplicationContext对象
- Spring - 使用ApplicationContextAware得到一个ApplicationContext对象
- Spring - 使用ApplicationContextAware得到一个ApplicationContext对象
- 使用ApplicationContextAware得到一个ApplicationContext对象
- 使用ApplicationContextAware得到ApplicationContext
- ApplicationContextAware得到ApplicationContext的原理
- Spring,通过ApplicationContextAware获取ApplicationContext
- Spring 使用ApplicationContextAware (bean中获取在ApplicationContext的引用)
- 得到一个BitMap对象
- 通过ApplicationContextAware接口来保存Spring ApplicationContext
- ApplicationContextAware的使用
- Spring中的ApplicationContextAware使用
- ApplicationContextAware的使用
- ApplicationContextAware使用理解
- js中常用数组方法concatjoinpushpopslicesplice
- C# devexpress comboboxedit Textedit 只读不可输入
- java潜艇大战游戏源码项目
- sql 语句优化
- 【构造】Codeforces Round #289 509C Sums of Digits
- 使用ApplicationContextAware得到一个ApplicationContext对象
- web应用体系结构
- [Android] 自动打包批处理的实现
- O2O深入农村市场到底有没有戏?
- 最近亚马逊的订单都推迟到2月20号后发货了,见鬼
- 最有效率地戒掉晚睡强迫症(熬夜强迫症、假象失眠症等等)
- C# web、winform全局异常回调
- CI配置多目录 (以前台 后台,两个应用为例
- 让你的应用在不同状态(debug, release)有不同的图标