spring创建复杂对象的三种方式

什么是复杂对象?
复杂对象是指我们通过new创建不了的对象,此对象的创建还需要别的条件,如jdbc的Connection、mybatis的sqlSesscionFactory。

一、factoryBean接口 :spring提供的原生创建复杂对象的方式

实现spring提供的facrotyBean接口,实现FactoryBean三个方法:

public class XxxFactoryBean implements FactoryBean {
    @Override
    public Object getObject() throws Exception {
        return null;
    }

    @Override
    public Class<?> getObjectType() {
        return null;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}

1、getObject():该方法用于返回复杂对象的实例,在该方法中添加创建复杂对象的代码。
2、getObjectType():返回复杂对象的class。
3、isSingleton():返回true或false,true指单例创建该对象,false多例。

二、实例工厂

区别:
由实例创建出复杂对象。
好处:
1.避免spring框架的倾入(不需要spring提供FantoryBean接口了)
2.整合遗留系统

    <!-- 实例工厂创建复杂对象 -->
    <!-- 实例工厂 -->
    <bean id="connFactory" class="com.sms.factory.ConnectionFactory"></bean>
    <!-- 对实例的引用后调用实例方法创建 复杂对象 -->
    <bean id="conn" factory-bean="connFactory" factory-method="getConn"></bean>

三、静态工厂

区别:
由类调用静态方法创建复杂对象。少了一步创建工厂实例bean。

    <!--静态工厂-->
    <bean id="conn" class="com.sms.factory.StaticConnFactory" factory-method="getConn"></bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值