使用ApplicationContextAware得到一个ApplicationContext对象
来源:互联网 发布:php 字符串分割 编辑:程序博客网 时间:2024/05/22 12:55
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使用理解
- windows 7 下安装Oracle 9i 解决方法
- 一个干扰wifi的shell脚本
- 如何处理窗口叠加时的自定义消息路由
- UNDO表空间备份恢复(四)
- 导出到 word 并且具有一定的格式
- 使用ApplicationContextAware得到一个ApplicationContext对象
- linux2.6.32.2 mini2440平台移植-- LCD 显示驱动 ( W35屏 )
- 常用正则规范总结
- js判断是http还是https
- cocoa开发使用Doxygen开发
- HDU4091 Zombie’s Treasure Chest
- iphone 地图 根据地址获取经纬度
- 1.JSTL国际化:界面
- 微软时隔25年后再次更换Logo