当前位置: 首页 > news >正文

纯净水企业怎样做网站网络营销推广策划步骤

纯净水企业怎样做网站,网络营销推广策划步骤,aspx高性能网站建设,腾讯云网站模板目录 一、背景二、猜测三、源码查看步骤1、创建MapperScannerConfigurer.java2、MapperScan注解3、MapperScannerRegistrar执行registerBeanDefinitions方法4、MapperScannerConfigurer执行postProcessBeanDefinitionRegistry方法5、执行doscan6、设置beanClass7、使用jdk生成代…

目录

  • 一、背景
  • 二、猜测
  • 三、源码查看步骤
    • 1、创建MapperScannerConfigurer.java
    • 2、@MapperScan注解
    • 3、MapperScannerRegistrar执行registerBeanDefinitions方法
    • 4、MapperScannerConfigurer执行postProcessBeanDefinitionRegistry方法
    • 5、执行doscan
    • 6、设置beanClass
    • 7、使用jdk生成代理类

一、背景

在Controller中使用Service,一般是实现Service接口类上添加@Service注解,让实现类注入到SpringIoc容器中,Controller通过@Autowired 从容器中获取,但是在Service实现类中使用@AutoWired 获取Mapper的时候,没有看到Mapper的实现类,带着疑问查看Spring是如何把Mapper接口类型的类注入到Ioc容器中。

二、猜测

Spring的bean生成过程 。 Spring启动过程中,大致会经过如下步骤去生成bean:
扫描@ComponentScan中指定的包路径下的class文件
根据class信息判断是否符合生成对应的BeanDefinition的条件**(接口和抽象类不符合条件)**,如果符合则生成对应的BeanDefinition
在此处,程序员可以利用某些机制去修改BeanDefinition,实现扩展
根据BeanDefinition中的class信息反射生成bean实例
把生成的bean实例放入Spring容器中由此步骤可见,要想生成bean对象,首先需要有BeanDefinition。经过查阅资料发现是MapperScannerConfigurer.java类扫描Mapper,生产BeanDefinition,并把BeanClass设置成MapperFactoryBean,通过MapperFactoryBean生成的代理类。

三、源码查看步骤

1、创建MapperScannerConfigurer.java

springboot自动配置可以有多种方法创建MapperScannerConfigurer.java,我看的是若依框架中通过@MapperScan引入的方式。

2、@MapperScan注解

@MapperScan注解中@Import(MapperScannerRegistrar.class)引入了MapperScannerRegistrar
在这里插入图片描述

3、MapperScannerRegistrar执行registerBeanDefinitions方法

MapperScannerRegistrar实现了ImportBeanDefinitionRegistrar(此接口一般配合@Import使用)接口所以会执行registerBeanDefinitions,registerBeanDefinitions方法中往BeanDefinitionRegistry中添加了MapperScannerConfigurer的类的描述,spring会根据BeanDefinition创建MapperScannerConfigurer。
在这里插入图片描述

4、MapperScannerConfigurer执行postProcessBeanDefinitionRegistry方法

MapperScannerConfigurer实现了BeanDefinitionRegistryPostProcessor(此接口和ImportBeanDefinitionRegistrar区别 )接口会执行postProcessBeanDefinitionRegistry方法,postProcessBeanDefinitionRegistry这个方法会扫描配置的mapper接口路径下所有mapper接口类生成BeanDefinition。
在这里插入图片描述

5、执行doscan

MapperScannerConfigurer的父类ClassPathMapperScanner,爷类ClassPathBeanDefinitionScanner中doscan会根据配置mapper接口路径读取文件生成BeanDefinition类的集合。
在这里插入图片描述

6、设置beanClass

回到ClassPathMapperScanner执行processBeanDefinitions遍历所有beanDefinition集合把beanClass为MapperFactoryBean类型。
在这里插入图片描述

7、使用jdk生成代理类

MapperFactoryBean实现了FactoryBean,所以在Spring创建mapper类时会调用getObject方法,执行流程DefaultSqlSession中getMapper->configuration.getMapper->MapperRegistry.getMapper->MapperProxyFactory.newInstance(sqlSession),使用jdk动态代理生成mapperProxy。
在这里插入图片描述
knownMappers结合中的数据是初始化configuration的时候添加进去的,有兴趣的可以断点查看configuration初始化过程。在这里插入图片描述在这里插入图片描述

http://www.ds6.com.cn/news/81765.html

相关文章:

  • 做二手车按揭的网站广告推广营销网站
  • 网站没备案做阿里妈妈烘焙甜点培训学校
  • 网站建设完善方案顺德搜索seo网络推广
  • 内蒙古网站建设熊掌号安徽网站建设优化推广
  • 文山州建设局网站十大少儿编程教育品牌
  • 雍熙网站建设百度快速排名工具
  • 国家高新技术企业认定有什么用杭州网站优化
  • 什么专业是做网站北京网站优化效果
  • 株洲网站制作公司sem扫描电镜
  • 郧阳网站建设官网seo哪家公司好
  • 建设赌博网站seo矩阵培训
  • ps怎么做网站首页网站做优化
  • 宁波专业网站定制制作服务如何用模板做网站
  • 做网站公司多少钱免费推广网站大全集合
  • 公司网站哪家做的好大数据营销系统
  • 绿色大气网站谷歌关键词排名查询工具
  • 上海网站建设 浦东产品营销推广方案
  • 海口网站建设推广seo建站公司
  • 网站建设公司业务培训网络营销一般月薪多少
  • 织梦怎么做企业网站谷歌seo推广招聘
  • 深圳制作广告宣传片制作宁波正规seo快速排名公司
  • 做网站比特币钱包今日热点事件
  • 上海哪家公司可以做网站广告关键词排名
  • 南宁微信网站制作营销策划书案例
  • 莱芜金点子广告电子版seo服务外包价格
  • wordpress换域名后图片路径不对潍坊seo推广
  • 代做网站转账截图南京seo公司教程
  • web网站开发用什么百度链接提交工具
  • 怎么将网站权重提上去淄博网站推广
  • vue手机网站开发网络广告营销方案策划内容