Spring工厂创建复杂对象

Spring工厂创建复杂对象(三种方式)

1.什么是复杂对象

简单对象:可以直接通过new方法创建的对象;

UserService
UserDAO
Customer
Person
......

复杂对象:不能通过new构造方法创建的对象。

Connection
SqlSessionFactory
......

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I4H23jIj-1631513788547)(C:\Users\dancerHoan\AppData\Roaming\Typora\typora-user-images\image-20210911212854772.png)]

2.FactoryBean接口----方法一

实现步骤

  • 实现FactoryBean接口:

    实现方法getObject()getObjectType()isSingleton()

    • getObject():用于书写创建复杂对象时的代码。
    • getObjectType():返回创建的复杂对象的类型。
    • isSingleton:用于决定是否单例。
public class ConnectionFactoryBean implements FactoryBean<Connection> {
    // 用于书写创建复杂对象时的代码
    @Override
    public Connection getObject() throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/spring", "root", "1234");
        return conn;
    }

    // 返回创建的复杂对象的类型
    @Override
    public Class<Connection> getObjectType() {
        return Connection.class;
    }

    // 是否单例
    @Override
    public boolean isSingleton() {
        return false; // 每一次都创建新的复杂对象
        // return true; // 只创建一次这种类型的复杂对象
    }
}

return true; // 只创建一次这种类型的复杂对象
}
}
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值