
环境:springboot2.2.10.RELEASE
你的处理程序可以不是受容器管理的Bean。这里还应用了SpringMVC相关的态注一些注解,这些注解都可以像Controller中使用一样。册处
Spring容器在启动过程中会将所有的何动Controller处理接口方法都包装成RequestMappingInfo对象然后添加到
RequestMappingHandlerMapping对象的一个集合中。
注:容器默认有很多个HandlerMapping对象,态注具体该如何处理初始化那些类接口是册处通过
AbstractHandlerMethodMapping#isHandler决定,该方法是理请个抽象方法具体是由子类来实现的。
public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMapping implements InitializingBean { protected abstract boolean isHandler(Class<?求接> beanType); }RequestMappingHandlerMapping是AbstractHandlerMethodMapping的子类看看它的实现:
public class RequestMappingHandlerMapping { @Override protected boolean isHandler(Class<?> beanType) { return (AnnotatedElementUtils.hasAnnotation(beanType, Controller.class) || AnnotatedElementUtils.hasAnnotation(beanType, RequestMapping.class)); } }这里判断了当前Bean对象上是b2b供应网否有@Controller注解或者@RequestMapping对象;也就是在容器启动后会将所有的Controller中的接口方法保证注册为RequstMappingInfo对象。
在SpringMVC处理一个请求的知识过程中,有一个流程是点值得解取得相应的HandlerMapping对象。
处理程序能够接收那些参数?何动
JDK 8的java.util.Optional作为方法参数与注释相结合受到支持具有必需属性(例如@RequestParam、@RequestHeader和其他属性)且等效于required=false。


(责任编辑:人工智能)