spring配置和管理bean的方式简历概述

1.      写在前面

Spring框架对bean的管理,是通过2个容器管理的即BeanFactory和ApplicationContext。而ApplicationContext其实是BeanFactory的子接口,内容进行了扩展。即然称其为容器则说明它是管理整个框架里的bean的,负责bean的生命周期。

2.      第一种方式。也是框架里常用的方式,实现FactoryBean接口。

我觉得该类更像是对Bean的代理。Spring容器getBean(id)时见到bean的定义是普通class时,就会构造该class的实例来获得bean,而如果发现是FacotryBean接口的实例时,就通过调用它的getObject()函数来获得bean。如果要获取FactoryBean对象,可以在id前面加一个&符号来获取。作用其实是类的代理。

比如:

public class Test implements FactoryBean {
	@Override
	public SysCatRo getObject() throws Exception {
		return new SysCatRo();
	}
	@Override
	public Class getObjectType() {
		return SysCatRo.class;
	}
	@Override
	public boolean isSingleton() {
		return false;
	}
}

ps: SysCatRo是个数据结构体

在getBean(id)时返回的是SysCatRo实例。

3工厂方式:

第二种:静态工厂

对象的创建由静态工厂里的静态类提供,我相信很多同学都用过。我们这里简单举个spring里配置静态工厂方式,比如有个TestStaticFacotry类里有个getTest()静态方法

/**
     * 静态工厂方法
      * @param name
     * @return
     */
    public static SysCatRo getTest(String name) {
        return new SysCatRo(name);
     }

那么要applicationContext.xml里可如下配置:


        


那么在程序里可用test1创建很多bean.

 

第三种:实例工厂方法

比如有个TestFacotry类里有个getTest()方法

/**
     * 工厂方法
      * @param name
     * @return
     */
    public SysCatRo getTest(String name) {
        return new SysCatRo(name);
     }

那么在applicationContext.xml里可如下配置:


   

   

    

    

        

    



你可能感兴趣的:(技术总结)