PlantUML绘制时序图 PlantUML时序图背景时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图,用于描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。时序图的使用场景非常广泛,几乎各行各业都可以使用。下面,简单介绍如何使用plantUML插件,来绘制时序图。 PlantUML插件下载首先,打开IDEA,找到setting,然后选择plugins,搜索PlantUML,找到如 2024-11-17 #工作积累 #UML
TrieTree应用—区划查询 背景在日常开发中,我们经常会遇到树形结构的数据查询。以用户地址为例,在填写用户地址的时候,我们一般需要定位到用户所属的省、市、区等信息,这里的省、市、区就是典型的树形结构。 当我们在搜索栏输入搜索信息时,搜索栏会调用后端接口,来展示对应的参考搜索信息列表。在输入地址信息时,我们也遇到了类似的需求,通过输入的信息,获取与之相匹配的区划名称。要完成这个需求,有几种实现方式: 数据库模糊搜索:将搜 2024-10-27 #工作积累
流程引擎实现(二)—排他网关 背景在流程图中,时常会涉及到分支的判断,进入判断逻辑后,我们一般只会从分支的一个出口出来,然后往下继续执行,这在流程引擎中,称之为排他网关(Exclusive Gateway),排他网关用于在流程执行过程中做出决策,基于流程中的条件来选择一个唯一的路径继续执行。 下面我们以登录为例,在登录流程中,会依次执行下列流程: 账号定位:根据入参定位账号信息 密码检查:根据获取的账号信息,以及输入的密码, 2024-10-05 #工作积累 #流程引擎
SpringBoot日志打印实践 背景在项目当中,我们经常需要打印一些日志埋点信息,这些日志埋点信息,在后续软件的运维、稳定性建设中发挥了巨大的作用: 问题追踪:通过埋点日志中的关键信息,帮助定位系统异常原因 系统监控:通过日志,监控系统的运行情况,包括性能指标、访问频率、错误等 数据分析:分析用户行为、系统性能和业务趋势等 调试:通过查看日志,帮助开发人员了解程序在执行过程中的状态和行为 SpringBoot整合Logbac 2024-10-04 #工作积累
流程引擎实现(一)—串行流程实现 背景在传统的MVC架构中,和业务逻辑相关的代码一般是编写在service层,但随着业务的发展,service层会不断充斥各种逻辑,导致service层过于臃肿、庞大,此外,职责定义不够清晰,如何对service层进行瘦身,以达到职责分离的效果,成为后续开发中不断需要面对的一个难题。 通过流程引擎,将service层的各种业务逻辑,拆分到不同的activitiy节点中,从而达到职责分离的效果,此外, 2024-10-04 #工作积累 #流程引擎
Service层瘦身思考 背景传统的MVC架构中,业务逻辑一般在service层实现,但随着业务的发展,service层也在不断充斥、嵌入各种业务逻辑代码,导致service层代码过于臃肿、庞大,不利于代码的维护和业务的后续迭代发展。此时我们需要对service层进行瘦身,以达到职责分离、高内聚低耦合的效果。 下面以注册链路为例,讲述如何通过各种方式,对service层的注册逻辑进行瘦身,简化,从而降低代码复杂度,并达到职 2024-10-04 #工作积累
手撸XXL-JOB(四)—远程调用定时任务 Java Socket网络编程网络编程是Java编程中的重要组成部分,包括服务端和客户端两部分内容。Socket是Java网络编程的基本组件之一,用于在应用程序之间提供双向通信,Socket提供了一种标准的接口,允许应用程序通过网络发送和接收数据,在Java中,Socket可以分为客户端Socket和服务端Socket两种类型。客户端Socket:客户端 Socket 用于与服务端 Socket 2024-05-14 #XXL-JOB
手撸XXL-JOB(三)—本地定时任务管理平台 引言在XXL-JOB中,有一个xxl-job-admin项目,这个就相当于定时任务的调度平台,我们参考XXL-JOB,也添加这么一个调度平台,由于篇幅有限,我们先实现一个本地的定时任务调度平台,至于如何调用远程的定时任务,后面再进行讲解。 前期准备首先我们创建一个springboot项目,引入下列依赖: 12345678910111213141516171819202122232425262728 2024-05-14 #XXL-JOB
手撸XXL-JOB(二)—定时任务管理 在上一节中,我们介绍了SpringBoot中关于定时任务的执行方式,以及ScheduledExecutorService接口提供的定时任务执行方法。假设我们现在要写类似XXL-JOB这样的任务调度平台,那么,对于任务的管理,是尤为重要的。接下来我们将一步一步,实现一个任务调度管理类。 YangJobManager类基础实现假设我们现在的任务管理类,名为YangJobManager类。对于定时任务的 2024-05-14 #XXL-JOB
手撸XXL-JOB(一)—定时任务的执行 SpringBoot执行定时任务对于定时任务的执行,SpringBoot提供了三种创建方式:1)基于注解(@Scheduled)2)基于接口(SchedulingConfigurer)3)基于注解设定多线程定时任务 基于Scheduled注解首先我们创建一个SpringBoot项目,然后引入spring-boot-starter-web依赖,在启动类上添加EnableScheduling注解开启定 2024-05-14 #XXL-JOB