spring三种实例化Bean的方式

Spring 提供配置Bean 三种实例化方式

1. 使用类构造器实例化(默认无参数)

 

则在配置文件中配置:

<bean id="bean1" class="cn.itcast.spring.b_instance.Bean1"></bean>

此时spring容器会调用Bean1的无参构造器实例化Bean1.

这种方式也是开发中最常用的.

========================================

 

2. 使用静态工厂方法实例化(简单工厂模式)

 

/**

 * 静态工厂方法进行实例化

 */

publicclass Bean2 {

}

/**

 * Bean2 工厂类

 */

publicclass Bean2Factory {

    publicstatic Bean2 getBean2() {

       System.out.println("静态工厂方法执行...");

       returnnew Bean2();

    }

}

此时在spring配置文件中配置Bean2的方式如下:

         <bean id="bean2" class="cn.itcast.spring.b_instance.Bean2Factory"                                    

                     factory-method="getBean2">

         </bean>

其中:此时的class属性值是静态工厂方法类的完全限定名.

factory-method="getBean2"是静态工厂方法的方法名.

========================================

3. 使用实例工厂方法实例化(工厂方法模式)

/**

 * 实例工厂方法

 */

publicclass Bean3 {

}

/**

 * Bean3的工厂

*/

publicclass Bean3Factory {

    public Bean3Factory() {

       System.out.println("创建Bean3工厂对象...");

    }

    // 先创建 Bean3Factory实例,再调用 getBean3

    public Bean3 getBean3() {

       System.out.println("实例工厂方法....");

       returnnew Bean3();

    }

}

 

此时在spring配置文件中配置Bean3的方式如下:

<bean id="bean3Factory" class="cn.itcast.spring.b_instance.Bean3Factory"></bean>

//这种方式要配置两个bean

<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean>

这种方式比较麻烦点:必须先创建工厂类Bean3Factory然后再去调用Bean3Factory类的工厂方法.因为Bean3Factory没有静态工厂方法,调用实例方法必须new对象出来.

 

对于第二种创建配置的方式因为静态工厂方法可以不需要创建对象就可以调用,所以不需要创建Bean的工厂类.

实例工厂类必须提供无参构造器,因为spring要实例化实例工厂类.

 

在配置bean3     factory-bean属性值引用spring配置文件中实例工厂类的idname;

factory-method="getBean3"调用工厂类的实例工厂方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值