理解springboot那些约定俗成的框架类名、全局context等命名规范,就可以读懂一半springboot的源代码

本文探讨了Spring Boot中常见的框架类命名规范,如Bootstrap、Initializer、Processor、Manager等,以及Spring全局上下文的相关概念,如Context、Propagator。通过了解这些约定,有助于更好地理解Spring Boot的源代码。Spring框架类命名涵盖启动器、初始化、处理器、管理器等多个方面,而全局上下文则涉及到环境和上下文的传递。掌握这些知识能帮助开发者在阅读源码时更加得心应手。
摘要由CSDN通过智能技术生成

去阿里面试,由于简历上写了读过 spring 的源码,所以面试官就问到了:看你读过 spring 的源码,可以介绍一下他的流程么?

肚子好像很多,但是脑子关于spring相关概念,很好混乱,回答的……

那怎办呢?何不试一下,找一下springboot那些约定俗成的Java类命名规范,来辅助自己更好的理解与记忆springboot的源代码

spring框架类命名

Bootstrap,Starter:

一般作为程序启动器使用,或者作为启动器的基类。通俗来说,可以认为是main函数的入口。

starter启动器,可以通过启动器集成其他的技术,比如说: web, mybatis, redis等等.可以提供对应技术的开发和运行环境.
比如: pom中引入spring-boot-starter-web, 就可以进行web开发.


Initializer:

初始化启动。

Spring Initializer 是一个用于创建和初始化 Spring 项目的Web界面或命令行工具。

它提供了一个简单易用的界面,让开发人员可以快速生成和配置基于 Spring 的项目结构,并且可以选择添加额外的依赖、配置文件和其他项目设置。

使用 Spring Initializer,您可以指定项目的基本信息(如项目名称、包名等),选择所需的 Spring Boot 版本和语言(如 Java、Kotlin、Groovy),添加所需的依赖(如 Web、数据库访问、安全等),并自动生成一个可用的 Spring 项目的初始代码结构。

Spring Initializer 支持多种方式创建项目,包括:

在浏览器中访问 https://start.spring.io/,填写相关配置信息后,点击生成项目。
使用 Spring Tool Suite(STS)或 IntelliJ IDEA 等集成开发环境的 Spring Initializer 插件。
通过命令行工具(如 curl 或 HTTPie)发送 HTTP 请求来生成项目文件。
通过 Spring Initializer 创建的项目已经为您配置好了一些基本的 Spring Boot 设置,如自动配置、依赖管理、应用程序入口类等。

您可以根据需要进一步修改和定制项目,以满足特定的开发需求。

Processor:

某一类功能的处理器,用来表示某个处理过程,是一系列代码片段的集合。

Processor是spring Bean生命周期关键触发时机

根据上图可知,实际bean对象涉及生命周期的主要是一个构造器和两个后置处理器(BeanFactoryPostProcessor和BeanPostProcessor)。

BeanPostProcessor与BeanFactoryPostProcessor的初始化、调用的不同时机,正是由于它们的作用不同导致作用域不同决定的。

BeanPostProcessor是针对Bean级别的处理,可以针对某个具体的Bean;而BeanFactoryPostProcessor针对整个Bean的工厂(BeanFactory)进⾏处理。

可以具化想象成一个是对产品颜色、大小的修饰,一个是对生成产品的流水线进行修饰,比如添加润滑剂使半成品更快流向下一个环节。


Manager:

对有生命状态的对象进行管理,通常作为某一类资源的管理入口。

Spring 5.2才引入的,是为了实现Spring transaction manager的一个marker interface,他应该可以包含两个方向的实现,一个是traditional的,一个是reactive。

如:事务管理器TransactionManager

Spring 将事务管理的核心功能抽象为一个事务管理器(Transaction Manager),基于这个事务管理器核心,可以实现多种事务管理的方式。

Holder:

表示持有某个或者某类对象的引用,并可以对其进行统一管理。多见于不好回收的内存统一处理,或者一些全局集合容器的缓存。

SpringContextHolder是一种基于Spring框架中ThreadLocal技术实现的管理Spring容器上下文的工具。

SecurityContextHolder,同时Spring框架借助ThreadLocal来保存和传递用户登录信息。我们通常是使用下面这段代码,来获取保存在ThreadLocal中的用户信息。

如果我们想获取用户的ID,可以这样:

String userId = 
SecurityContextHolder.getContext()
.getAuthentication().getPrincipal()
.getUserId();

Factory,Provider,Builder:

一般用于各种集中生成对象的类。

Factory是工厂模式的命名,Provider常用于基于某些策略提供对象的场景。

AliasRegistry 定义对alias的简单增删改查等操作
SimpleAliasRegistry 主要使用map作为alias的缓存,并对接口AliasRegistry进行实现
SingletonBeanRegistry 定义对单例的注册及获取
BeanFactory 定义获取bean及bean的各种属性
DefaultSingletonBeanFactory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿啄debugIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值