实现 FactoryBean 接口
编写配置文件
<bean id="conn" class="com.baizhiedu.factorybean.ConnectionFactoryBean"/>
如何获得 FactoryBean 类型的对象?ctx.getBean("&conn")
isSingleton() 方法,返回 true 只会创建一个复杂对象,返回 false 每一次会创建一个新的对象
根据对象的特点,决定是返回 true 还是 false:Connection 对象不能被共用,返回 false(会影响别的对象提交事务);SqlSessionFactory 对象是重量级资源,所以返回单例
MySQL 高版本连接创建时,需要指定 SSL 证书,解决问题的方式:url = "jdbc:mysql://localhost:3306/suns?useSSL=false"
依赖注入(DI)的体会
FactoryBean 是 Spring 中用于创建复杂对象的一种方式,也是 Spring 原生提供的。后续讲解 Spring 整合其他框架会大量应用 FactoryBean
一个简单的遗留系统
<bean id="connFactory" class="com.baizhiedu.factorybean.ConnectionFactory"></bean>
<bean id="conn" factory-bean="connFactory" factorymethod="getConnection"/>