关闭

手动从spring BeanFactory 获取bean (二)

标签: springbeanstringclassimportobject
7410人阅读 评论(1) 收藏 举报
分类:

自己的类 实现org.springframework.beans.factory.BeanFactoryAware 接口  

BeanFactoryAware 接口中只有一个方法  setBeanFactory(BeanFactory beanFactory)

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;

public class SpringBeanFactory implements BeanFactoryAware {

	private static BeanFactory beanFactory;
	
	public static Object getBean(String beanName) {
		 return beanFactory.getBean(beanName);
	}
	
	public static <T> T getBean(String beanName, Class<T> clazs) {
		 return clazs.cast(getBean(beanName));
	}
	
	public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
		SpringBeanFactory.beanFactory = beanFactory;
	}
}


applicationContext.xml

<bean id="springBeanFactory" class="com.xx.service.util.SpringBeanFactory" />

遗留一个问题

spring 容器什么时候 会调用BeanFactoryAware 实现类  也就是说调用SpringBeanFactory   setBeanFactory方法 ?

0
0
查看评论

Spring获取bean方式(BeanFactory和ApplicationContext)

Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的Java对象成为可能,应用上下文(com.springframework.context.Ap...
  • z69183787
  • z69183787
  • 2012-11-25 13:04
  • 8740

BeanFactory 与 FactoryBean的区别及FactoryBean详解

原文地址:http://blog.csdn.net/is_zhoufeng/article/details/38422549 首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混 BeanFactory: 以Factory结尾,表示它是一个...
  • u014604403
  • u014604403
  • 2016-01-14 10:37
  • 8716

【Spring4揭秘 BeanFactory】基本容器-BeanFactory

控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。 本章介绍第一个基本容器BeanFactory一、 BeanFa...
  • u011179993
  • u011179993
  • 2016-06-11 19:55
  • 3828

简单实现Spring中BeanFactory原理

上一篇文章介绍了Java反射机制在Spring IOC中的应用,知道了BeanFactory底层的实现原理。 原理搞懂了,对Spring IOC理解起来也很容易。 先来看看Java代码获取Spring中Bean的代码(一共有五种方式,这里只展示其中一种方法): 有没有发现上面的代码与利用反射实现...
  • mlc1218559742
  • mlc1218559742
  • 2016-10-10 11:22
  • 2738

spring手动注册bean,移除bean,获取bean

注意applicationContext.xml文件的路径配置,按自己项目spring配置文件的路径做相应的调整import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.bea...
  • zhaozhirongfree1111
  • zhaozhirongfree1111
  • 2017-06-09 16:11
  • 2339

Spring核心之BeanFactory 一张图看懂getBean全过程

Spring通过资源加载器加载相应的XML文件,使用读取器读取资源加载器中的文件到读取器中,在读取过程中,解析相应的xml文件元素,转化为spring定义的数据结BeanDefinition,把相应的BeanDefinition注册到注册表中。注册表中包含的BeanDefinition的数据结构,没...
  • baidu_33116785
  • baidu_33116785
  • 2016-09-06 14:41
  • 1443

Spring手动获取指定Bean

起因由于项目需要把一个项目的某个功能移植到另一个项目中,但是两个项目结构不同,新写的接口不是被Spring容器管理的,没办法在接口中使用@Autowired注解自动注入Serivice(Ps.我这里说的接口是对外接口,不是Java中的interface,实际上是一个类),只能尝试手动注入。在网上查了...
  • Eden_M516
  • Eden_M516
  • 2017-06-16 17:18
  • 1849

手动获取SpringBean

最近在做项目的时候我发现一个问题:Spring的IOC容器不能在Web中被引用(或者说不能被任意地引用)。我们在配置文件中让Spring自动装配,但并没有留住ApplicationContext的实例。我们如果希望在我们的项目中任何位置都能拿到同一个ApplicationContext来获取IOC容...
  • lipei1220
  • lipei1220
  • 2016-03-25 10:27
  • 2233

Spring获取bean工厂的两种方法

从ApplicationContex 应用上下文容器中获取bean和从bean工厂容器中获取bean 具体案例: //从ApplicationContext中取bean ApplicationContextac=new ClassPathXmlApplicationContext("...
  • binbin199604
  • binbin199604
  • 2017-04-13 09:46
  • 387

Spring中通过实现FactoryBean接口获取bean实例

1:Car package com.bean.factorybean; public class Car { private String brand;   private int price; public Car() { System.out.println(&qu...
  • pangqiandou
  • pangqiandou
  • 2017-03-04 22:11
  • 895
    个人资料
    • 访问:998131次
    • 积分:8530
    • 等级:
    • 排名:第2749名
    • 原创:83篇
    • 转载:10篇
    • 译文:6篇
    • 评论:340条
    博客专栏
    文章分类
    最新评论