自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows本地dockr的clickhouse链接本地mysql服务,连接不上

报错信息:SQL 错误 [1000] [08000]: Poco::Exception. Code: 1000, e.code() = 0, Exception: Connections to all replicas failed: test1@localhost:3306 as user root (version 21.12.3.32 (official build)), server ClickHouseNode [uri=http://localhost:8123/default, opti

2023-11-26 19:57:53 624

原创 行为型模式-访问者模式

根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。2、需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,也不希望在增加新操作时修改这些类。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。您在朋友家做客,您是访问者,朋友接受您的访问,您通过朋友的描述,然后对朋友的描述做出一个判断,这就是访问者模式。在被访问的类里面加一个对外提供接待访问者的接口。

2023-10-31 21:16:27 242

原创 行为型模式-模板模式

1、在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异。3、spring 中对 Hibernate 的支持,将一些已经定好的方法封装起来,比如开启事务、获取 Session、关闭 Session 等,程序员不重复写那些已经规范好的代码,直接丢一个实体就可以保存。在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。1、有多个子类共有的方法,且逻辑相同。2、重要的、复杂的方法,可以考虑作为模板方法。每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。

2023-10-29 22:53:52 309

原创 行为型模式-策略模式

1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。2、所有策略类都需要对外暴露。

2023-10-26 23:50:37 271

原创 行为型模式-空对象模式

在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。

2023-10-25 22:53:53 213

原创 行为型模式-状态模式

3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。3、状态模式对"开闭原则"的支持并不太好,对于可以切换状态的状态模式,增加新的状态类需要修改那些负责状态转换的源代码,否则无法切换到新增状态,而且修改某个状态类的行为也需修改对应类的源代码。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。1、行为随状态改变而改变的场景。

2023-10-24 22:43:20 665

原创 行为型模式-观察者模式

1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。当主题的状态发生改变时,所有依赖于它的观察者都会收到通知并进行相应的更新。观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。

2023-10-23 22:56:21 272

原创 行为型模式-备忘录模式

备忘录模式保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。

2023-10-22 22:21:49 537

原创 行为型模式-中介者模式

是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。

2023-10-19 22:34:37 394

原创 行为型模式-迭代器模式

迭代器模式是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

2023-10-16 21:41:44 233

原创 行为型模式-解释器模式

提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。

2023-09-25 22:14:01 360

原创 行为型模式-命令模式

是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合

2023-09-22 21:40:15 288

原创 行为型模式-责任链模式

为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

2023-09-17 11:56:23 184

原创 结构型模式-代理模式

一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。1、Windows 里面的快捷方式。 2、猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类。 3、买火车票不一定在火车站买,也可以去代售点。 4、一张支票或银行存单是账户中资金的代理。支票在市场交易中用来代替现金,并提供对签发人账号上资金的控制。

2023-09-14 23:30:40 340

原创 结构型模式-享元模式

主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的Circle对象。

2023-09-13 23:09:04 235

原创 结构型模式-外观模式

隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

2023-09-12 22:59:46 342

原创 结构型模式-装饰器模式

允许向一个现有的对象添加新的功能,同时又不改变其结构,这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。装饰器模式通过将对象包装在装饰器类中,以便动态地修改其行为。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。

2023-09-11 23:11:33 205

原创 结构型模式-组合模式

1、算术表达式包括操作数、操作符和另一个操作数,其中,另一个操作数也可以是操作数、操作符和另一个操作数。它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。2、您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。部分、整体场景,如树形菜单,文件、文件夹的管理。树枝和叶子实现统一接口,树枝内部组合该接口。

2023-09-09 15:51:34 325

原创 结构型模式-过滤器模式

允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。

2023-09-07 23:00:18 298

原创 结构型模式-桥接模式

桥接模式的目的是将抽象与实现分离,使它们可以独立地变化,该模式通过将一个对象的抽象部分与它的实现部分分离,使它们可以独立地改变。它通过组合的方式,而不是继承的方式,将抽象和实现的部分连接起来。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类,这两种类型的类可被结构化改变而互不影响。在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。将抽象部分与实现部分分离,使它们都可以独立的变化。

2023-09-04 23:56:55 833

原创 结构型模式-适配器模式

2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。(比如老虎和飞禽,现在多了一个飞虎,在不增加实体的需求下,增加一个适配器,在里面包容一个虎对象,实现飞的接口。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。将一个类的接口转换成客户希望的另外一个接口。主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。

2023-09-03 16:24:42 546

原创 创建型模式-原型模式

7、在实际项目中,原型模式很少单独出现,一般是和工厂方法模式一起出现,通过 clone 的方法创建一个对象,然后由工厂方法提供给调用者。1、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个类引用不支持串行化的间接对象,或者引用含有循环结构的时候。原型模式是用于创建重复的对象,同时又能保证性能,这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆,当直接创建对象的代价比较大时,则采用这种模式。利用已有的一个原型对象,快速地生成和原型对象一样的实例。

2023-08-29 00:13:13 542

原创 创建型模式-建造者模式

我们假设一个快餐店的商业案例,其中,一个典型的套餐可以是一个汉堡(Burger)和一杯冷饮(Cold drink)。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。1、去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"。接口的实体类,汉堡是包在纸盒中,冷饮是装在瓶子中。使用多个简单的对象一步一步构建成一个复杂的对象。

2023-08-26 22:21:10 946

原创 创建型模式-单例模式

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。一个全局使用的类频繁地创建与销毁。当您想控制实例数目,节省系统资源的时候。判断系统是否已经有这个单例,如果有则返回,如果没有则创建。构造函数是私有的。1. 全局共享资源:当你需要一个全局的对象来存储全局的信息,例如配置信息,环境变量等,可以使用单例模式。

2023-08-25 00:15:52 423 1

原创 创建型模式-抽象工厂模式

在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。通过使用抽象工厂模式,可以将客户端与具体产品的创建过程解耦,使得客户端可以通过工厂接口来创建一族产品。:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。:主要解决接口选择的问题。:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。:在一个产品族里面,定义多个产品。

2023-08-23 22:48:48 580

原创 创建型模式——工厂模式

每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。通过使用工厂模式,可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类型的对象。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。让其子类实现工厂接口,返回的也是一个抽象的产品。主要解决接口选择的问题。

2023-08-20 16:37:28 103 1

原创 SQL语句解析

exists 运算符用来判断查询子句是否有记录,如果有一条或多条记录,则返回true,否则返回false,not exists相反。如果想要在分组统计数据的基础上在进行相同的统计 (如sum、avg),那么就需要使用with rollup。MySQL临时表用来保存一些临时数据,临时表只在当前链接可见,链接关闭,数据会自动释放。union运算会将两个以上的select语句的结果链接组合到一个组合中,自动去重。复制表分为只复制表数据 和 完全复制表(数据+结构等)如:将表中数据按照名字分子后在统计。

2023-03-14 00:20:44 75 1

原创 MySQL数据类型

本文主要讲述了MySQL中的所有数据类型:定点类型、浮点类型、位值类型、日期类型、字符串类型、json类型。

2023-03-07 01:29:18 489

原创 微服务保护(熔断)和阿里Sentinel

微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 解决雪崩问题的常见方式有四种...............................

2022-08-27 06:22:43 565 1

原创 八股文第二十二天

Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能非关系型(NoSQL) 的(key-value)键值对数据库。可以用作数据库、缓存、消息中间件等。

2022-08-25 00:27:01 200

原创 八股文第二十一天

谈到 SOA 和微服务的区别, 那咱们先谈谈架构的演变1. 集中式架构项目功能简单, 一个项目只需一个应用, 将所有功能部署在一起, 这样的架构好处是减 少了部署节点和成本缺点: 代码耦合,开发维护困难, 无法水平扩展, 单点容错率低,并发能力差2. 垂直拆分架构当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我 们根据业务功能对系统进行拆分:优点:缺点:系统间相互独立,会有很多重复开发工作,影响开发效率3. 分布式服务当垂直应用越来越多, 随着项目业务功能越来越复

2022-08-24 21:24:49 169

原创 SpringBoot自动装配原理

>我们进入@SprignbootApplication这个注解中,里面会有四类注解>其中:>1.元注解包括@Target(声明@Retention(RetentionPolicykey:org.springframework.boot.autoconfigure.EnableAutoConfiguration。@Import({AutoConfigurationImportSelector.class}):导入AutoConfigurationImportSelector这个配置类.加载自动配置的类。

2022-08-23 18:07:57 171

原创 八股文第二十天

starter 启动器,可以通过启动器集成其他的技术,比如说: web, mybatis, redis 等等.可以提供对应技术的开发和运行环境. 比如: pom 中引入 spring-boot-starter-web, 就可以进行 web 开发.

2022-08-22 20:11:28 178

原创 八股文第十九天

5.@RequestParam: 标注在方法参数之前,用于对传入的参数做一些限制,支持三个 属性: - value:默认属性,用于指定前端传入的参数名称 - required:用于指定此参数是否必传 - defaultValue:当参数为非必传参数且前端没有传入参数时,指定一个默认值 6. @ControllerAdvice 标注在一个类上,表示该类是一个全局异常处理的类。return mv;用于类 上,则表示类中的所有响应请求的方法都是以该地址作为父路径。

2022-08-22 05:15:50 158

原创 八股文第十八天

Spring 事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring 是 无法提供事务功能的。① PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。② PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务, 如果当前不存在事务,就以非事务执行。③ PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事 务,如果当前不存在事务,就抛出异常。...

2022-08-17 19:22:25 184

原创 八股文第十七天

如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用 resultMap 属性,通过 resultMap 手动建立对象关系映射,resultMap 要配置一下表和类的一 一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来。水平切分:将记录散列到不同的表中,各表的结构完全相同,每次从分表中查询, 提高效率。索引字段的选择, 最佳候选列应当从 where 子句的条件中提取, 如果 where 子句中的组合比较多, 那么应当挑选最常用, 过滤效果最好的列的组合....

2022-08-16 15:02:49 420

原创 学成在线第七天

对于该项目来说是一个核心业务,除了页面生成之外,一般都需要扩展其他操作,这些逻辑若都在课程发布中接入,那课程发布的实现将耦合所有下游业务。是Spring提供的异步处理注解,被此注解标注的方法会在新的线程中执行,其实就相当于我们自己new Thread。在页面搜索:http://www.xuecheng.com/pages/47.html,查看生成的静态页面。将需要多线程处理的业务逻辑,抽取到一个新的java类中,配置方法。同步:就是在发出一个调用时,在没有得到结果之前, 该调用就不返回。...

2022-08-14 21:33:22 308

原创 八股文第十六天

Mysql 中的 B+Tree MySql 索引数据结构对经典的 B+Tree 进行了优化, 在原 B+Tree 的基础上, 增加了一个指向相邻叶子节点的链表指针, 就形成了带有顺序指针的 B+Tree, 提高区间访问的性能。(2)乐观锁: 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。......

2022-08-14 12:46:30 224

原创 八股文第十五天

3 ) 可重复读(Repeatable read): 这是 MySQL 的默认隔离级别,它确保了一个事务中多个实例在并发读取数据的时候会读取到一样的数据;简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。(1)读未提交(read Uncommited): 在该隔离级别,所有的事务都可以读取到别的事务中未提交的数据,会产生脏读问题,在项目中基本不怎么用, 安全性太差;索引的主要作用是加快数据查找速度,提高数据库的性能。...

2022-08-12 17:23:14 89

原创 学成在线第六天

我们经常浏览电商网站,电商网站浏览量最大的页面是什么?商品检索列表、商品详情。对于在线教育网站,课程就是商品。因此,页的访问流量是巨大的。因此,除了上面的,本章我们还需要满足一个:高性能课程详情页访问。为什么要形成呢?课程发布信息代表着一次课程输出的最终确定。后续的业务,如课程购买、学习将围绕着该课程发布信息,从业务角度该信息不可轻易修改,只读(若修改,需要重新走审核流程)。课程业务表与发布内容相分离,课程业务信息是经常发生变动的,而课程发布信息不会轻易修改,因此形成业务级别的,两者互不影响。.......

2022-08-12 02:36:04 207

ssm框建-二手书商城

使用IDEA,ssm框建+js+bootstrap+mysql+jdk8,前端后端都有,适合课设和毕设,设计优美操作简单

2022-04-07

java-jdk11.0.1

javaJDK11,已测试能用,放心用

2022-04-07

java的jdk-17.0.2

java的配置环境,已测试能用

2022-04-07

空空如也

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

TA关注的人

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