1. 什么是复杂对象
复杂对象:指的就是不能直接通过new构造方法创建的对象
比如: Connection、SqlSessionFactory
2.Spring工厂创建复杂对象的3种方式
(1) 实现FactoryBean接口

如果你规定了泛型就不是需要返回Object,而是返回你规定的泛型对象即可。
public class ConnectionFactoryBean implements FactoryBean<Connection> {
@Override
public Connection getObject() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("");
return conn;
}
@Override
public Class<?> getObjectType() {
return Connection.class;
}
@Override
public boolean isSingleton() {
//return true;
return false;
}
}
applicationContext.xml
<bean id="conn" class="com.daixiang.basic.factorybean.ConnectionFactory"/>
注意 这里的class 是 ConnectionFactory 但是 他返回的不是ConnectionFactory 而是你ConnectionFactory 方法中return 的对象 Connection
如果你想获得ConnectionFactory 这个对象 可以写成
ctx.getBean("&conn")

FactoryBean原理

(2) 实例工厂
(3) 静态工厂
本文详细介绍了Spring中创建复杂对象的三种方式:使用FactoryBean接口、实例工厂和静态工厂。以ConnectionFactoryBean为例,展示了如何通过实现FactoryBean接口来创建Connection对象,并在XML配置文件中进行声明。FactoryBean的工作原理也进行了简单说明。此外,还提及了获取FactoryBean本身对象的方法。
250

被折叠的 条评论
为什么被折叠?



