mybatis源码,前置技术点(一)

本文探讨了Spring如何集成Mybatis,重点在于FactoryBean的作用和bean的创建方式。FactoryBean作为特殊的bean,允许自定义创建bean实例并指定返回类型。通过编程式创建bean,如使用BeanDefinitionBuilder,可以将第三方包中的bean纳入Spring管理。Spring通过ImportBeanDefinitionRegistrar在扫描时自定义bean定义。文章还提及了如何在FactoryBean中引入变量来创建所需bean,并注册到Spring容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文先从一个点分析,spring是如何集成mybatis的。

问题

1.mybatis里面创建的实例是怎么被spring管理的?

2. mybatis 里面的FactoryBean到底起什么作用?

bean的创建方式

1.声明式

就是通过我们注解

@Component,或者@bean 或者xml配置等。

2.编程式

就是通过

BeanDefinitionBuilder 创建。
AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
beanDefinition.setBeanClass(HgzFactoryBean.class);
beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(Order.class);
registry.registerBeanDefinition("order", beanDefinition);

 通过这种方式,创建的bean就能被spring 容器管理。

spring是如何引入别的包,并对bean管理。

1.首先我们知道FactoryBean是一种特殊的bean。特殊的地方在于,我们可以在factorybean里面创建bean实例,并且能指定返回类型。

2. 所以我们只要在第三方包里面的要产生的bean,放到自定义的FactoryBean就行。

我们在自定义FactoryBean里面引入一个变量Class,只要我们扫描的对象要创建的都在这里生成,就能创建我们需要的bean。

3.我们可以定义factorybean的创建bean的过程等。

注册bean

注册bean,我们首先想到的是通过

ImportBeanDefinitionRegistrar 首先这个类,在引入@import,就能在创建bean定义的时候,自定义实现。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值