自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 DDD 大粒度读与写性能优化

DDD 大粒度读与写性能优化读场景简述解决方案:懒加载+延迟传递懒加载延迟传递实现思路可能的问题即时对象过多多次隐式查询写场景简述读场景简述在使用了DDD设计原则之后,对于持久层操作,一个聚合是最小粒度,这就带来一个问题(我们假设项目使用关系型数据库):如果我要查询某个聚合中的某个对象或是某个属性,我就必须要查询整个聚合。为什么会有这个问题?举个例子,我们现在有一个订单聚合订单聚合{ 订单信息{下单时间,付款总额}, 购买人信息{购买人姓名}, 订单详情{包含的商品}}我现在需要查

2021-03-31 15:15:56 689

原创 DDD 战术设计落地重难点——分包,分层,依赖关系,持久化设计

DDD 战术设计重难点——分包,分层,依赖关系 前言项目架构组织结构层级视图数据视图难点查操作性能优化写操作性能优化前言关于DDD战略架构(划分子域,创建聚合模型等)在此不再讨论,这里探讨一下在DDD的战术设计上的一些重点和难点。我想很多人在看完DDD的设计原则后曾今自己也想过如何采用DDD去构建一个系统,但是在构建过程中可能无从下手,不知道DDD的层级是怎样的,不知道它的各层之间的依赖关系等等,下面一一说明。项目架构准确来说,我的项目之前是三层架构,而现在将转换成DDD架构,那么我要做哪些?D

2021-03-18 14:29:55 2501 2

原创 Java juc系列3 ——locks包(一)大型图文教程 AQS的源码,有手有眼就能看懂

Java JUC系列目录链接Java juc系列3 ——locks包(一)AQS 学会用idea的debug功能,AQS的源码原来这么简单看这篇文章的基础:会使用idea的debug功能。(包括step over、step into、force step into、切换线程和修改内存值)会使用debug+看完=AQS源码真简单废话不多说,直接上代码,这里我写了一个小demo用来debugAQS的源码(图中⭕代表断点):没啥复杂的,就是三个线程,简单看一下先import java.util.co

2020-07-20 10:56:07 276

原创 Java juc系列2 —— synchronized关键字

Java JUC系列目录链接Java juc系列2 —— synchronized关键字JDK1.5后的synchronizedJava多线程 synchronized关键字的用法JAVA对象组成结构对象的多种锁状态锁的升级过程无锁—>偏向锁偏向锁—>轻量级锁轻量级锁 —>自旋锁(某种意义上这只是一种自旋的状态,并不叫锁)自旋锁—>重量级锁synchronized和LockJDK1.5后的synchronizedJava多线程 synchronized关键字的用法我们都知道s

2020-07-16 17:50:13 215

原创 Java juc系列7 —— 线程安全

Java JUC系列目录链接Java 线程池核心原理解析何为线程安全如何解决线程安全结语何为线程安全直接上个伪代码:boolean a = 多个线程共享变量;boolean b = 存在写操作;boolean c = 写操作导致数据冲突;if( a && b && c ) { 存在线程安全问题;}文字描述就是,只有多个线程共享变量,线程存在写操作,操作导致数据冲突同时满足的情况下,才会存在线程安全问题。如何解决线程安全解决线程安全还不简单,不就是让

2020-07-13 11:00:50 199

原创 分布式事务解决方案(图解原理篇)

[Java 微服务系列目录链接]Java 微服务系列一 ——分布式事务解决方案定义微服务分布式事务分布式事务单应用多数据源多应用多数据源解决方案2pctcc本地消息表定义先来说一下标题中的一些词的定义:微服务微服务是一种系统的架构设计方式,微服务将传统的单应用程序的功能拆分成多个微小的应用程序,每块微服务各完成一定的功能业务。微服务的优点:微服务比起传统单应用程序更加轻量化,每个模块可以由单独的开发团队开发,每个团队可以有不同的技术栈,降低了粒度,提高了开发效率,更加适合于敏捷开发;微服务

2020-06-18 09:35:44 456

原创 Java 微服务系列

Java 微服务系列系列目录Java juc系列1 —— 分布式事务解决方案(没链接的是还没做。。。)

2020-06-17 16:20:40 134

原创 Java juc系列6 —— 线程池

Java JUC系列目录链接Java juc系列6 —— 线程池Java线程池的基础用法创建和使用为什么需要线程池线程的生命周期[^1]新建就绪运行休眠终止使用线程的代价线程池帮我们做什么线程池原理Java线程池的基础用法在深入了解Java线程池之前,我们先来回顾一下线程池的基础用法。创建和使用想要创建一个线程池有两种方法(其实底层都用的同一种):使用excutors的静态方法创建,比如ExecutorService singleThreadPool = Executors.newSingle

2020-06-16 09:49:21 245

原创 Java juc系列5 ——atomic

Java JUC系列目录链接Java juc系列5 ——atomic续言ConditionCondition和ObjectCondition实现类源码分析续言上篇文章中说完了AQS和锁,还剩下几个点这里再做介绍。ConditionCondition据说是jdk1.6引入的(不重要了),用于替代Object的一种锁等待和通知机制。Condition和Object其实就是替代了原来的object.wait();object.notify();object.notifyAll();更新为

2020-06-11 17:47:29 172

原创 Java juc系列4 ——locks包(二)

Java JUC系列目录链接Java juc系列4 ——locks包(二)locks包简介AQSAQS中的主要成员变量AQS中的主要方法ReentrantLock公平队列同步器非公平队列同步器ReentrantReadWriteLocklocks包简介locks是java.util.concurrent包下的设计线程锁相关的包,今天我们来简单分析一些这个包下面的内容和他们的主要实现原理。AQS说到多线程自然会有锁机制,有锁机制自然就有占有锁线程和等待线程,而等待线程就会由我们的AQS(抽象队列同步

2020-06-11 15:25:20 548

原创 软件工程课设/毕设———教学辅助平台

网络教学辅助平台介绍项目简单介绍相关技术功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入项目简单介绍学生,教师,管理...

2020-06-09 21:41:36 1421 4

原创 Java JUC并发包解析 [源码][计算机原理][小白慎入]

Java JUC系列[硬核]系列目录Java juc系列1 —— volatile关键字Java juc系列2 —— synchronized关键字Java juc系列3 ——locks包(一)Java juc系列3 ——locks包(二)(没链接的是还没做。。。)

2020-06-08 15:31:45 321 3

原创 Java juc系列1 —— volatile关键字

Java juc系列1 —— volatile关键字Java多线程 主存和工作内存概念JMM模型线程何时与主存发生交互指令重排什么是指令重排指令排序有多少种类[^2]什么情况下不会发生指令重排volatile关键字volatile如何保证数据的可见性volatile如何禁止指令的重排volatile来解决什么volatile带来的问题happen-beforeJava多线程 主存和工作内存概念在了解volatile关键字之前,我们需要先了解一下Java多线程的一些底层原理。JMM模型在计算机中,我们

2020-06-04 15:18:52 352 2

网络教学辅助平台.zip

网络教学辅助平台的设计文档,包含 -数据库设计 -主要业务流程图 -问题定义和可行性分析文档 -需求分析概要设计文档 -面向对象设计文档 -测试计划文档

2020-02-02

空空如也

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

TA关注的人

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