Spring进阶 - Spring AOP实现异步文件上传
Spring进阶 - Spring AOP实现异步文件上传 1. 前言 相信很多系统里都有这一种场景:用户上传Excel,后端解析Excel生成相应的数据,校验数据并落库。这就引发了一个问题:如果Excel的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。 如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,

2023年9月10日
大约 6 分钟
SpringBoot项目中设计业务操作日志功能步骤详解
SpringBoot项目中设计业务操作日志功能步骤详解 "很久以前都想写这篇文章,一直没有空,但直到现在我对当时的情景还有印象,之所以有印象是因为需求很简单,业务操作日志的记录与查询的功能,但是具体实现真的很烂,具体的烂法会在反面示例里细说,领导以及客户层面很认可,一系列迷之操作,让我印象深刻。" 1. 需求描述与分析 客户侧提出需求很简单:要对几个关键的业

2023年6月1日
大约 11 分钟
Spring进阶 - Spring AOP面向切面编程
Spring进阶 - Spring AOP面向切面编程 1. 面向切面编程 "面向切面编程(AOP,Aspect Oriented Programming)是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。" 1.1. AOP作用 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提

2022年11月10日
大约 13 分钟
Spring Cloud - Openfeign 实现原理分析
Spring Cloud - Openfeign 实现原理分析 OpenFeign简介 OpenFeign 是一个声明式 RESTful 网络请求客户端。OpenFeign 会根据带有注解的函数信息构建出网络请求的模板,在发送网络请求之前,OpenFeign 会将函数的参数值设置到这些请求模板中。虽然 OpenFeign 只能支持基于文本的网络请求,但是它可

2022年11月10日
大约 12 分钟
Spring进阶 - Spring IOC实现原理之IOC高级特性
Spring进阶 - Spring IOC实现原理之IOC高级特性 1、IoC容器介绍 通过前面4篇文章对Spring IoC容器的源码分析,我们已经基本上了解了Spring IoC容器对Bean定义资源的定位、读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取被管理的Bean时,IoC容器对Bean进行的初始化和依赖注入过程,这些是S

2022年10月10日
大约 23 分钟
Spring进阶 - Spring IOC实现原理之IOC体系结构
Spring进阶 - Spring IOC实现原理之IOC体系结构 1、什么是Ioc/DI? IoC 容器:最主要是完成了完成对象的创建和依赖的管理注入等等。先从我们自己设计这样一个视角来考虑: "所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对

2022年10月10日
大约 4 分钟
Spring进阶 - Spring IOC实现原理之IOC依赖注入
Spring进阶 - Spring IOC实现原理之IOC依赖注入 1、Spring IoC容器依赖注入发生的时间 当Spring IoC容器完成了Bean定义资源的定位、载入和解析注册以后,IoC容器中已经管理类Bean定义的相关数据,但是此时IoC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况发生: 1. 用户第一次通过getBean方

2022年10月10日
大约 27 分钟
Spring进阶 - Spring IOC实现原理之IOC初始化流程
Spring进阶 - Spring IOC实现原理之IOC初始化流程 "IoC容器的初始化包括BeanDefinition的Resource定位、载入和注册这三个基本的过程。我们以ApplicationContext为例讲解,ApplicationContext系列容器也许是我们最熟悉的,因为web项目中使用的XmlWebApplicationContext

2022年10月10日
大约 36 分钟
SpringBoot集成Flyway实现数据库版本控制
SpringBoot集成Flyway实现数据库版本控制 1.为什么使用Flyway? 最简单的一个项目是一个软件连接到一个数据库,但是大多数项目中我们不仅要处理我们开发环境的副本,还需要处理其他很多副本。例如:开发环境、测试环境、生产环境。想到数据库管理,我们立刻就能想到一系列问题 如何快速收集执行脚本的清单; 执行的脚本总要人工执行,是否可以通过机器执行

2022年9月4日
大约 6 分钟
SpringBoot集成Quartz实现定时动态创建、启动、暂停、恢复、删除等操作
SpringBoot集成Quartz实现定时动态创建、启动、暂停、恢复、删除等操作 "Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持c

2022年9月4日
大约 8 分钟
2
3