Spring-----如何将一个对象存到容器中(结合mybatis)

如何将一个对象存到Spring容器中?
有几种办法?
mybatis用的是什么方法

我们平时用的@Component注解的作用是将一个类存到Spring容器中,而不是将对象存到Spring容器中。将类放到Spring容器中,由Spring容器帮它变成一个对象(bean)进行存放。
下面我用一幅图可能会好理解一些。
在这里插入图片描述

这一点在我们自己仿写一个Mybatis的时候可以通过JDK动态代理,将一个接口实例化为一个类,再把类放到Spring容器中去。
第一种方法
通过容器的api context.getBeanFactory().registerSingleton

mybatis不是用这种方法,因为需要手动调用api,这种方法一次只能注入一个,另外开发ssm的时候也没有自己去调用api

第二种方法
@Bean
mybatis也不用这种方法,和第一种方法大同小异

第三种方法
FactoryBean
public class CustomFactoryBean implements FactoryBean{}
1.必须实现spring的接口FactoryBean
2.实现两个方法
3.本身是一个bean
4.返回不同于自身的bean
mybatis使用这种方法,实际上前两种现在也不用。

虽然CustomFactoryBean可以把一个对象注册给Spring,但是需要批量注入dao的情况该怎么解决呢?以及如何把CustomFactoryBean交给spring管理,也就是把类交给Spring管理?(mybatis的特殊需求)
@BEAN不行
@Compenent连一个都无法动态
XML不行,无法批量注入dao
答案是beanDefintion

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值