spring中的高级接口 程序员必须要掌握

spring框架提供了很好的扩展性,提供了一些高级接口,方便用户扩展,其他的项目,包括springboot mybatis等等才会更加方便的整合spring。

1、BeanPostProcessor 这是用户能自己操作spring的bean的接口,具体代表意义的实现类就是spring的aop :AbstractAutoProxyCreator

该类通过重写postProcessBeforeInstantiation方法 提前生成spring的代理对象,继而装载到spring的容器当中

2、BeanFactoryPostProcessor 通过操作beanDefinition 而改变bean的对象 常用的实现: PropertyResourceConfigurer 替换占位符;ConfigurationClassPostProcessor 这个类实现了BeanDefinitionRegistryPostProcessor接口,该接口实现了BeanFactoryPostProcessor接口,是spring中重中之重的类,后续详细讲解 其中的BeanDefinitionRegistryPostProcessor 也就是第三个要提到的接口

3、BeanDefinitionRegistryPostProcessor 该接口能拿到BeanDefinitionRegistry 也就是beanDefinition的注册器,能动态往spring的beanDefinitionMap中注册新的beanDefinition对象ConfigurationClassPostProcessor 类是spring内部的beanFactoryPostProcesssor对象的实现类  也就是在spring容器在启动时候会被调用的类,会调用processConfigBeanDefinitions  大概就是把扫描到的类信息加载到beanDefinitionMap中

4、ImportSelector   springboot的自动装配就是通过import的类实现了该接口,然后读取到spring.factories下面所有的自动装配类  然后通过BeanDefinitionRegistryPostProcessor的处理 加载到spring容器中

5、ImportBeanDefinitionRegistrar mybatis的MapperScan注解的实现  也是通过拿到registry对象,然后通过扫描包 然后设置类为MapperFactoryBean 通过动态代理的方式生成Dao接口的动态代理实现类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值