自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MAC完美的博客

编程笔记

  • 博客(16)
  • 收藏
  • 关注

原创 AWS Technical Essentials

AWS Technical EssentialsObjectivesModule 1: Introduction of AWSModule 2: Foundational ServicesEC2VPCAmazon Storage ServicesS3EBSModule 3: Security, Identity, and Access ManagementModule 4: DatabasesMo...

2020-02-11 10:09:22 479

原创 AWS Cloud Practitioner Essentials (Second Edition)

AWS Cloud Practitioner EssentialsObjectivesIntroduction to the AWS CloudAWS Core ServicesAWS Integrated ServicesAWS ArchitectureAWS SecurityPricing and SupportSummary新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式...

2019-12-02 11:36:15 1490

原创 (第14天)每日源码调试之旅--SpringBoot2.1.0框架

接着昨天的调试,今天继续分析AbstractApplicationContext的refresh方法:先看prepareRefresh方法:doc介绍:为更新准备好context,设置启动日期和激活标志位同时执行属性源的初始化。实现细节:设置当前时间为启动日期,设置指示context是否已经关闭的标志位closed为false,设置指示当前context是否已经启动的标志位...

2018-11-28 11:27:29 193

原创 (第13天)每日源码调试之旅--SpringBoot2.1.0框架

接着昨天的调试,今天分析SpringApplication实例真正的run方法:先看doc介绍:运行Spring应用,创建和更新一个新的ApplicationContext。再看具体实现:开启StopWatch,用于一系列任务的计时,显示总运行时间和每一个命名的任务运行时间。 定义ConfigurableApplicationContext变量,SpringBootExcepti...

2018-11-27 11:21:11 261

原创 (第12天)每日源码调试之旅--SpringBoot2.1.0框架

今天开始调试SpringBoot2.1.0框架,先从最基本的没有任何组件的SpringBoot开始调试,调试的入口是@SpringBootApplication注解定义的主程序入口类的main方法:main方法内只调用了一个方法——SpringApplication的run方法,传入的参数是主程序入口类DemoApplication的类类型和命令行参数。先看SpringApplicatio...

2018-11-27 09:48:03 221

原创 (第11天)每日源码调试之旅--生产者与消费者模型实现

今天来看生产者与消费者模型实现最终优化方案,也是最流行的一种实现,即采用LinkedBlockingQueue的实现方式:开始调试:main方法中与之前的不同之处是产品仓库采用LinkedBlockingQueue模拟了一个100容量的仓库,其他没有区别,直接进入生产者线程:此处与之前的优化方案不同之处在于产品放入仓库的方法,直接将产品存入LinkedBlockingQ...

2018-11-25 14:09:14 241

原创 (第10天)每日源码调试之旅--生产者与消费者模型实现

今天来看昨天实现的生产者与消费者模型的优化,昨天实现的方案的缺点在于仓库存取产品只能让一个线程来存取,其他线程需要等待仓库的锁,并且产品的生产和消费过程也需要获取仓库的锁才能进行,现在来看一个优化后者的方案,即将产品的生产和消费过程进行剥离,让其不需要占用仓库锁,从而提高线程的效率。开始调试,首先进入main方法:此处与昨天一样,先新建仓库,生产者和消费者的实例,然后开启生产者和消费者...

2018-11-24 20:17:29 87

原创 (第9天)每日源码调试之旅--生产者与消费者模型实现

今天开始调试同事实现的三种生产者与消费者模型,三个实现是逐步优化而来的。三个实现代码全部调试完毕后会发步在github上。项目代码:https://github.com/zxc1210449483/producer_consumer。废话不多说,开始调试:断点打在main方法里面,进入main方法:首先新建一个存储产品的pList,类似于一个产品仓库,接着传入pList初始化生产者...

2018-11-23 10:52:51 192

原创 (第8天)每日源码调试之旅--实现CQRS模式的AXON框架

接着前一天的调试,断点来到eventsQueue中设置的PREPARE_COMMIT阶段的回调:此阶段先判断UnitOfWork有没有parent和其parent是否在PREPARE_COMMIT之前的阶段,满足条件的话,将当前UnitOfWork的eventQueue加入到其parent的eventQueue里,此处没有parent直接进入doWithEvent方法:,进入前先处理参数,...

2018-11-21 15:42:13 433

原创 (第7天)每日源码调试之旅--实现CQRS模式的AXON框架

接着前一天的调试,断点来到LockingRepository的prepareForCommit方法:此处先保证持有锁,然后进入父类AbstractRepository的prepareForCommit(用Current UnitOfWord注册handlers,用于在UnitOfWork提交后保存或删除所给的aggregate)方法:此处添加CurrentUnitOfWork的保存...

2018-11-20 11:17:24 229

原创 (第6天)每日源码调试之旅--实现CQRS模式的AXON框架

接着前一天的调试,断点来到AggregateLifecycle的publishOnEventBus方法:initializing默认为false,进入到父类AnnotatedAggregate的publishOnEventBus(用所给的event bus发布事件到外部的事件handlers)方法,在这之前先看参数处理:msg.andMetaData方法返回msg的副本,该消息的元数据与给...

2018-11-19 09:59:44 331 1

原创 (第5天)每日源码调试之旅--实现CQRS模式的AXON框架

接着前一天的调试,断点来到AggregateLifecycle的execute方法:此处并未直接执行task,而是继续调用AggregateLifecycle的executeWithResult方法:同之前的调用,此处依然取不到AggregateLifecycle的实例,直接装载其this(子类EventSourcedAggregate实例),返回task的调用:task.run(...

2018-11-16 16:47:15 343

原创 (第4天)每日源码调试之旅--实现CQRS模式的AXON框架

接着前一天的调试,断点来到AggregateLifecycle的executeWithResult方法:此处取不到AggregateLifecycle的实例,直接装载其子类this(EventSourcedAggregate实例),调用传入的回调WrappedMessageHandlingMember(MessageHandlingMember的抽象实现,增加了封装,可以给其代理的类拓展出...

2018-11-15 16:41:54 376 1

原创 (第3天)每日源码调试之旅--实现CQRS模式的AXON框架

接前一天的调试,调试断点来到AggregateConstructorCommandHandler的handle方法:首先调用AbstractRepository(提供aggregates存储的抽象,实际值为EventSourcingRepository)的newInstance构造一个Aggregate实例,传入的参数为命令handler的handle lambda表达式。继续进入...

2018-11-14 10:31:47 438

原创 (第2天)每日源码调试之旅--实现CQRS模式的AXON框架

接前一天的调试,调试断点来到SimpleCommandBus的doDispatch方法:直接看新建unitOfWork实例,调用DefaultUnitOfWork(UnitOfWork的实现,用来处理单个message)的startAndGet方法:此处先获得DefaultUnitOfWork实例,调用实例的start方法:此处主要开启一个CurrentUnitOfWork...

2018-11-13 10:16:01 533

原创 (第1天)每日源码调试之旅--实现CQRS模式的AXON框架

demo文件结构:github地址:https://github.com/zxc1210449483/axondemo开始调试:先在ProductController的commandGateway.sendAndWait(command)前打上端点,然后用postman发送POST请求:http://127.0.0.1:8080/product/31?name=ttt&pr...

2018-11-12 10:39:30 1618 1

空空如也

空空如也

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

TA关注的人

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