结束了前面的《Spring 源码深度学习》,八月给自己放松了一下,看了几本小说和电视剧,还有写一个工作中用到的小工具,周报数据渲染的前端界面(前端是真的难)。
当然技术上的学习也要注意,所以看了松哥写的《Spring Boot + Vue 全栈开发》,来系统学习 SpringBoot
,下面是简单的速记,根据使用场景可以快速定位到知识点:
Demo
脚手架项目地址:
结束了前面的《Spring 源码深度学习》,八月给自己放松了一下,看了几本小说和电视剧,还有写一个工作中用到的小工具,周报数据渲染的前端界面(前端是真的难)。
当然技术上的学习也要注意,所以看了松哥写的《Spring Boot + Vue 全栈开发》,来系统学习 SpringBoot
,下面是简单的速记,根据使用场景可以快速定位到知识点:
Demo
脚手架项目地址:
经过前面的 AOP
(面向切面编程) 和 Transaction
(事务管理),这次来到了 MVC
(Web 应用,进行请求分发和处理)
Spring MVC 定义:
分离了控制器(Controller)、模型(Model)、分配器(Adapter)、视图(View)和处理程序对象(Handler,实际上调用的是 Controller 中定义的逻辑)。
基于 Servlet 功能实现,通过实现了 Servlet 接口的 DispatcherServlet 来封装其核心功能实现,通过将请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上传文件支持。
同样老套路,本篇按照以下思路展开:
(1) 介绍如何使用
(2) 辅助工具类 ContextLoaderContext
(3) DispatcherServlet
初始化
(4) DispatcherServlet
处理请求
我们在业务开发中,使用得最多的是面向对象编程(OOP),因为它的代码逻辑直观,从上往下就能查看完整的执行链路。
在这个基础上延伸,出现了面向切面编程(AOP),将可以重复性的横切逻辑抽取到统一的模块中。
例如日志打印、安全监测,如果按照 OOP
的思想,在每个方法的前后都要加上重复的代码,之后要修改的话,更改的地方就会太多,导致不好维护。所以出现了 AOP
编程, AOP
所关注的方向是横向的,不同于 OOP
的纵向。
所以接下来一起来学习 AOP
是如何使用以及 Spring
容器里面的处理逻辑~
在上一篇文章中,深入分析和学习了 BeanFactoryPostProcessor
,主体是 BeanFactory
的后处理器,这次来学习主体是 Bean
的后处理器:BeanPostProcessor
。
定义:它也是 Spring
对外提供的接口,用来给用户扩展自定义的功能。执行的时机在 bean
实例化阶段前后
本篇思路:
BeanPostProcessor
定义