spring之BeanFactoryAware接口
来源:互联网 发布:查询Windows激活 编辑:程序博客网 时间:2024/05/22 12:34
要直接在自己的代码中读取spring的bean,我们除了根据常用的set外,也可以通过spring的BeanFactoryAware接口实现,只要实现setBeanFactory方法就可以,
private BeanFactory beanFactory;
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
这样我们就可以直接拿东西用了,如
Object object = beanFactory.getBean(beanName);
我们既然可以通过set来拿到我们要的对象,为什么还要用这个beanFactory呢,道理很简单,因为有些情况是需要动态的去获取对象的,比如说我有10个银行的处理对象,他们都继承了我的BankService对象,但是具体处理的时候要哪家银行的对象呢?这个依赖于用户的选择。你可以注入10个BankService实例,然后用if --else来搞,不过那样太坨了。每增加一家银行你都需要改代码。
通过beanFactory的话,那就一行代码搞定,只要给beanName就OK了,动点脑筋吧beanName配置的有规律点,然后根据用户的银行选择,凑出个beanName,大功告成了!
简单一句话的理解是:beanFactory让你可以不依赖注入方式,随意的读取IOC容器里面的对象,不过beanFactory本身还是要注入的,呵呵
private BeanFactory beanFactory;
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
这样我们就可以直接拿东西用了,如
Object object = beanFactory.getBean(beanName);
我们既然可以通过set来拿到我们要的对象,为什么还要用这个beanFactory呢,道理很简单,因为有些情况是需要动态的去获取对象的,比如说我有10个银行的处理对象,他们都继承了我的BankService对象,但是具体处理的时候要哪家银行的对象呢?这个依赖于用户的选择。你可以注入10个BankService实例,然后用if --else来搞,不过那样太坨了。每增加一家银行你都需要改代码。
通过beanFactory的话,那就一行代码搞定,只要给beanName就OK了,动点脑筋吧beanName配置的有规律点,然后根据用户的银行选择,凑出个beanName,大功告成了!
简单一句话的理解是:beanFactory让你可以不依赖注入方式,随意的读取IOC容器里面的对象,不过beanFactory本身还是要注入的,呵呵
- spring之BeanFactoryAware接口
- spring之BeanFactoryAware接口
- Spring 源码学习之BeanFactoryAware
- spring中多例、BeanFactoryAware、ApplicationContextAware、InitializingBean接口
- Spring的BeanNameAware和BeanFactoryAware接口
- BeanFactoryAware 接口
- Spring IOC学习心得之BeanPostProcessor,BeanNameAware,BeanClassLoaderAware,BeanFactoryAware接口是如何起作用的
- 《Pro Spring》学习笔记之BeanNameAware和BeanFactoryAware
- spring BeanFactoryAWare应用
- Spring—BeanNameAware、BeanFactoryAware
- BeanNameAware接口和BeanFactoryAware接口
- BeanNameAware接口和BeanFactoryAware接口
- BeanNameAware接口和BeanFactoryAware接口
- BeanNameAware接口和BeanFactoryAware接口
- BeanNameAware接口和BeanFactoryAware接口
- BeanNameAware接口和BeanFactoryAware接口
- BeanNameAware接口和BeanFactoryAware接口
- 实现 BeanFactoryAware 接口获取 BeanFactory
- SVG 基础知识汇总
- 游标,存储过程,触发器,事务
- 背景减除是运动目标检测的常用方法,写出三种背景减除方法。
- Ubuntu通过NFS启动OK6410 arm linux系统
- printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换
- spring之BeanFactoryAware接口
- 回答你对ArcGIS Online的疑问?之二
- sharepoint2010同步AD数据包MOSS MA not found
- DataReader 操作方法 可用性强,不占内存
- Hibernate自动生成实体类注解
- android 大图片的部分解码
- java学习 第一节 java的历史
- 液晶时钟效果
- 回答你对ArcGIS Online的疑问?之三