关于Spring中ApplicationContext加载机制中BeanFactory类
2015-12-21 11:01
330 查看
最近看到使用的BeanFactory是关于Spring中ApplicationContext加载机制的,同时深入地查看了BeanFactory
类.
package com.chinasofti.whb.util.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class BeanFactory implements ApplicationContextAware {
// Spring应用上下文环境
private static ApplicationContext applicationContext;
/**
* 实现ApplicationAware接口的回调方法,设置上下文环境
*
* @param application
*/
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// BeanFactory.applicationContext = applicationContext;
this.applicationContext = applicationContext;
}
/**
* return applicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 获取对象
*
* @param name
* @return Object
* @throws BeansException
*/
public static Object getBean(String name) throws BeansException {
checkApplication();
return applicationContext.getBean(name);
}
/**
* 获取对象
*
* @param name
* @param requiretype
* @return Object
* @author BeansException
*/
public static Object getBObject(String name, Class requiretype)
throws BeansException {
checkApplication();
return applicationContext.getBean(name, requiretype);
}
public static void cleanApplication() {
applicationContext = null;
}
/**
* 检查spring注入
*/
public static void checkApplication() {
if (applicationContext == null) {
throw new IllegalStateException("Spring未注入,请在配置文件中注入");
}
}
}
类.
package com.chinasofti.whb.util.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class BeanFactory implements ApplicationContextAware {
// Spring应用上下文环境
private static ApplicationContext applicationContext;
/**
* 实现ApplicationAware接口的回调方法,设置上下文环境
*
* @param application
*/
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// BeanFactory.applicationContext = applicationContext;
this.applicationContext = applicationContext;
}
/**
* return applicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 获取对象
*
* @param name
* @return Object
* @throws BeansException
*/
public static Object getBean(String name) throws BeansException {
checkApplication();
return applicationContext.getBean(name);
}
/**
* 获取对象
*
* @param name
* @param requiretype
* @return Object
* @author BeansException
*/
public static Object getBObject(String name, Class requiretype)
throws BeansException {
checkApplication();
return applicationContext.getBean(name, requiretype);
}
public static void cleanApplication() {
applicationContext = null;
}
/**
* 检查spring注入
*/
public static void checkApplication() {
if (applicationContext == null) {
throw new IllegalStateException("Spring未注入,请在配置文件中注入");
}
}
}
相关文章推荐
- 在Android中读取文件
- Android网络判断知识小结
- android camera HAL v3.0概述
- iOS常用加密方法三种
- Android camera子系统HAL层介绍集锦
- 产品策划四:App升级系统策划方案
- android camera接口介绍
- Android ListView圆角
- Android编程中activity的完整生命周期实例详解
- 如何查看Android keystore 信息
- Android ListView的设计与使用 《第一行代码》
- iOS __block用法
- iOS开发之KVC/KVO
- Android之sqlite数据库的简单使用
- 如何在Windows 7平台搭建Android(eclipse) Cocos2d(c++)开发环境
- android在SD卡不同目录下获取文件
- iOS 中使用GCD怎么让两个线程执行完结束后再去执行另一个线程
- android多国语言包命名规则
- android中关于图片分享到QQ或者微信,朋友圈及其他(免SDK)
- iOS动画