Spring 的核心特性
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 上的模块
https://spring.io/projects/spring-framework
https://github.com/spring-projects/spring-framework
【Java学习资源】整理推荐
- Spring 依赖注入的处理过程与 DependencyDescriptor 的说明
- Spring 各种 Aware 接口回调注入
- Spring Bean 生命周期内的 Exception 复现
- Spring 内建 Bean
- Spring Bean 的别名
- Spring Bean 未指定名称的命名规则
- Bean 何时被 GC
- Spring Bean 延迟加载
- ObjectFactory 与 BeanFactory 的区别
- Bean 销毁的方式与顺序
- Bean 初始化的方式与顺序
- Bean 的实例化方式
- Bean的注册方式
- 什么是 BeanDefinition?
- Spring IoC 容器启动时做了什么?
- BeanFactory 与 FactoryBean 的区别
- BeanFactory 与 ApplicationContext 的区别
- Spring IoC 依赖注入的实现方式
- Spring IoC 依赖注入(支持哪些数据类型?)
- Spring bean 依赖查找
- Spring-IoC
- Spring 的核心特性
【Java面试题与答案】整理推荐
- 基础与语法
- 集合
- 网络编程
- 并发编程
- Web
- 安全
- 设计模式
- 框架
- 算法与数据结构
- 异常
- 文件解析与生成
- Linux
- MySQL
- Oracle
- Redis
- Dubbo
还没有评论,来说两句吧...