首页 > 代码库 > spring在xml文件中配置bean的三种方法

spring在xml文件中配置bean的三种方法

一.最常见,也是缺省,是调用spring的缺省工厂类

spring缺省工厂类:org.springframework.beans.factory.support.DefaultListableBeanFactory使用其静态方法preInstantiateSingletons()

配置文件中最普通最基本的定义一个普通bean
<bean id="DvdTypeDAOBean" class="com.machome.dvd.impl.DvdTypeDAO" ></bean>


二.使用用户自定义的工厂类的静态方法进行创建

定义工厂类,返回new实例
public class DvdTypeDAOFactory {
    public static DvdTypeDAO getInstance(){
        return new DvdTypeDAO();
    }
}

这里只是简单的定义了一个工厂类,你可以定义更复杂的:
比如单例类(提高利用效率)
比如含有ThreadLocal属性的类(多线程下解决线程安全问题)

spring配置文件中, bean的class不设要new的类,而是设成工厂类,然后后面加factory-method属性
<bean id="DvdTypeDAOBean" class="com.machome.core.impl.DvdTypeDAOFactory" factory-method="getInstance" />   


三.在spring中建立工厂类的Bean,然后调用该工厂bean建立真正的bean

public class DvdTypeDAOFactory {
    public DvdTypeDAO getInstance(){
        return new DvdTypeDAO();                                    
    }
}

spring配置文件中
<bean id="DvdTypeDAOFactoryBean" class="com.machome.core.impl.DvdTypeDAOFactory" />
这个工厂bean还是被spring的DefaultListableBeanFactory. preInstantiateSingletons创建
<bean id="DvdTypeDAOBean" factory-bean="DvdTypeDAOFactoryBean" factory-method="getInstance" />   


本文出自 “六度空间” 博客,请务必保留此出处http://jasonwalker.blog.51cto.com/7020143/1433725