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

【Spring】@Bean方法中存在继承如何分析

文章目录

  • 1. 提问:如果让您分析Spring MVC的原理,您如何开始分析呢
  • 2. 如何破局
  • 3. 资料参考

本文主要介绍:如何分析 @Bean方法存在继承@Bean方法中存在调用子类方法

1. 提问:如果让您分析Spring MVC的原理,您如何开始分析呢

您可能想到从@EnableWebMVC注解入手,然后找到了DelegatingWebMvcConfiguration类,哪怕找到了这个类还是感觉有点难,是不是感觉有点绕。

假设是在Spring Boot环境中,那更加麻烦了,Boot多包装了一层自动装配又注册了不少相关的mvc的Bean。

如果是第一次看 MVC 原理,感觉有点蒙,正常,作者也蒙,太绕了,如果不知道核心类WebMvcConfigurationSupport 根本绕不出来。

  • 为什么感觉DelegatingWebMvcConfiguration有点绕呢

@Bean实例化,@Bean实例化又会触发子类方法的执行,子类方法的执行又要用到@Bean组件,又要触发@Bean组件的实例化,形成一个环了,根本绕不出来😭😶,如何破局。

2. 如何破局

  • 首先是要简化

如果搞不定,请您先不要去直接分析Spring Boot,而是单独分析MVC。

  • 如何破解复杂的@Bean配置(即带继承的@Bean或@Bean方法中又调用了子类的方法)

之所以如此绕的关键在于在 @Bean方法中存在继承关系 ,所以在今后遇到@Bean方法有继承时,一直往上找到“** 顶层类 **”,查看顶层类的继承体系,就是核心类。

以 MVC 为例:
1、 当发现了存在@Bean方法的继承,找到顶层类即WebMvcConfigurationSupport;
2、分析WebMvcConfigurationSupport 的继承体系,找到DelegatingWebMvcConfiguration
3、现在破局了。

  • 现在再看 MVC 原理:https://www.yuque.com/yuchangyuan/kkc8mp/so2871z5pxlrbk34

找到关键类WebMvcConfigurationSupport 后再看 MVC 原理,似乎简单不少。

3. 资料参考

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

http://www.lryc.cn/news/181499.html

相关文章:

  • 【Vim 插件管理器】Vim-plug和Vim-vbundle的区别
  • 电子计算机核心发展(继电器-真空管-晶体管)
  • SDI-12协议与STM32 进行uart通信
  • JS中的强制类型转换
  • WebSocket实战之四WSS配置
  • veImageX 演进之路:Web 图片加载提速50%
  • WebSocket实战之五JSR356
  • flask-sqlalchemy结合Blueprint遇到循环引入问题的解决方案
  • 05_对象性能模式
  • 快速选择排序
  • 国庆中秋特辑(六)大学生常见30道宝藏编程面试题
  • Centos7 安装mysql 8.0.34
  • 如何在 Google Earth 中创建轨迹、路线并制作动画
  • 蓝桥杯每日一题2023.9.30
  • springboot和vue:十、vue2和vue3的差异+组件间的传值
  • SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)
  • vue-cli搭建过程(HBuilder X搭建)
  • MySQL索引:结构、语法、分类和优化
  • Vue中添加旋转动画
  • 基于SSM农产品商城系统
  • 基于matlab创作简易表白代码
  • pandas
  • 使用关键字interface来声明使用接口-PHP8知识详解
  • 计算机毕业设计 基于SSM的高校毕业论文管理系统小程序的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 【Java 进阶篇】JDBC查询操作详解
  • 我的企业证书是正常的但是下载应用app到手机提示无法安装“app名字”无法安装此app,因为无法验证其完整性解决方案
  • 【数据结构】排序(2)—冒泡排序 快速排序
  • Redis与分布式-分布式锁
  • docker安装nginx详解
  • 优化思考二