自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 资源 (3)
  • 收藏
  • 关注

原创 Arthur系统性详解微服务-完善中

第一篇:微服务的意义1、常见架构对比2、再次明确微服务的适合场景及优缺点第二篇:微服务的构建1、微服务建模关注点及方法论 1.1服务分类 1.2服务模型 1.3服务边界 1.4服务数据2、服务拆分和集成 2.1服务拆分及方法论 2.1.1服务拆分的维度、策略、依赖关系、数据及边界 2.1.2服务拆分的方法论 2.2...

2021-11-20 22:20:02 1974

原创 idea快捷键

自动创建测试类:https://blog.csdn.net/m0_37840000/article/details/81590784打开/关闭outline:  https://blog.csdn.net/m0_37840000/article/details/81591229

2018-08-11 20:50:26 132

原创 解释器模式

解释器

2024-03-21 16:28:17 234

原创 中介者模式

SqlSession是mybatis中用于与数据库交互的核心对象,而SqlSessionFactory则是创建SqlSession对象的工厂类。通过将SqlSession对象的创建和管理职责交由SqlSessionFactory统一管理,不仅可以保证SqlSession对象的有效性和一致性,同时也可以避免重复创建和销毁SqlSession对象的开销,提高系统性能和稳定性。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显式的相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

2024-02-28 19:28:38 493

原创 分布式锁注解SyncLock

通过springAOP和order注解在方法上切入解决事务和锁的优先级,提供统一开关锁接口loackManager集成不同分布式锁作为锁管理器,使用springEL表达式规范锁的命名和异常信息内容。五、代码实现:(目前暂实现concurrentHashMap和redis,如有需要自己拓展)锁的命名、异常信息、锁等待时间、快速失败、异常是否抛出。4、避免事务大于锁的优先级,造成。3、规范锁的命名和异常信息内容。1、简化手动开关锁的重复代码。2、集成不同分布式锁解决方案。四、常规分布式锁实现方案。

2024-01-20 10:42:57 479 2

原创 访问者模式

2、条件、分支语句的代替者,且这些分支依赖于该对象的状态。2、电商网站的商品分类可以看作是一个访问者对象,它可以访问不同类型的商品对象,例如数码产品、服装鞋帽、家居用品等。不同类型的商品对象可以有不同的属性和方法,例如价格、尺码、颜色、品牌等。1、医院的门诊部: 门诊部是一个类似于访问者的对象,它可以访问不同类型的病人对象,例如普通病人、急诊病人、儿科病人等。将算法与其所作用的对象分离开来,封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于其内部各个元素的新操作。

2023-12-20 09:27:23 627

原创 状态模式-

这使得你可以根据对象自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化。3、状态模式对"开闭原则"的支持并不太好,对于可以切换状态的状态模式,增加新的状态类需要修改那些负责状态转换的源代码,否则无法切换到新增状态,而且修改某个状态类的行为也需修改对应类的源代码。3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。1、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2、交通信号灯,红、黄、绿三种状态。

2023-11-15 18:56:04 805

原创 备忘录模式

在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将这个对象恢复到原先保存的状态。3、发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由管理者进行管理,这符合单一职责原则。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。如果要保存的内部状态信息过多或者特别频繁,将会占用比较大的内存资源。2、希望在对象之外保存状态,且除了自己其他类对象无法访问状态保存具体内容。2、如果需要保存的状态过多时,每一次保存都会消耗很多内存。

2023-10-20 17:14:42 486

原创 命令模式-

3、命令模式的拓展性好,接受者会对操作进行基本的封装,命令类再对基本操作进行二次封装,增加新命令时不必从新写,代码的复用性好;指的是将一个请求封装成一个对象,使发出请求的责任和执行请求的责任分割开,然后可以使用不同的请求把客户端参数化。1、对于很多数的请求-响应模式的功能,比较适合使用命令模式,命令模式对实现记录日志、撤销操作等功能比较方便。2、命令模式将命令的调用者和执行者分开,使得双方不必知道对方是如何操作的,降低了耦合度;1、命令模式将命令都封装起来,所以封装性好;:又叫动作模式或事务模式。

