springmvc路由机制:请求地址->RequestMappingInfo

RequestMappingInfo :创建对象实例时,会循环判断是否时Handler(AbstractHandlerMethodMapping.isHandler)是的话检测方法构建RequestMappingInfo

1.RequestMappingInfo 生成

AbstractAutowireCapableBeanFactory#doCreateBean->RequestMappingHandlerMapping#afterPropertiesSet
->AbstractHandlerMethodMapping#initHandlerMethods->AbstractHandlerMethodMapping#processCandidateBean
->AbstractHandlerMethodMapping.isHandler
AbstractHandlerMethodMapping#detectHandlerMethods->AbstractHandlerMethodMapping#registerHandlerMethod

	/**
	 * Mapping注册中心,可以理解为办事处
	 */
	class MappingRegistry {
		/**
		 * T是匹配条件的对象。MappingRegistration是注册的信息,可以理解为你要做事情。
		 * 对于RequestMappingHandlerMapping,T就是RequestMappingInfo
		 * MappingRegistration包括信息:RequestMappingInfo、HandlerMethod、directPaths、mappingName、corsConfig
		 */
		private final Map<T, MappingRegistration<T>> registry = new HashMap<>();
		/**
		 * Map<path, RequestMappingInfo>
		 */
		private final MultiValueMap<String, T> pathLookup = new LinkedMultiValueMap<>();

		/**
		 * Map<mappingName, List<HandlerMethod>>
		 */
		private final Map<String, List<HandlerMethod>> nameLookup = new ConcurrentHashMap<>();
	}

2.一个RequestMa ppingInfo 对应一个contrller中的方法【HandlerMethod】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值