Spring 的核心特性

青旅半醒 2022-10-29 07:52 218阅读 0赞

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

20c9983308fd0b984b71631151f792e7.png

GitHub 上的模块

af27ef088ccd71f8ec146c8e3624329c.png

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

发表评论

表情:
评论列表 (有 0 条评论,218人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring特性

    Spring通过XML配置文件或注解来描述Bean以及Bean和Bean之间的依赖关系,利用Java反射技术实例化Bean并建立Bean之间的依赖关系。它作为一个轻量级的J2E

    相关 Spring 核心特性

    Spring 框架现在已经是一个庞大的生态,在入门 Java 没多久我就尝试过读 Spring 的源码,按能抽出整块时间读源码去算的话,有 3 次;《Spring 源码深度解析

    相关 关于Spring Cloud核心特性

    SOA和微服务的区别  其实服务化架构已经可以解决大部分企业的需求了,那么我们为什么要研究微服务呢?先说说它们的区别;  微服务架构强调业务系统需要彻底的组件化和服务

    相关 Spring4.0_核心特性

    条件化配置:     说明:可以在运行时判断这个配置是该被运用,还是该被忽略。     应用:         @ConditionalOnClass : classpa

    相关 Spring3.1_核心特性

    开始支持基于Profile的配置:     说明: Profile是一种条件化配置,基于运行时激活的Profile,会使用或者忽略不同的Bean或配置类。     应用:@