Spring读书笔记

简介: Spring读书笔记

一、做业务需求要求

在确认需求后需要确认的几件事情:

1.项目的主流程是什么,区分分支流程和主流程

2.扩展点的预留:预留好扩展点可以为后续的扩展带来方便,同时符合开闭原则

3.扩展接口的定义:

 扩展考虑上下文传递数据结构定义

 如何满足后续需求

 兜底方案如何设计

4.职责分离

    如何抽取通用流程

5.考虑复用

    简洁代码


二、Spring中创建Bean的流程

Spring中创建Bean的流程中:

1.首先通过设置的Class属性或者根据className来解析Class,我理解这个过程其实是一个bean转beanDefintion,然后到beanDefintionMap的过程

2.对override属性进行标记以及验证

这个过程通过lookup-method和replacd-method,将methodOverrides 进行替换的过程。

3.初始化前的前后后置处理器进行增强

4.进行实例化


三、更多思考

可以看到实例化只是Spring中的一步。如果按照我们的常规思路,实现这一个实例化的过程不就行了吗?为啥还需要做这么多?

Spring框架的优秀在于它给我们留了很多口子,而这些口子就是很多框架可以很容易集成它的原因。同时这也是SpringBoot、SpringCloud很容易集成的原因。


那这给我们的思考又是什么呢?因为我们大多数人都是在写业务。也就是我们如何把这种思想在业务中使用呢?

那就是我们在这个它的整个流程中的处理器,也即我们看到的处理器。这些Processor处理器是我们看到的扩展,这种扩展的模式类似我们经常写的拦截器,前置操作、后置操作,当前操作。

也即对应我们的业务中的相关业务中的相关step,每个step,我们又可以基于此建立前置后置处理,为我们的业务处理建立扩展点,扩展是留给我们后续业务迭代的。

这个过程中,明确主流程是相当重要的,只有主流程明确,分支流程才能做更好的扩展。


这也说明了,一个好的设计,可以带来的好处有很多。


四、参考

郝佳的深入Spring源码解析

目录
相关文章
|
缓存 Java Spring
[读书笔记]Spring中的循环依赖详解
[读书笔记]Spring中的循环依赖详解
61 0
|
2天前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
24 10
|
16天前
|
Java 数据库连接 Maven
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
自动装配是现在面试中常考的一道面试题。本文基于最新的 SpringBoot 3.3.3 版本的源码来分析自动装配的原理,并在文未说明了SpringBoot2和SpringBoot3的自动装配源码中区别,以及面试回答的拿分核心话术。
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
下一篇
开通oss服务