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

企业网站开发心得体会安阳企业网站优化外包

企业网站开发心得体会,安阳企业网站优化外包,上海小程序开发哪家好,做跨境电商被骗了文章目录 1. EnableWebMVC 开启 MVC 功能2. 初始化自定义的 MVC 组件2.1. 初始化过程2.2. 如何分析复杂的 Spring 组件注册 3. 容器启动后会初始化 DispatcherServlet4. DispatcherServlet 初始化过程总结5. 资料参考 把DispatcherServlet 准备好意味着服务器已经可以处理请求了…

文章目录

  • 1. @EnableWebMVC 开启 MVC 功能
  • 2. 初始化自定义的 MVC 组件
    • 2.1. 初始化过程
    • 2.2. 如何分析复杂的 Spring 组件注册
  • 3. 容器启动后会初始化 DispatcherServlet
  • 4. DispatcherServlet 初始化过程总结
  • 5. 资料参考

把DispatcherServlet 准备好意味着服务器已经可以处理请求了,那么DispatcherServlet 是如何初始化的。

1. @EnableWebMVC 开启 MVC 功能

在 Spring MVC 中可以通过贴该注解的方式来开启 MVC 功能。Spring Boot 只要引入了 web 的 starter 就已经开启了。

注意:但是在 Spring Boot 中慎重使用该注解,该注解会导致 Spring Boot 自动装配失效,所有 Boot 增强的组件全部失效,会导致功能退化为 MVC。

2. 初始化自定义的 MVC 组件

工作过程概述:
1、初始化WebMvcConfigurationSupport 中定义的各个 bean
2、各个 bean 的初始化触发DelegatingWebMvcConfiguration 各个方法的调用
3、方法的调用触发WebMvcConfigurer 的调用
4、WebMvcConfigurer 就是用户自定义的配置

2.1. 初始化过程

  • 容器启动后会开始 bean 的初始化过程。

mvc 相关的 bean 的初始化其实彼此一点关系都没有,各自初始化各自的,各自安好。但是当初始化到WebMvcConfigurationSupport中定义的Bean 的时候,会触发DelegatingWebMvcConfiguration类各个方法的调用;方法的调用又关联到WebMvcConfigurer,WebMvcConfigurer又关联到我们的组件,最后都会初始化好。

  • 初始化WebMvcConfigurationSupport 中定义的 bean
public class WebMvcConfigurationSupport implements ApplicationContextAware, ServletContextAware {......@Beanpublic RequestMappingHandlerMapping requestMappingHandlerMapping()......@Beanpublic PathMatcher mvcPathMatcher() {}......}
  • bean 的初始化导致DelegatingWebMvcConfiguration各个方法的执行
@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);}.........
}
  • 各个方法的执行导致WebMvcConfigurer 生效
  • 用户通过继承WebMvcConfigurer 自定义 mvc 的组件,自定义组件生效

2.2. 如何分析复杂的 Spring 组件注册

带@Bean继承关系的复杂 Spring 组件如何分析参考:https://www.yuque.com/yuchangyuan/kkc8mp/ot7orhqpmmqictqx

3. 容器启动后会初始化 DispatcherServlet

容器启动后会初始化DispatcherServlet,并把MVC相关的bean都设置到DispatcherServlet的属性中,之后处理请求只需用到属性即可。

protected void initStrategies(ApplicationContext context) {initMultipartResolver(context);initLocaleResolver(context);initThemeResolver(context);initHandlerMappings(context);initHandlerAdapters(context);initHandlerExceptionResolvers(context);initRequestToViewNameTranslator(context);initViewResolvers(context);initFlashMapManager(context);
}
  • 问题:之前的自动装配阶段不是有很多种 bean 吗,怎么现在才这么几种?

因为各个组件都整合到了这 9 种 bean 之中了。

4. DispatcherServlet 初始化过程总结

1、开启 MVC 功能

Spring Boot 只要引入 starter 即可。

2、通过@Bean 方式给容器注册相关的 mvc 组件

用户自定义一般通过实现 WebMvcConfiguration 实现

3、mvc 组件的初始化(重难点)核心类:WebMvcConfigurationSupport
4、执行DispatcherServlet 的initStrategies 方法设置属性
5、截止DispatcherServlet 准备好,MVC 就准备好了
6、之后的 http 请求直接在DispatcherServlet 处理即可。

1、先 service 方法(该方法会准备一些东西)
2、后 doDispatcher 方法(核心处理请求的方法)

5. 资料参考

Spring MVC源码分析:https://gitee.com/firefish985/article-list/tree/master/Spring/Spring Web MVC

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

相关文章:

  • 做毕业设计免费网站建设微信引流被加软件
  • 易站网站建设西安seo网站管理
  • 网站制作样板公司网页怎么做
  • 照片做视频模板下载网站百度首页百度一下
  • 海洋做网站百度seo文章
  • 网站设计便宜搜易网提供的技术服务
  • 做商业网站去哪里弄好整合营销策划名词解释
  • 遵义市政府网站建设概况做seo需要用到什么软件
  • 成品网站源码1688版本号淘宝指数查询工具
  • 宁波中科网站建设有限公司长沙网站优化效果
  • 闵行区建设和交通委员会网站网站域名查询
  • 东莞高端网站建设公司站长素材免费下载
  • 网站登录注册怎么做的百度搜索入口
  • 南宁市有哪些做网站的外包企业站长申论
  • 利趣网站开发商小学培训机构
  • 广州免费网站建设新媒体营销六种方式
  • 上海做兼职网站有吗东莞疫情最新消息今天新增
  • flash里面如何做网站链接做网络推广怎么找客户
  • 衡水专业做网站seo是什么东西
  • 中英双语营销型网站seo公司发展前景
  • 中山网站推广优化品牌推广平台
  • 个人开发网站珠海百度搜索排名优化
  • 怎样进行网络营销吸引顾客东莞网站推广及优化
  • 帮别人做网站市场价西安百度推广代运营
  • h5做网站什么软件怎么进入百度推广账户
  • 医疗器械做网站到哪里先备案今日头条新闻推荐
  • 怎么做赌球网站的代理最近三天的国际新闻大事
  • 南京网站优化快速排名seo岗位培训
  • wordpress怎么新建栏目搜索引擎优化是做什么的
  • 遵义网站建设wguserseo网站优化培训怎么样