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

做网站鞍山wordpress邮件发送下载

做网站鞍山,wordpress邮件发送下载,网站建设需要了解的信息,仿锤子 wordpress源码 EnableWebMvc EnableWebMvc 是用于启用 Spring MVC 的注解,它通过导入 DelegatingWebMvcConfiguration 来加载默认的 MVC 配置,同时允许开发者通过实现 WebMvcConfigurer 接口来自定义部分配置;若需更高阶的控制,则可直接继承…

源码

EnableWebMvc

@EnableWebMvc 是用于启用 Spring MVC 的注解,它通过导入 DelegatingWebMvcConfiguration 来加载默认的 MVC 配置,同时允许开发者通过实现 WebMvcConfigurer 接口来自定义部分配置;若需更高阶的控制,则可直接继承 WebMvcConfigurationSupportDelegatingWebMvcConfiguration

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(DelegatingWebMvcConfiguration.class)
public @interface EnableWebMvc {}

DelegatingWebMvcConfiguration

DelegatingWebMvcConfiguration@EnableWebMvc 导入的配置类,继承自 WebMvcConfigurationSupport,通过委托 WebMvcConfigurerComposite 聚合并调用所有 WebMvcConfigurer 实现,从而实现对 Spring MVC 默认配置的扩展与定制。

@Configuration(proxyBeanMethods = false)
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {private final WebMvcConfigurerComposite configurers = new WebMvcConfigurerComposite();@Autowired(required = false)public void setConfigurers(List<WebMvcConfigurer> configurers) {if (!CollectionUtils.isEmpty(configurers)) {this.configurers.addWebMvcConfigurers(configurers);}}@Overrideprotected void configurePathMatch(PathMatchConfigurer configurer) {this.configurers.configurePathMatch(configurer);}@Overrideprotected void configureContentNegotiation(ContentNegotiationConfigurer configurer) {this.configurers.configureContentNegotiation(configurer);}@Overrideprotected void configureAsyncSupport(AsyncSupportConfigurer configurer) {this.configurers.configureAsyncSupport(configurer);}@Overrideprotected void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {this.configurers.configureDefaultServletHandling(configurer);}@Overrideprotected void addFormatters(FormatterRegistry registry) {this.configurers.addFormatters(registry);}@Overrideprotected void addInterceptors(InterceptorRegistry registry) {this.configurers.addInterceptors(registry);}@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {this.configurers.addResourceHandlers(registry);}@Overrideprotected void addCorsMappings(CorsRegistry registry) {this.configurers.addCorsMappings(registry);}@Overrideprotected void addViewControllers(ViewControllerRegistry registry) {this.configurers.addViewControllers(registry);}@Overrideprotected void configureViewResolvers(ViewResolverRegistry registry) {this.configurers.configureViewResolvers(registry);}@Overrideprotected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {this.configurers.addArgumentResolvers(argumentResolvers);}@Overrideprotected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {this.configurers.addReturnValueHandlers(returnValueHandlers);}@Overrideprotected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {this.configurers.configureMessageConverters(converters);}@Overrideprotected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {this.configurers.extendMessageConverters(converters);}@Overrideprotected void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {this.configurers.configureHandlerExceptionResolvers(exceptionResolvers);}@Overrideprotected void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {this.configurers.extendHandlerExceptionResolvers(exceptionResolvers);}@Overrideprotected void configureErrorResponseInterceptors(List<ErrorResponse.Interceptor> interceptors) {this.configurers.addErrorResponseInterceptors(interceptors);}@Override@Nullableprotected Validator getValidator() {return this.configurers.getValidator();}@Override@Nullableprotected MessageCodesResolver getMessageCodesResolver() {return this.configurers.getMessageCodesResolver();}}

WebMvcConfigurationSupport

WebMvcConfigurationSupport 是 Spring Framework 中用于 Spring MVC Java 配置的核心基类,它负责默认配置 MVC 相关的基础设施组件。

通常不直接继承该类,而是通过在 @Configuration 类上添加 @EnableWebMvc 注解。
@EnableWebMvc 会导入 DelegatingWebMvcConfiguration,该类继承自
WebMvcConfigurationSupport,并委托给 WebMvcConfigurer 进行扩展和定制。

1.注册 HandlerMappings

HandlerMapping 类顺序 (Order)作用说明
RouterFunctionMapping-1映射 Router Functions 路由函数
RequestMappingHandlerMapping0映射带注解的控制器方法请求
HandlerMapping (View Controllers)1将 URL 路径直接映射到视图名称
BeanNameUrlHandlerMapping2将 URL 路径映射到控制器 Bean 名称
HandlerMapping (Static Resources)Integer.MAX_VALUE - 1提供静态资源请求处理
HandlerMapping (Default Servlet)Integer.MAX_VALUE将请求转发给默认 Servlet 处理

2.注册 HandlerAdapters

HandlerAdapter 类作用说明
RequestMappingHandlerAdapter处理带注解的控制器方法请求
HttpRequestHandlerAdapter处理 HttpRequestHandler 类型请求
SimpleControllerHandlerAdapter处理基于接口的控制器请求
HandlerFunctionAdapter处理 Router Functions 请求

3.注册 HandlerExceptionResolverComposite

异常解析器类作用说明
ExceptionHandlerExceptionResolver通过带有 @ExceptionHandler 注解的方法处理异常
ResponseStatusExceptionResolver处理带有 @ResponseStatus 注解的异常,将其映射为 HTTP 状态码
DefaultHandlerExceptionResolver处理 Spring 内置的已知异常类型

4.注册 路径匹配工具

组件用途备注
AntPathMatcher基于 Ant 风格的路径匹配可通过 PathMatchConfigurer 配置
UrlPathHelperURL 路径提取和处理可通过 PathMatchConfigurer 配置

