- 博客(569)
- 资源 (16)
- 问答 (2)
- 收藏
- 关注
原创 解决多个rocketmq 多个MQ实例时使用DefaultMQProducer NamesrvAddr被覆盖问题
可以看到clientId的生成规则是ip+@InstanceName,其中InstanceName每次启动生成的就是固定的,ip是启动的时候本身的ip,所以每次启动生成的clientId都是一致的,而在我的代码使用DefaultMQProducer创建实例的时候就已经初始化过了,factoryTable中已经存在老mq的实例,所以新mq通过一模一样的clientId只能获取到老mq的配置生成的MQClientInstance。buildMQClientId也有所改动。
2024-11-26 10:54:09
457
原创 java毕设&课程设计——无人机俱乐部管理系统
基于springboot+vue实现的无人机俱乐部管理系统。无人机信息页面,可对无人机进行添加修改等操作。
2024-10-24 11:31:26
199
原创 redis学习(三)——java整合redis
我们可以自定义redisTemplate的序列化方式新建一个redisConfig类,key和value都采用String序列化方式@Bean// 创建Template// 设置连接工厂// 设置序列化工具// key和 hashKey采用 string序列化// value和 hashValue采用 JSON序列化这里使用了jackson,需要导入一下依赖。
2023-10-24 19:56:52
458
原创 redis学习(二)——redis常见命令及基础数据类型
Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时需要将整个字符串替代,很不方便。Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD。如果想存储两个相同的KEY,可以用:隔开多个单词形成层级结构,在图形化的页面上可以看到层级结构。字符串类型,value为字符串,格式有三种,本质上都是字符串。float:浮点类型,可以做自增、自减操作。ZSET常被用来实现排行榜功能。
2023-10-06 19:48:20
459
原创 redis学习(一)——初识redis
在之前的解压目录下有一个redis.conf文件存储redis的配置,输入vim redis.conf命令可以对配置文件进行编辑,输入redis-cli 命令可以用指定配置启动。redis是非关系型数据库,和mysql不同,redis中的所有数据都是以key:value形式存在的。我用的是RESP,使用步骤类似Navicat,输入地址密码测试连接,如果成功就证明连上redis了。-h 跟redis所在的地址,-p跟端口号,-u跟密码。即可启动redis,关闭窗口后redis会停止。结构化 | 非结构化。
2023-09-24 16:12:07
282
原创 设计模式(二十三)——解释器模式(Interpreter )
实现了一个表达式接口,该接口解释一个特定的上下文。编译器,正则表达式,SQL解析。实现一个一位数的加法运算。
2023-06-23 19:19:10
336
原创 设计模式(二十二)——状态模式(State)
可以使用状态模式:把不同状态的动作抽离出来,然后不同的状态去实现这个接口,这样以后如果有新的状态,就不会去修改原来的代码。现在新增一个状态,RUN,如果在以前的代码上进行更改,就不符合开闭原则了。人在不同状态下有不同的心率,当前有SLEEP和STUDY两个状态。当对象有多个状态,而且以后可能会增加状态的时候可以用状态模式。可以使用if else或者switch判断每一个状态。
2023-06-23 19:14:07
416
原创 设计模式(二十一)——模板模式(Template )
模板模式,我的理解是父类中有操作的流程已经确定,但是没有具体的实现,实现可以在子类中实现,但是流程已经确定,只要在父类中实现一次即可。学生吃午饭,排队选择不同的吃的和喝的,先选吃的再选喝的这个流程已经确定,但是选择什么还没有确定。lunch方法已经确定了,但是eat和drink方法还没有确定,这两个方法留到子类来实现。还有一个例子:高一,高二,高三,三个年级,每天要上8节课,但是课可能会不相同。
2023-06-19 21:45:45
174
原创 设计模式(十九)——原型模式(Prototype)
享元模式是共享对象,两个对象指向一个地址,原型模式的两个对象的属性相同,指向的是两个不同的地址。孙悟空可以拔下毫毛变出很多个自己,这些孙悟空的所有东西都相同,但却是不同的个体。每个对象都要重写clone方法,实现Cloneable接口。运行结果:两个对象返回不同的地址。提高性能,可以快速复制对象。
2023-06-14 15:41:36
118
原创 设计模式(二十)——备忘录模式(Memento)
类似游戏进程,保存游戏时将Originator转化成Memento类,不会对Originator进行任何修改。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。实现了信息的封装,使得用户不需要关心状态的保存细节。保存一个对象的某个状态,以便在适当的时候恢复对象。Memento类,存储在列表中的存档。
2023-06-14 15:41:28
88
原创 设计模式(十八)——命令模式(Command )
在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。后面如果想增加关闭电视机的命令,可以实现Order接口,在excute方法里面写相应的操作。人想要打开电视机或者关闭电视机,调用者→命令→接受者,人是调用者,电视机是接收者,1、降低了系统耦合度。2、新的命令可以很容易添加到系统中去。使用命令模式可能会导致某些系统有过多的具体命令类。
2023-06-14 14:54:34
88
原创 设计模式(十六)——适配器模式(Adapter)
现有美国人和英国人交流,可以使用英语,但是和中国人交流时,语言不通,此时需要一个适配器来翻译双方的语言。当两个不兼容的接口需要一起工作,但是两个接口都无法改动,可以用到适配器模式。但是当美国人说英语和中国人沟通时,由于中国人只说汉语,所以两者之间无法沟通。过多地使用适配器,会让系统非常零乱,不易整体进行把握。将英语转化成汉语,之后中国人就可以进行沟通。可以让任何两个没有关联的类一起运行。英国人和美国人可以正常沟通。
2023-06-13 17:11:12
92
原创 设计模式(十五)——建造者模式(Builder)
PeopleBuilder接口,所有的属性都有一个Builder方法,注意这里的返回类型是PeopleBuilder,方便链式编程。实现一个People类的创建,现在的People类的属性还很少,看不出来建造者模式的优点,当实体类的属性很多,属性的结构和创建复杂时,就可以体会到建造者模式的优点。建造者模式和工厂模式的关注点不同:建造者模式注重零部件的组装过程,而工厂方法模式更注重零部件的创建过程,但两者可以结合使用。将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示,建造者独立,易扩展。
2023-06-13 17:10:56
281
原创 设计模式(十四)——访问者模式(Visitor )
但是需要注意,访问者模式中的被访问者需要是元素固定,不会再改变的对象,否则添加对象时非常麻烦。比如电脑类添加了一个屏幕价格的属性,那么所有的代码都需要更改。有一台电脑,不同的人来买对零件有不同的折扣。学生买CPU打九五折,键盘九折,鼠标八五折,如果是企业大规模购买,CPU八五折,键盘八折,鼠标七五折。当一个对象的元素在不同的场景改变较为频繁时,可以使用访问者模式。例如:公园的风景在不同的人的眼中,有人觉得好看,有人觉得不好看。购买者,每个购买者都需要实现三个方法,对电脑零件有不同的折扣。
2023-06-13 17:08:35
100
原创 设计模式(十三)——迭代器模式(Iterator)
顺序访问集合对象的元素,不需要知道集合内部的实现,Collection集合中的迭代器就是基于迭代器模式实现。
2023-03-28 19:14:27
123
原创 设计模式(十二)——代理模式(Proxy)
在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。使用代理模式,把租房这个抽象角色剥离出来,现在顾客租房不去找房东,而是找中介,在这过程中,中介会有附属操作。Customera.java 顾客要租房,那么只需要创建一个房东类,调用房东类的租房方法即可。现在顾客要租房子,直接去找中介,中介会代理房东把房子租出去,同时,中介会有附属操作。
2023-03-28 18:52:20
94
原创 设计模式(十一)——享元模式(Flyweight)
提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱。可以看到,虽然在代码中创建了两个对象,但是它们是指向一个地址的,减少了内存的消耗。当创建字符串对象是,看是否已经创建过,如果创建过,让他们指向同一个对象。用于减少创建对象的数量,以减少内存占用和提高性能。大大减少对象的创建,降低系统的内存,使效率提高。java字符串缓存池,数据库的数据池。
2023-03-28 16:41:46
101
原创 设计模式(八)——责任链模式(Chain of Responsibility)
设计模式(八)——责任链模式(Chain of Responsibility)
2022-10-23 20:29:00
504
2
原创 JavaScript学习(七)——事件练习
实现全选和全不选的功能步骤给按钮设置点击事件修改所有复选框的选中状态首先是全选按钮,获取到节点之后,添加点击事件根据ClassName忽的checkbox的数组,遍历数组,修改选中状态全不选按钮一样的做法。还可以对所有checkbox添加点击事件,记录选中的条数,当条数改变是,修改最上面的checkbox的状态...
2022-08-04 07:49:17
418
原创 JavaScript学习(六)——表格的动态添加与删除
首先是去创建一个基本页面,上面有一个表格来展示信息动态删除步骤:为a标签设置一个点击事件,a标签的父节点是td,td的父节点是tr,tr的父节点是table,所以函数将a标签传入,通过parentNode可以获取父节点定义删除函数点击删除,可以删除表格的信息接下来实现如何动态添加信息步骤首先给添加按钮增加点击事件,在add方法中添加之后的所有操作从输入框中获取到需要添加的属性将属性转换为节点,这样才能添加到DOM树中,创建td节点,td节点中添加展示的属性,其余两个td节点是一样的操作...
2022-08-03 23:07:53
3179
4
C语言魔塔游戏十层.zip
2020-03-31
RentingSystem.rar
2020-01-10
不用jQuery怎么给一类元素添加点击事件
2022-07-07
html中from表单onclick和onsubmit方法的区别
2022-07-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人