2023-09-20 15:25:00 463

原创 责任链模式

责任链

2023-08-28 20:19:28 758

原创 迭代器模式

这个类在MyBatis 中使用得非常频繁,包括解析数据源配置信息并填充到数据源类上,同时参数的解析、对象的设置都会使用这个类。1、旅游:国家与景点之间是集合与元素的关系,导游是国家提供的服务,而我们只和导游交互而不直接与国家交互,这种关系和迭代器模式各个角色之间的关系非常相似。由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。

2023-07-13 08:57:33 344

原创 观察者模式

3)google的EventBus,观察者具体观察的方法标注@Subscribe注解,并将观察者本身注册到消息总线EventBus,EventBus就会将标记了@Subscribe的方法的第一个参数作为观察者关注的事件类型, 当发布事件时,EventBus只会通知关注了这个时间的监听者。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。

2023-06-20 20:26:02 626

原创 模板方法-

2)mybatis的doUpdate、doFlushStatements、doQuery 和 doQueryCursor 这几个方法就是交由子类来实现的,也就是说继承 BaseExecutor 的子类只需要实现这 4 个基本方法来完成数据库的相关操作即可。3、把不变的行为写在父类上,去除子类的重复代码,提供了一个很好的代码复用平台,符合开闭原则。2、将不同的代码不同的子类中,通过对子类的拓展增加新的行为,提高代码的拓展性。1、类数目的增加,每一个抽象类都需要一个子类来实现,这样导致类的个数增加。

2023-05-29 14:22:22 770

原创 策略模式-

2)mybatis的执行器Executor的策略簇,实现了不同的执行器策略。Configuration类是根据传入的策略对象类型,生产相应的策略对象。:定义一系列的算法,把它们一个个封装起来,目的就是将算法的使用与算法的实现分离开来。从而算法的变化不会影响到使用算法的用户。2、避免使用多重条件语句,如if...else...语句、switch语句。1、假如系统中有很多类,而他们的区别仅仅在于他们的行为不同。1、客户端必须知道所有的策略,并且自行决定使用哪一个策略类。3、需要屏蔽算法规则。

2023-05-29 13:43:53 56

原创 微信公众号接入流程

说明:openid不同小程序/公众号是不相同的,unionid不同微信开放平台账号是不同的,同一开放平台下相同。注意:redirect_uri的域名必须是后台配置的正确域名,否则跳转不过去,跳转的url中会携带code。正确填入appid,appsecret以及code,此处的code即为第一步获取的code。正确填入 access_token、openid、lang一般为(zh_CN)五、关于获取accessToken和openid。三、开放平台账号绑定公众号。四、前端获取授权code。

2023-04-26 14:20:56 618 1

原创 享元模式-

享元模式

2023-04-25 10:30:18 44

原创 组合模式-

组合模式

2023-04-25 10:17:10 34

原创 桥接模式-

桥接

2023-04-24 18:32:10 590 1

原创 代理模式-

2)JDK和CGLib都是运行期生成字节码,JDK是直接写class字节码,CGLib是使用ASM框架写字节码,CGLib代理实现更复杂,生成代理类比JDK效率低。2)jdk proxy类重新生成一个新的类,实现了被代理类所有接口的方法。1)JDK动态代理是实现了被代理对象的接口,CGLib是继承了被代理对象。3、代理可以起到保护目标对象的作用,增强目标对象的职责。1)拿到被代理类的引用,并且获取它的所有接口(反射获取)1、代理模式能将代理对象与真实被调用的目标对象分离。保护目标对象,增强目标对象。

2023-03-31 18:21:40 357

原创 外观模式-

外观

2023-02-23 14:36:39 73

原创 装饰器模式

装饰器

2023-02-21 19:03:38 89

原创 适配器模式

适配器

2023-02-21 17:32:52 67

