自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 一致性哈希算法的实现

一致性哈希算法package com.hashdemo;import java.util.SortedMap;import java.util.TreeMap;/** * 不带虚拟节点的一致性Hash算法 * 重点关注: * 1、如何造一个hash环 * 2、如何在哈希环上映射服务器节点 * 3、如何找到对应的节点 */public class ConsistHashWithoutVirsualNode { /** * 服务器列表 */ .

2020-06-19 10:40:43 251

原创 Spring容器刷新 refresh

流程容器刷新前准备 创建BeanFactory 初始化BeanFactory 执行BeanFactoryPostProcessor的postProcessBeanFactory方法 注册BeanPostProcessor 初始化MessageSource国际化消息 初始化事件传播器 其它初始化 注册监听器 实例化非延迟单例bean 完成刷新发布刷新事件 结束代码@Override public void refresh() throws BeansExceptio.

2020-06-10 17:13:17 456

原创 理解spring aop原理

spring aop主要是通过不修改源代码的方式,将非核心功能代码织入来实现方法的增强。那么spring aop的底层是如何实现对方法的增强的?答案是:代理模式。代理又分为静态代理和动态代理。静态代理public interface ISubject { void request();}public class RealSubject implements ISubject { @Override public void request() {

2020-06-10 16:41:12 212

原创 理解Spring 核心原理

Spring的核心是提供一个容器(Container),通常称为Spring应用上下文(Spring Application Context),它们会创建和管理应用组件。这里不得不提另一个概念。控制反转IOC(Inversion of Control)简单地说,就是由spring来负责控制对象的生命周期和对象间的关系。这跟以往的通过new进行创建对象不同。以往是通过代码主动地去创建依赖对象,而IOC是有一个专门的容器来创建这些对象,即由IOC容器来控制对象的创建。就是把new对象实...

2020-06-10 15:39:05 344

原创 理解Spring MVC

用户发送请求至分发器DispatcherServlet; DispatcherServlet收到请求后,调用HandlerMapping处理映射器; HandlerMapping处理映射器根据请求的URL,找到具体的Handler处理器,并生成。如果有拦截器,也一并生成; DispatcherServlet通过HandleAdapter适配器,调用步骤3所生成的Handler处理器; HandleAdapter执行处理器Handler; 执行完后,返回ModelAndView; ...

2020-06-10 14:35:55 96

原创 领域驱动设计DDD 场景分析

在场景分析时,应该关注做什么,而不是如何做业务才是重心!

2020-06-09 17:17:11 388

原创 领域驱动设计DDD 战术设计

2020-06-09 17:15:28 325

原创 领域驱动设计DDD 设计过程

2020-06-09 16:53:04 163

原创 DDD与数字转型

大平台把公共能力和核心能力分开建设,解决公共模块重复投入和重复建设的问题。中台关键字:共享,联通,融合,创新联通是前台和中台之间的联通。融合是前台流程和数据的融合。然后以共享的方式,支持前端一线业务的发展和创新。它解决了什么问题?1、核心业务链路的联通和不同渠道服务的共享问题2、解决系统微服务拆分之后的数据孤岛,数据融合和业务创新的问题3、针对前端用户的感受就是只有一个前台,而非要使用一个企业下的多个APP、网站、应用等。数据中台的职能是...

2020-06-09 15:56:42 555

原创 微服务与DDD

DDD是一种架构设计的思想和方法,从业务领域视角划分领域边界,使用通用语言进行高效沟通,抽象出业务领域模型,维持业务与代码的一致性。 微服务是一种架构风格,关注运行时的服务间的通讯,容错和隔离降级,实现整体的服务治理,各个服务的独立开发,测试,构建,部署。解决问题DDD通过战略设计建立领域模型,划分领域边界,解决微服务设计过程中,边界难以划分的难题。DDD带来的好处1、完整的架构设计思路,能给你带来战略设计到战术设计的过程,设计思路清晰明了,设计过程更加规...

2020-06-09 15:52:19 318

原创 DDD设计与微服务模型

标准代码模型好处1.项目团队成员更好地理解代码,根据代码规范实现团队协作2.可以让微服务各层互不干扰,分工协作,避免不必要的代码混淆3.可以轻松应对微服务架构的演进和代码重构微服务目录Interface用户接口层 与前端交互,用来接收用户数据和展现数据相关代码。 下级目录为 1.assembler:实现DTO和领域对象之间的相互转换和数据交换 2.dto:数据传输的载体 3.facade:提供较粗...

2020-06-09 15:50:48 632

原创 DDD代码分层架构

DDD四层架构1、用户接口层:负责用户显示信息和接受用户的指令,包含:用户、程序、自动化测试、批处理等2、应用层:理论上不应该有业务规则或逻辑,主要面向用例和流程相关的操作,由于领域层之上,所以包含了多个聚合,可以协调多个聚合服务和领域对象完成服务编排和组合。负责处理业务用例的执行顺序和结果的拼装,例如:安全认证,权限校验,事务控制,发送或者订阅领域事件3、领域层:领域层主要体现领域模型的业务能力,用来表达业务概念,业务状态和业务规则。4、基础层:贯穿所有层,采用依赖倒置设计为其他层提供.

2020-06-09 15:46:18 5231

原创 DDD核心概念

领域指范围,边界,特定的区域。子域把领域按照一定的业务规则划分,进而划分出多个子域,每个子域对应一个更小的业务范围。它是把问题逐步分解,降低业务理解和系统实现的复杂度的过程。它分为三类:核心域、通用域、支撑域。核心域:决定公司产品竞争力的子域是核心域。 通用域:没有太多的个性化的诉求,同时被多个子域使用的通用功能域是通用域,例如:认证、权限。 支撑域:还有一种既不包括产品竞争力的功能,也不包含通用功能的子域,但是它又是必须的,这种子域叫支撑域。通用语言...

2020-06-09 15:42:47 1332

原创 什么是DDD?

DDD是一种设计思想,它是基于事件风暴,使用通用语言,对业务进行领域建模,通过限界上下文对业务进行合理的领域拆分,使得领域模型更好地转向微服务和落地,从而解决复杂系统难以理解,难以演进,也可以解决服务业务界限难以界定的问题。战略设计建立领域模型,划分服务边界,建立通用的限界上下文。战术设计侧重于领域模型的实现,从领域模型转向微服务的设计和落地。...

2020-06-09 15:40:44 10748 2

原创 Flowable API 表达式

Flowable API 表达式 Flowable使用UEL进行表达式解析。UEL代表Unitied Expression Language,是EE6规范的一部分。 表达式可以用于Java服务任务(Java ServiceTask)、执行监听器(Execution Listener)、任务监听器(Task Listener)与条件顺序流(Conditional sequence f...

2019-02-01 11:15:58 6178

原创 Flowable API 瞬时变量

Flowable API 瞬时变量 瞬时变量(Transient variable)类似普通变量,只是不会被持久化。通常来讲,瞬时变量用于高级使用场景。如果不明确,还是使用普通流程变量为好。 瞬时变量具有下列特性:瞬时变量完全不存储历史 与普通变量类似,设置瞬时变量时会存入最上层父中。这意味着在一个执行中设置一个变量时,瞬时变量实际上会存储在流程实例执行中。与变通变量...

2019-02-01 11:15:31 2858

原创 Flowable API 变量

Flowable API 变量 流程实例按步骤执行时,需要使用一些数据。在Flowable中,这些数据称作变量(variable),并会存储在数据库中。变量可以用在表达式中(例如在排他网关中用于选择正确的出口路径),也可以在Java服务任务(service task)中用于调用外部服务(例如为服务调用提供输入或结果存储),等等 流程实例可以持有变量(称作流程变量process ...

2019-02-01 11:14:56 5238

原创 Flowable 查询API

Flowable 查询API 在引擎中查询数据有两种方式:查询API和原生(Native)查询。查询API可以使用链式API,通过编程方式进行类型安全的查询。可以在查询中增加各种条件(所有条件都用做AND逻辑),也可以明确指定排序方式。下例是示例代码:List<Task> tasks = taskService.createTaskQuery() .taskAs...

2019-02-01 11:14:20 6012

原创 Flowable API

Flowable API 流程引擎API与服务引擎API是与Flowable交互的最常用手段。总入口点是ProcessEngine。可以使用多种方式创建。使用ProcessEngine,可以获得各种提供工作流/BPMN方法的服务。它是线程安全的,可以在服务器中保存并共用一个引用。  ProcessEngine processEngine = ProcessEngine...

2019-02-01 11:12:13 4117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除