12 2022 档案
摘要:https://cloud.tencent.com/developer/article/1683283
阅读全文
摘要:动态代理学习:https://www.cnblogs.com/xiaoluo501395377/p/3383130.html ProxyFactory:https://www.cnblogs.com/5207/p/6055152.html ProxyConfig:https://www.cnblog
阅读全文
摘要:redis的安装 解压安装包:tar -zxvf redis-3.2.5.tar.gz 解压完成后,进入redis文件夹下,执行make命令 make命令执行完成之后,执行make install redis的启动 默认前台启动:redis-server 后台启动: 复制redis.conf 出来一
阅读全文
摘要:安装Erlang,Socat,RabbitMQ ### 顺序不能变 rpm -ivh erlang-21.3.8.9-1.el7.x86_64.rpm rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm rpm -ivh rabbitmq-server-3.8.1
阅读全文
摘要:最终排查是云服务器安装了宝塔,宝塔对端口又设置了一层防火墙规则(3306没有对外开放)。 排查问题指南:https://blog.csdn.net/qq_40936395/article/details/127744040
阅读全文
摘要:自我理解:对于设计对象的抽象更加合理;不变的属性聚合成通用的可复用对象; jdk中的例子:Interge初始化了-128~127; string类常量池;
阅读全文
摘要:日志框架 常见的日志框架 JUL java.util.logging包 Log4j Logback 与Log4j是同一个人的作品 Log4j2 与Log4j同源,基本被重构,性能更好 日志门面 日志门面简单理解 是外观模式(facade pattern)的典型应用。为了消除业务系统与日志框架的对接差
阅读全文
摘要:分布式事务中是否可以有加锁解锁的逻辑?可以,但是不规范的话会有线程安全问题。 **下方逻辑:**在解锁后,并发线程会再执行一遍锁里的逻辑,因为此时事务未提交,在隔离级别不是read uncommited的情况下,都读取不到原线程insert的数据,所以并发线程会再次insert数据; 这种情况是对于
阅读全文
摘要:对桥接模式的理解: 充分地诠释面向对象编程; 面向接口编程; 组合优于继承(防止继承爆炸现象的出现)
阅读全文
摘要:适配器模式的两种实现方式: 类适配器:继承 对象适配器:组合 适配器模式的五种应用场景: 封装有缺陷的接口设计:对外部接口进行二次封装调用 统一多个类的接口设计: 替换依赖的外部系统: 兼容老版本接口 适配不同的数据格式:如Java 中的 Arrays.asList() 简单的自我理解: 适配器模式
阅读全文
摘要:再jdk中的io类库中,组合优于继承的设计思路 装饰器类的作用: 可以对原始类“嵌套”多个装饰器类; InputStream in = new FileInputStream("xxxx.txt"); InputStream bin = new BufferedInputStream(in);//嵌
阅读全文
摘要:代理模式:将代理对象替换了原始对象,代理类执行的方法替换了原始类执行的方法;将业务功能和其他功能解耦。 代码demo例子: 代理模式的应用场景: 非业务需求开发:监控、鉴权、限流、事务、幂等、日志。spring的aop; rpc中的应用:隐藏网络通信、数据编码解码的逻辑、专注业务开发; 缓存中的应用
阅读全文
摘要:结构型设计模式:主要总结一些类和对象组合在一起的经典结构,这些经典结构去解决特定应用场景的问题。 代理模式:用来给原始类附加不相关的其他功能; 装饰器模式:用来给原始类附加相关功能(增强功能); 适配器模式:用来解决代码兼容问题; 桥接模式: 门面模式: 组合模式: 享元模式: 复制于设计模式之美
阅读全文
摘要:####原型模式:利用对原有对象进行复制拷贝的方式创建对象; ####浅拷贝 只拷贝引用对象的引用地址,不拷贝引用对象本身;实际是操作同一个对象;例如:map的clone方法,对于value中的对象都是引用地址的拷贝; ####深拷贝 复制出一个新的对象;操作的是两个对象;如果要做到对map的深拷贝
阅读全文
摘要:创建型设计模式主要解决对象的创建问题,封装复杂的创建过程;解耦对象的创建逻辑和使用逻辑; **单例模式:**用来创建全局唯一的对象 **工厂模式:**用来创建类型不同但相关的对象(继承同一父类或接口的一组子类),有给定的参数来决定创建哪种类型的对象; **建造者模式:**用来创建同一种类型的复杂对象
阅读全文
摘要:建造者模式的作用:创建对象; 为什么要使用创建者模式来创建对象,普通的new对象不可以吗? 如果使用构造器来创建对象,当参数值的数量过多时,代码中的构造器数量和形式较混乱,并且给构造器中的参数赋值,且参数数量太多。很容易出错,看起来也不是那么清晰; 如果用无参构造或者有参构造(对一些必填的参数)来n
阅读全文
摘要:ioc:控制反转;将对象的创建、配置、销毁,生命周期的管理交予容器; 容器的核心功能可拆分为: 解析配置 创建对象 对象的生命周期管理 ####解析配置 容器对于一个项目要创建哪些对象,一开始是不清楚的;是靠配置来告知容器它具体要创建哪些对象以及对象的依赖关系等信息;(xml配置、注解) ####创
阅读全文
摘要:使用场景:创建的对象分类 规则更加复杂。针对情形设计对象层级。 举例: 针对规则配置解析器 json xml yaml properties 针对系统配置解析器 json xml yaml properties 实现说明:让一个工厂负责创建多种不同类型的对象 demo代码: public inter
阅读全文
摘要:使用场景:对象创建的逻辑比较复杂,且对象种类较多。将创建对象的复杂逻辑放到对应工厂去实现。 优点:比简单工厂更符合开闭原则 缺点:如果创建对象的逻辑很简单,使用这种模式是过度设计 核心demo代码: /** * 工厂方法 * @author lq * @version : RuleConfigSou
阅读全文
摘要:核心demo代码: public class RuleConfigParserFactory { public static IRuleConfigParser createParser(String configFormat) { IRuleConfigParser parser = null;
阅读全文
摘要:####单例模式的几个实现方式:实现递增id生成器 饿汉式 /** * 饿汉式(不支持延迟加载) * @author lq * @version : IdGenerator.java, v 0.1 2022年12月13日 10:19 lq Exp $ */ public class IdGenera
阅读全文
摘要:spring-boot-starter-parent的作用 不直接继承spring-boot-starter-parent 继承其他的父项目 <dependencyManagement> <dependencies> <dependency> <!-- Import dependency manag
阅读全文
摘要:在pom文件中 声明了pom pom:打出来可以作为其他项目的maven依赖,在工程A中添加工程B的pom,A就可以使用B中的类。用在父级工程或聚合工程中。用来做jar包的版本控制。既不会出现jar包也不会出现war包。 jar:打成jar包。 war:打成war包。
阅读全文
摘要:错误表现:This application has no explicit mapping for /error, so you are seeing this as a fallback. 在启动类上的注解:@EnableAutoConfiguration 解决: 使用这个注解@SpringBoo
阅读全文
摘要:在创建一个maven项目时,copy了doc文档的依赖配置。在idea中project标签一直报红,没有仔细看红波浪线的释义,自己去一直重新点击 结果并没有起到什么作用;在maven工具栏中只有两个聚合:Lifecycle和Plugins,Dependencies一直没有:也就是无法下载依赖 排查:
阅读全文