spring
文章平均质量分 78
&友情岁月&
good good study , day day up!!!
展开
-
在Spring Boot中如何实现循环重试
在实际工作中,重处理是一个非常常见的场景,比如: 发送消息失败。 调用远程服务失败。 争抢锁失败。 这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。72讲SpringBoot实践视频教程,大小7.2G@Retryable.原创 2022-05-24 23:31:19 · 923 阅读 · 0 评论 -
Spring 为何需要三级缓存解决循环依赖,而不是二级缓存?
前言在使用spring框架的日常开发中,bean之间的循环依赖太频繁了,spring已经帮我们去解决循环依赖问题,对我们开发者来说是无感知的,下面具体分析一下spring是如何解决bean之间循环依赖,为什么要使用到三级缓存,而不是二级缓存?bean生命周期首先大家需要了解一下bean在spring中的生命周期,bean在spring的加载流程,才能够更加清晰知道spring是如何解决循环依赖的。我们在spring的BeanFactory工厂列举了很多接口,代表着bean..原创 2022-05-24 23:17:04 · 122 阅读 · 0 评论 -
IoC 容器-BeanPostProcessor
BeanPostProcessor 接口 也叫 Bean 后置处理器,作用是在 Bean 对象实例化和依赖注入完成后,在显示调用 bean 的 init-method(初始化方法)的前后添加我们自己的处理逻辑。注意是 Bean 实例化完毕后及依赖注入完成后触发的,接口的源码如下。public interface BeanPostProcessor { /** * 实例化、依赖注入完毕, * 在调用显示的初始化之前完成一些定制的初始化任务 */ Object原创 2022-05-24 15:21:36 · 72 阅读 · 0 评论 -
IoC 容器-依赖注入(DI)
前面我们主要分析了 FileSystemXmlApplicationContext 这个具体的 IoC 容器实现类 的初始化源码,在 IoC 容器 中建立了 beanName 到 BeanDefinition 的数据映射,通过一个 ConcurrentHashMap。现在我们来看一下 Spring 是如何将 IoC 容器中存在依赖关系的 bean 根据配置联系在一起的。Spring 中触发 IoC 容器“依赖注入” 的方式有两种,一个是应用程序通过 getBean()方法 向容器索要 bean 实例 时原创 2022-05-24 15:19:28 · 230 阅读 · 0 评论 -
IoC 容器-将 BeanDefinition 注册进 IoC 容器
这篇文章分享一下 spring IoC 容器初始化第三部分的代码,也就是将前面解析出来的 BeanDefinition 对象 注册进 IoC 容器,其实就是存入一个 ConcurrentHashMap<String, BeanDefinition> 中。回过头看一下前面在 DefaultBeanDefinitionDocumentReader 中实现的 processBeanDefinition(Element ele, BeanDefinitionParserDelegate delega原创 2022-05-24 15:16:40 · 155 阅读 · 0 评论 -
IoC 容器-将bean解析封装成BeanDefinition
接着上一篇的 BeanDefinition 资源定位开始讲。Spring IoC 容器 BeanDefinition 解析过程就是把用户在配置文件中配置的 bean,解析并封装成 IoC 容器可以装载的 BeanDefinition 对象,BeanDefinition 是 Spring 定义的基本数据结构,其中的属性与配置文件中 bean 的属性相对应。首先看一下 AbstractRefreshableApplicationContext 的 refreshBeanFactory() 方法,这是一个模板原创 2022-05-24 15:14:34 · 194 阅读 · 0 评论 -
IoC 容器-BeanDefinition的资源定位过程
当我们传入一个 Spring 配置文件去实例化 FileSystemXmlApplicationContext 时,可以看一下它的构造方法都做了什么。/** * 下面这 4 个构造方法都调用了第 5 个构造方法 * @param configLocation * @throws BeansException */// configLocation 包含了 BeanDefinition 所在的文件路径public FileSystemXmlApplicationContext(String原创 2022-05-24 15:11:09 · 131 阅读 · 0 评论 -
CAS实现单点登录(SSO)过程浅析
一、何谓单点登录单点登录(Single Sign On),简称为SSO,简单理解就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。二、何谓CASCAS(Central Authentication Service)是耶鲁大学的一个开源项目,旨在为web应用系统提供一种可靠的单点登录解决方案。采用CAS最大的是从安全性角度来考虑的,用户在CAS录入用户名和密码之...转载 2019-11-27 23:21:50 · 493 阅读 · 0 评论 -
图文并茂,揭秘Spring的Bean的加载过程(spring如何处理循环依赖?)
目录概述 总体流程 细节分析 3.1. 转化 BeanName 3.2. 合并 RootBeanDefinition 3.3. 处理循环依赖 3.4. 创建实例 3.5. 注入属性 3.6. 初始化 3.7. 类型转换 总结1. 概述Spring 作为 Ioc 框架,实现了依赖注入,由一个中心化的 Bean 工厂来负责各个 Bean 的实例化和依赖管理。各个 Bean...转载 2019-11-20 22:24:06 · 1184 阅读 · 0 评论