Spring 框架现在已经是一个庞大的生态,在入门 Java 没多久我就尝试过读 Spring 的源码,按能抽出整块时间读源码去算的话,有 3 次;《Spring 源码深度解析》这本书也看了一遍多,但收获一般。
现在脑子里印象最深刻的就是
IOC 容器 XML 解析成 bean 那部分
AOP 切面的实现
Spring MVC 如何做到从 Http 请求通过 @Controller、@RequestMapping 注解找到对应的方法并返回视图或写出文本
我可以在 Spring Boot 上进行开发,但对配置的熟练度可能还不如一个初学者,但能很快上手,遇到各种问题能点进源码快速定位问题并解决;由于公司微服务框架是自研的,Spring Cloud 基本不会,借此机会把这块恶补一下。从官网可以看出,Spring 的功能远不止如此,还有 Spring Data、Spring for Android 等项目。
起点低,进步空间就巨大。而且,单就 Spring 全家桶来说,生态虽然庞大,但没有感觉有什么特别难的点。
Boot、Cloud 都是建立的 Framework 之上,Spring Framework 就是核心。
第一篇,列一下 Framework 的 Overview,后续将它们的重难点列出来各个击破,做成思维导图,有问题翻翻官方文档和源码基本就差不多了。
1、核心技术点(Core technologies)
IoC 容器(IoC Container)| 依赖注入(dependency injection)
事件(Events)
资源管理(Resources)
国际化(i18n)
校验(Validation)
数据绑定(Data Binding)
类型装换(Type Conversion)
表达式(Spring Express Language)
面向切面编程(AOP)
2、测试(Testing)
模拟对象(mock Objects)
TestContext 框架(TestContext Framework)
Spring MVC 测试(Spring MVC Test)
Web 测试客户端(WebTestClient)
3、Data Access(数据存取)
事务抽象(Transactions)
DAO 支持(DAO Support)
对 JDBC 实现的封装与简化
O/R映射(O/R Mapping)
XML 编列(XML Marshalling)
3、Web
MVC
WebSocket
WebFlux
WebClient
4、技术整合(Integration)
远程调用(remoting)
Java 消息服务(JMS)
Java 连接架构(JCA)
Java 管理扩展(JMX)
Java 邮件客户端(email)
本地任务(tasks)
本地调度(scheduling)
缓存抽象(cache)
5、对其他语言的支持(Languages)
Kotlin
Groovy
dynamic languages
GitHub 上的模块
ConstXiong 备案号:苏ICP备16009629号-3