- 博客(8)
- 收藏
- 关注
原创 spring-boot 启动加载(一)
本章深入讲解 spring-boot 启动加载过程,以及spring加载启动中间件线程管理通过 main 函数入口,两种方式启动主线程构建初始化spring第一种通过SpringApplication.run方式: ApplicationContext context = SpringApplication.run(Application.class, args);第二种通过SpringApplicationBuilder方式: ApplicationContext
2020-11-10 11:27:51
216
原创 如何让匹配算法保持高效优雅
脱离不了实际业务场景的架构设计和算法将是没有价值,或称为“耍流氓”。本章将根据实际业务案例(请允许我将业务模糊一下)讲解 “匹配算法” 的设计和实现;业务:在众多的数据行项目下,通过数据源匹配目标源,找到最优匹配项分析:数据源作为标准,并定义匹配的元素以及优先级,目标源中可能匹配到多个,但是需要找到最优的并且占用掉;简单点讲,就像根据自己的标准找对象一样,最多一个。实现:数据源sourceItems,目标源 targetItems,匹配因素 tokens,优先级:order咱们根据实现一步一步讲解
2020-11-01 17:14:34
165
原创 状态机的设计和应用
状态机的设计和应用状态机定义在离散数学中可以用有向图来表示状态机,用于进行对象行为建模,描述对象在它的生命周期内所经历的状态序列(这里描述的状态机前提是有限状态);表示由一组状态节点和一组相应的转移函数组成,通过响应一系列事件而运作;上一个状态节点通过设定的一个事件进行动作完成状态的转移。为什么选用在状态转换的业务逻辑处理过程中,通过 if else 判断或者switch 处理进行状态的转换是最简单且容易的,可想而知,状态量多了,业务变复杂后,代码冗余等,维护是否是一件苦恼的事,那么总结两点方法:(1)
2020-11-01 12:14:21
445
1
原创 数据分组处理的java实现
大多情况下sql是可以实现数据的处理,可以减少程序去做额外的处理工作,只是有些业务情况sql做不到的,比如说本人在数据处理工作中,会涉及到对数据单独做分组展示的情况;不是sql的group by 返回list,而是返回的数据集为List<Map>等复杂的层级数组,而且具有分组的特点。比如下面的Bean:@Data@Builder@AllArgsConstructorpubli...
2019-06-23 14:35:56
3683
原创 springboot项目中基于mybatis组件的升级解决
在平日里代码的开发工作中,重复最多的还是对表的增删改查,很耗时,这就提起了目前项目的组件选型,用的是springboot+mybatis,写逻辑之前还要花几刻钟写增删改查的mapper,leader说就写几个xml吧不多,但是我想哭,看着这么多需求过来,宝宝哭着要下班呢。以下代码为 伪代码 结构:@Repositorypublic interface BasAuditNoticeMapper...
2019-06-22 22:31:06
679
1
原创 程序架构设计之事件驱动模型设计
程序架构设计之事件驱动模型设计本章主要讲解事件驱动模式的编程框架设计,也就是观察者(或者说是 发布订阅)模式.那么首先为什么要用到事件驱动模型呢?一般开发程序是采用流程(顺序)驱动编程方式,改进采用事件驱动模式主要是处理并发问题,提高对代码的耦合度和可维护性;降低了程序的相互依赖等.以下是部分框架的流程设计图,(后续可待完善,并实现代码)架构图流程设计图事件驱动模型是可以替换如通过SP...
2019-06-10 14:28:16
667
原创 程序架构设计之总结23种设计模式
程序架构设计本章主要讲解程序设计的设计模式,开发代码过程中代码质量很重要的,包括健壮性、可维护、可扩展、可替换复用等等,比如:开闭原则(对扩展开放,对修改关闭,在不修改现有代码的前提下对程序进行扩展)等等。所以什么场景采用什么设计模式是需要考虑从整体权衡。那么什么是程序的设计模式呢?专业的解释是:针对软件开发过程中重复发生的问题的解决方式方法。因为设计模式并不是万能公式,也不可滥用,归其根...
2019-06-10 14:22:38
701
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人