5.其他

组件名作用说明备注
ContentNegotiationManager管理内容协商,根据请求头等确定响应媒体类型默认根据类路径中第三方库自动配置
DefaultFormattingConversionService处理类型转换和格式化可自定义添加转换器和格式化器
OptionalValidatorFactoryBean如果有 JSR-303 实现(如 Hibernate Validator),提供校验支持无实现时提供空实现,可自定义 Validator
HttpMessageConverters负责 HTTP 消息体的读写转换,支持 JSON、XML 等根据类路径中可用库自动注册,支持扩展定制

WebMvcConfigurer

/*** WebMvcConfigurer 是 Spring MVC 提供的一个回调接口,内置了大量默认实现的方法,* 允许开发者通过“选择性实现”的方式,按需定制 MVC 子系统的配置,* 避免使用 XML 或完全取代框架默认行为。*/
public interface WebMvcConfigurer {/*** 配置请求路径匹配规则,例如是否启用尾部斜杠匹配、路径参数支持等。*/default void configurePathMatch(PathMatchConfigurer configurer) {}/*** 配置内容协商策略,例如支持的媒体类型、默认响应类型、参数名等。*/default void configureContentNegotiation(ContentNegotiationConfigurer configurer) {}/*** 配置异步请求支持,包括超时时间、自定义线程池执行器等。*/default void configureAsyncSupport(AsyncSupportConfigurer configurer) {}/*** 配置是否启用默认 Servlet 来处理静态资源请求,通常用于容器映射为 "/" 的情况。*/default void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {}/*** 添加自定义的类型转换器(Converter)和格式化器(Formatter),用于数据绑定。*/default void addFormatters(FormatterRegistry registry) {}/*** 注册拦截器,例如日志、认证、限流等。*/default void addInterceptors(InterceptorRegistry registry) {}/*** 添加静态资源的访问路径、位置映射和缓存策略等。*/default void addResourceHandlers(ResourceHandlerRegistry registry) {}/*** 配置全局跨域(CORS)策略,可与 @CrossOrigin 注解配合使用。*/default void addCorsMappings(CorsRegistry registry) {}/*** 添加视图控制器,通常用于跳转首页、登录页、404 等无需处理逻辑的路由。*/default void addViewControllers(ViewControllerRegistry registry) {}/*** 配置视图解析器,用于将逻辑视图名称解析为具体视图实现(如 JSP、Thymeleaf 等)。*/default void configureViewResolvers(ViewResolverRegistry registry) {}/*** 注册自定义的方法参数解析器,例如支持额外注解参数等。*/default void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {}/*** 注册自定义的返回值处理器,用于处理 controller 返回结果。*/default void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) {}/*** 配置用于请求与响应体转换的消息转换器,支持 JSON、XML、表单等格式。*/default void configureMessageConverters(List<HttpMessageConverter<?>> converters) {}/*** 扩展默认的消息转换器配置,例如添加或修改默认行为。*/default void extendMessageConverters(List<HttpMessageConverter<?>> converters) {}/*** 配置 Spring MVC 的异常解析器链,实现自定义异常响应逻辑。*/default void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {}/*** 扩展默认的异常解析器配置,可与默认行为组合使用。*/default void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {}/*** 提供全局校验器(如 Hibernate Validator),可用于 @Valid 或 @Validated 注解。*/@Nullabledefault Validator getValidator() { return null; }/*** 提供错误码解析器,用于构造国际化校验消息。*/@Nullabledefault MessageCodesResolver getMessageCodesResolver() { return null; }
}

实战

@Configuration
public class WebConfig  implements WebMvcConfigurer {}

通过继承 DelegatingWebMvcConfiguration,可以在不使用 @EnableWebMvc 的情况下以更高级的方式自定义 Spring MVC 配置,包括覆盖默认的基础 Bean 并保留对其他 WebMvcConfigurer 实现的支持。

@Configuration
public class WebConfig extends DelegatingWebMvcConfiguration {}
http://www.dtcms.com/a/590785.html

相关文章:

  • 商城网站做推广长椿街网站建设
  • 站长工具中文精品做公司网站要营业执照吗
  • 【Java 工具类】集成AD域账号登录(完整实现)
  • 【应用服务器】Tomcat配置与部署详解
  • 重庆网站建设夹夹虫公司网站轮播怎么做
  • 大连商城网站建设建网站如何赚钱
  • 阜宁网站开发男生都知道的微信公众号
  • 山东企业建站系统费用企业安全文化宣传标语
  • 堆相关算法题基础-java实现
  • 鹿泉城乡建设局网站织梦网站怎么上传
  • 宜昌有做网站的公司吗苏州市住房和城乡建设局投折网站
  • 合肥企业自助建站用电信固定IP做网站
  • 推荐网站建设的电销该怎么打工商信息公示系统查询
  • wordpress自定义字段怎么用杭州seo网站推广软件
  • 网站格式有哪些赞皇建站建设
  • 贵阳专业做网站的公司有哪些住房和建设厅网站
  • 宁波优化网站排名软件网站建设软件开发
  • 山西网站建设报价单深圳建站公司推荐
  • 怎么在网站上做推企业代运营公司
  • 易语言可以做网站wordpress友情链接页面插件
  • deepseek的理解
  • 网站规划有前途吗学做ppt推荐网站
  • 中国工商网官方网站免费制作短视频的软件
  • 宁波网站推广设计怎么查网站的浏览量
  • 湖北建设网站信息查询中心北京造价信息网官网
  • 四平市城乡建设局网站网络营销工具优缺点
  • wordpress 站群有官网建手机网站
  • org.apache.ibatis.ognl.OgnlException
  • 电子商务网站建设计划书如何推广我的网站
  • 成功案例 品牌网站宣传推广方案怎么写