原创 建造者模式

建造者模式

2023-02-01 20:13:46 234

原创 mysql关键字之exists和in原理剖析

mysql关键字之exist和in原理剖析

2023-01-30 09:57:04 912 1

原创 原型模式-

原型模式

2023-01-10 17:47:35 222

原创 单例模式-

单例

2023-01-06 16:05:55 647

原创 抽象工厂模式

抽象工厂涉及模式

2022-12-16 15:37:23 63

原创 maven部署方案之分离业务包

部署优化、jar优化

2022-11-28 18:31:22 848

原创 工厂方法模式

工厂方法模式、ThreadFactory、LoggerFactory

2022-11-15 18:31:57 87

原创 Arthur解析之设计模式

策略、模板方法、观察者、迭代子、责任链、命令、备忘录、状态、访问者、中介者、解释器;适配器、装饰器、外观、代理、桥接、组合、享元;工厂方法、抽象工厂、单例、原型、建造者;

2022-10-14 16:40:45 120

原创 简单工厂模式

简单工厂模式

2022-10-14 16:30:34 182

原创 设计模式七大设计原则及三大分类

软件代码设计原则

2022-10-12 19:05:43 323

原创 idea必装插件推荐和联调自测方法

插件推荐

2022-08-20 11:14:58 1561 2

原创 JDK自带JVM分析工具

JVM工具

2022-07-27 20:36:20 3180

原创 jvm的启动过程

JVM启动

2022-07-16 16:06:43 1404

原创 JVM的前世今生及未来盘点

JVM的前世今生及未来盘点

2022-07-16 11:02:00 416

原创 领域驱动设计(Domain Driven Design,DDD)

一、领域驱动设计的作用与意义1、产生原因:软件实质是对真实世界的模拟,人认识世界总是简单到复杂,软件需求就是发现世界,软件变更则变成必然,业务逻辑则由初期的简单变成复杂。而DDD就是为了应对日益复杂的业务逻辑导致开发困难、软件代码难以维护的问题而提出的软件开发思想。2、领域建模思想现实世界有什么事物=》就有什么对象;现实世界有什么行为=》就有什么方法;现实世界是什么关系=》就有什么关联;3、作用理论:DDD把我们对软件设计的关注点从技术重新拉回到业务,从而专注于业务领域模型的

2022-05-30 20:29:29 1188

原创 mybatis-plus的落地实践

一、mybatis-plus官网: MyBatis-Plus二、应用层面:mapper、entitty三、配置:1、引入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version>&l...

2022-05-30 09:30:33 698

原创 Arthur解析系列之RocketMq

一、概念和特性:1、rocketMq的基本概念和模型2、rocketMq的功能特性二、架构设计:1、rocketMq的架构及工作流程三、问题和解决方案1、使用rocketMq遇到的问题2、rocketMq的解决方案3、消息中间件选型要点...

2022-03-16 18:21:49 117

原创 rocketMq问题和解决方案

一、使用rocketMq遇到的问题1、producer:1)、消息投递失败2)、需要延迟投递2、nameserver:宕机也不会造成消息丢失,单点故障有集群3、broker:1)、 消息同步过程中,broker宕机出现丢失2)、硬件设备损坏4、consumer:1)、消费消息失败2)、重复消费二、rocketMq的解决方案1、producer:1)、发送方式:同步或异步2)、消息类型:事务消息、延迟消息事务消息使得本地事务 和 消息投

2022-03-16 18:18:52 2502

《Java设计模式》课后答案-刘伟.rar

高等学校设计模式课程系列教材刘伟,java设计模式,内容丰富

2019-07-29

最全es学习教程完善中

做最全,最详细,最清晰elasticsearch教程,持续完善中

2018-12-14

struts25101lib_jb51.rar )

struts25101lib_jb51.rar ) struts25101lib_jb51.rar ) struts25101lib_jb51.rar ) struts25101lib_jb51.rar )

2017-12-16

空空如也

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

TA关注的人

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