跳至主要內容
Spring及SpringBoot开发扩展点
Spring及SpringBoot开发扩展点
Spring及SpringBoot开发扩展点

ResourceLoader

资源加载器

BeanDefinitionReader

Bean定义信息读取者


GuoCay原创...小于 1 分钟JavaSpringSpring Boot开发笔记
Spring框架refresh()执行流程
Spring框架refresh函数执行流程
Spring框架refresh函数执行流程

prepareRefresh(): 准备刷新

  • 设置启动时间
  • 容器关闭标示符设置为false
  • 容器可用标示符设置为true
  • initPropertySources(): 钩子函数, 初始化属性资源,
  • getEnvironment().validateRequiredProperties(): 验证必要属性必须存在.
  • 清空已有的监听器(如果有的话),并重新从applicationListeners属性中加载

GuoCay原创...大约 4 分钟JavaSpring开发笔记
SpringBoot框架run()执行流程
SpringBoot框架run函数执行流程
SpringBoot框架run函数执行流程

记录启动时间

createBootstrapContext(): 创建启动上下文

  • 创建一个 DefaultBootstrapContext 对象
  • 执行所有注册的 BootstrapRegistryInitializer 对象

GuoCay原创...大约 5 分钟JavaSpring Boot开发笔记
基于事件机制的服务内削峰和低耦合(同步)操作的思考与实现

问题描述

去年底在做项目的时候,我们有这样的一个需求,用户上传文档操作,首先将文档保存至服务器后再上传到ES数据库中解析文档.解析文档是一个很消耗时间的操作,我们不能等待解析完成后再对用户返回操作成功.

今年初在做项目的时候,我们有这样的一个需求,用户接收消息后,需要根据是否节假日且用户是否设置节假日自动回复对消息进行自动回复处理.且自动回复操作的成功与否要影响到消息是否接收.我们在分析需求后觉得这必须是一个事务性的服务.自动回复失败将不接收消息.


GuoCay原创...大约 5 分钟MekatokMekatok开发笔记
关于domain对象与DTO对象间的相互拷贝的思考与优化思路

问题描述

我们后端在开发的过程中总是在domain(数据库映射对象)和dto(数据传输对象)之间进行数据互转.以匹配对象在各生命周期的运行.

在实际的开发中,我们发现大多数的domain对象和dto对象内的字段完全一致.创建两个内容完全一样的类.从大部分情况下考虑都显得多余.

代码中经常出现大量的代码如下

dto.setAttr(domain.getAttr());
...

冗长,且不优雅.


GuoCay原创...大约 4 分钟MekatokMekatok开发笔记
关于金仓数据库不被主流框架(如Activiti,Flowable)支持的思考与解决方案

问题描述

去年底的时候,我们的项目中需要使用工作流实现业务.经过一些讨论,最终决定使用开源引擎Activiti进行集成.在现阶段大环境下,项目要求需要使用自主可控的国产数据库--KingBase.

用过Activiti,Flowable的同学应该都知道,这类工具是强依赖数据库的.特别是在项目启动的过程中就会创建一批数据表用于存储BMPN模型,工作流实例和历史数据等.这就导致在项目代码启动连接数据库的时候,就会报错显示 "
不支持KingBaseES的数据库".


GuoCay原创...大约 4 分钟MekatokMekatok开发笔记