- 博客(27)
- 收藏
- 关注
原创 RabbitMQ 笔记
延迟队列实现原理a. 死信的来源ⅰ. 消息 TTL 过期ⅱ. 队列已经达到了最大长度(队列满了,无法添加消息到 MQ 中)ⅲ. 消息被拒绝b. 延迟队列:不就想要消息延迟多久被处理,TTL 则刚好能让消息在延迟多久之后成为死信,成为死信的消息都会被投递到死信队列里,这样只需要消费者一直消费死信队列里的消息就完事了,因为里面的消息都是希望被立即处理的消息c. 存在的问题:ⅰ. RabbitMQ 只会检查第一个消息是否过期,过期则投递到死信队列中,ⅱ. 如果第一消息的延时时长很长,而第二个消息.
2022-05-18 15:32:55 585
原创 适配器(Adapter)
适配器模式说明适配器模式(Adapter) 通常也被称为转换器,当一个对象或类的接口不能匹配用户所期待的接口时,适配器就充当中间转换的角色,以达到兼容用户接口的目的,同时适配器也实现了客户端与接口的解耦,提高了组件的可复用性充当一个适配、兼容的工作例子两插脚的电子设备如何使用三孔插座实现通电,开启电视● Target(目标接口):客户端要使用的目标接口标准,对应本章例程中的三相插孔接口TriplePin。● Adapter(适配器):实现了目标接口,负责适配(转换)被适配者的接口sp
2022-04-10 15:02:11 628
原创 观察者模式(Observer)
发布/订阅现实中的观察者(Observer)往往是主动方,这是由于目标主题(Subject)缺乏主观能动性造成的,其状态的更新并不能主动地通知观察者,这就造成观察行为的持续往复。而在软件设计中我们可以将目标主题作为主动方角色,将观察者反转为被动方角色,建立反向驱动式的消息响应机制,以此来避免做无用功,优化软件效率作为一种发布/订阅(publish/subscribe)式模型,观察者模式被大量应用于具有一对多关系对象结构的场景,它支持多个观察者订阅一个目标主题。一旦目标主题的状态发生变化,目标对象..
2022-04-10 14:08:43 234
原创 装饰器模式(Decorator)
装饰器模式说明装饰器模式(Decorator)能够在运行时动态地为原始对象增加一些额外的功能,使其变得更加强大类似俄罗斯套娃需要明白两个概念:装饰器和装饰者装饰者:大男孩, 实现了行为接口,具备了基本的行为行为接口:装饰器抽象类:对装饰器的抽象,并实现了行为接口-装饰器实现类:调用装饰器父类构造器,注入装饰者,如“好看的皮囊”、“有趣的灵魂”实例代码package com.azure.design.decorator;/** * 人类行为 */public
2022-04-09 23:32:10 307
原创 模板模式(Template)
模板模式说明模板是对多种事物的结构、形式、行为的模式化总结,而模板方法模式(Template Method)则是对一系列类行为(方法)的模式化基类定义了一套模板(不可变),供子类继承,子类可以扩展(可变),丰富自己的业务场景当然,对于基类模板中的步骤方法并不是必须要用抽象方法,而是完全可以用实体方法去实现一些通用的操作,灵活设计,如果子类需要个性化就对其进行重写变更,不需要就直接继承。根据场景进行适当的变通,才能对设计模式更灵活、更恰当的运用。...
2022-04-09 22:29:46 435
原创 单例模式(Singleton)
Singleton(单例):包含一个自己的类实例的属性,并把构造方法用private关键字隐藏起来,对外只提供getInstance()方法以获得这个单例对象除了“饿汉”与“懒汉”这2种单例模式,其实还有其他的实现方式。但万变不离其宗,它们统统都是由这2种模式发展、衍生而来的饿汉示例代码:/** * 饿汉模式 */public class HungerSingleton { private static final HungerSinglet...
2022-04-09 21:57:07 122
原创 sqlplus(数据泵)导入导出dmp实践使用
准备工作source~/.profile:加载环境变量切换 oracle 用户导出 dmp 文件先进入,然后创建文件路径,不能直接在命令行写绝对路径①.进入 sqlplussqlplus as sysdba②.创建导出文件存在路径,即执行路径create directory directory_name as '/home/oracle';orcreate directorydirectory_name as '/ora_data';create director
2022-04-07 23:12:13 5851
原创 门面模式(Facade)
门面模式说明它能将多个不同的子系统接口封装起来,并对外提供统一的高层接口,使复杂的子系统变得更易使用为了达到高效、便捷的目的,门店会统一对子系统进行整合与调度外观门面类内部封装了大量的子系统资源在实际场景中可能还会包含一些更加复杂的逻辑实际业务场景业务逻辑层(Service层)对数据访问层(DAO层)的调用可能包含多个步骤,除此之外还要进行事务处理,最终统一对外提供一个update()方法,如此一来上层(...
2022-04-07 22:57:56 517
原创 原型模式(Prototype)
原型模式的各角色定义如下● Prototype(原型接口):声明克隆方法,对应本例程代码中的Cloneable接口。● ConcretePrototype(原型实现):原型接口的实现类,实现方法中调用super.clone()即可得到新克隆的对象。● Client(客户端):客户端只需调用实现此接口的原型对象方法clone(),便可轻松地得到一个全新的实例对象。从类到对象叫做“创建”, 从实例对象到副本对象叫做“克隆”使用场景当需要创建多个类似的复杂对象时,可以考虑原型模式,克隆
2022-04-06 23:03:03 501
原创 mybatis 笔记
Mybatis 基础mybatis 配置文件配置 mapper 映射文件配置 resultType 类型别名a. 单个类,属性可指定别名,不指定即为类名,不区分大小写b. 包引入,属性可指定别名,不指定即为类名,不区分大小写mybatis 配置文件引入项目映射文件mapper.xml 文件a. 单个mapper 映射文件b. 包引入ⅰ. mapper 接口所在的包要和映射文件所在的包一致ⅱ. mapper 接口要和映射文件的名字一致idea Resource 创建多级包目录: /home
2022-04-04 23:20:13 353
原创 Git 日常开发常用命令
小记:记录日常工作中使用到的git 命令git remote -v // 查看远程仓库状态git status //查看本地分支状态git init //变成 git 仓库git add . //将项目添加到本地仓库git commit -m '备注'git push -u origin master //将本地仓库内容推送到远程仓库git checkout 分支名 //切换分支git branch -a //查看当前分支和所有远程分支git push -f origin
2022-04-02 23:28:30 360
原创 java 杂记
记录平时开发过程中的一下零散知识点、开发小技巧以及平时读书做的笔记,已备后续方便查找,查漏补缺基本准则和通用方法1、重载:方法名相同,参数类型或数量不同2、编译器最短路径原则:如果能够在本类中查找到的变量、常量、方法,就不会到其他包或父类、接口中查找,以确保本类中的属性、方法优先基本类型1、int 超过临界最大值为负数,参与运算时为负反向计算2、基本类型的包装类型参与运算时要做null 值校验3、创建的 Integer 整型包装对象值如果落在 -128 - 127 之间.
2021-11-30 20:49:57 289
原创 idea 创建 spring 配置文件
搭建基于 spring 框架工程, 按照基于 xml 文件配置当然少不了 spring配置, 记录使用 idea 创建spring 配置文件过程1.创建 springMVC.xml 配置文件方式一: 右键工程 Add Frameworks Support 窗口, 在左边菜单会有Spring 选项选择要创建的 spring 配置文件方式二: 在指定的资源文件夹右键 New ->XML Configuration File -> Spring Config...
2021-11-28 15:38:29 2554 2
原创 Idea 创建 web.xml 文件
以下记录 idea 生成 web.xml 的创建过程,记录下来方便后续查找1.点击工程 WEB-INF 目录,若目录不存在创建之, 选择WEB-INF 目标, 点击左上角 file 菜单,弹出如下界面, 选择红框中 Project Structure...菜单2. 选择Project Structure... 菜单之后出现以下视图,按步骤操作3.需要设置将生成的 web.xml 文件放置的路径 ,一般为 src\webapp\WEB-INF\web.xml4.点击 Apply 按...
2021-11-28 10:57:56 9774 2
原创 简单工厂模式
1.工厂方法注意,返回类型为抽象产品角色2.通过调用简单工厂类实例化对象实例3.简单工厂模式也叫作静态工厂模式UML 类图:抽象运算类:定义两个成员变量, 一个抽象结果值方法,后续子类重写运算类该抽象方法满足计算不同的规则public abstract class Operation { private double numberA; private double numberB; public double getNumberA() { .
2021-09-19 22:04:10 128
原创 idea 批量导入包
问题描述:导入外部代码或者外部项目的时候,需要关联jar包引用,正常情况下,导包数量少的话idea 都是使用快捷键"Alt + enter" 组合键一个个导入, 当存在多个包需要导入,一个个导包就显得有些拉胯, 不像 Eclipse 使用 "Ctrl + Shift + O" 组合快捷键就可以批量导入包, Idea可以通过以下设置实现批量导入包,具体实现如下图配置如下:...
2021-09-14 22:04:00 8888
原创 idea 提示 Cannot resolve symbol ‘log‘解决
问题描述: java 类中使用 log 标红,提示"Cannot resolve symbol 'log'"解决方案:在线下载安装lombok插件即可在 setting 中点击选择 Plugins重启idea即可
2021-08-23 20:30:26 1395 1
原创 idea 安装 jclasslib 插件
1、进入idea 以下目录File->settings-Plugins2.右侧搜索框搜索"jclasslib"
2021-06-14 23:16:16 1220 1
原创 Mysql连接失败报Received fatal alert: protocol_version问题解决
问题描述:项目切换数据源是出现Received fatal alert: protocol_version问题解决:在配置文件中将数据库连接URL带上参数useSSL,将useSSL设置为falsespring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&zeroDateTimeBe...
2020-05-06 15:27:31 8033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人