Spring注解@RequestMapping

可以把类注册为bean的注解

@component 把普通pojo实例化到spring容器中
@controller 控制器(注入服务)
@service 服务(注入dao)
@repository dao(实现dao访问)

增强bean的注解
@RequestMapping指定访问路径 需要搭配@controller使用 如果只有@controller就没有请求路径 如果只有@RequestMapping注解那它找调用方法的对象时会找不到

可以成为bean的只能是component类型

下图是源码 它是从web容器中获取的beanName这个web容器继承了bean工厂 它是返回的当前工厂中所有bean的名字 因为它实现了这个ListableBeanFactory接口 这个ListableBeanFactory接口是bean工厂的扩展点可以得到bean
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这写死的只能识别component类型
在这里插入图片描述
ClassPathBeanDefinitionScanner这个类是用来做扫描的上面的方法在创建ClassPathBeanDefinitionScanner对象的时候就会生效

@RequestMapping
下面是把我们的Controller中的RequestMapping注解的路径和方法进行一一映射保存 下图是从web容器中获取对象(获取beanName)从这可以看出如果web容器中不存在beanName那这个@RequestMapping就没有用了 web容器中的数据一般是从spring ioc容器中获取的

在这里插入图片描述
存储处理器对象如果是beanName就去容器中获取beanName对应的bean的class对象如果不是就直接返回它的Class类型
在这里插入图片描述
之后更新@RequestMapping获取对象实例的源码

根据存储的代码被@RequestMapping注解的方法会放到一个map中key大概是请求地址value是方法名 这里没有实例

Spting 源码图Bean的初始化流程
链接:https://pan.baidu.com/s/14oJ2Z5UzZRdC72S6f-i3OQ
提取码:1234


版权声明:本文为qq_36301061原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。