自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 23种设计模式(Java案例)

前言 设计模式核心思想高内聚, 低耦合可扩展性:方便迭代新功能; 可靠性: 迭代功能后不会影响已有功能; 可读性:编程规范, 方便同事阅读理解; 代码重用...

2019-11-26 20:10:10 483

原创 Java从0-1开发视频点播项目 附加完整的部署流程

产品效果微信扫码-试用地址

2021-04-16 00:28:09 2300

原创 JVM 堆内存溢出和栈溢出 现象模拟

内存溢出(OutOfMemoryError 简称 OOM异常) 解释: 我要内存来存储数据, 但系统给不了这么多内存; 模拟内存溢出 用命令"javac -d . OutOfMemoryErrorTest.java"将java文件编译成字节码文件 设置堆内存为10M后用JVM执行字节码文件, 出现内存溢出现象 java -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError com.cloud.jvm.OutOfMemoryErr...

2021-04-12 21:09:44 357

原创 安装jenkins的docker容器 随笔

从docker hub拉镜像 docker pull jenkins/jenkins:2.222.3-centos 在宿主机上创建jenkins容器挂载目录 对此目录赋权 chown -R 1000:1000 原因: 目录的拥有者为root用户,而容器中jenkins用户的 uid 为1000 实例化jenkins的容器 docker run -d --name jenkins -u root -p 8084:8080 -p 50000:50000 -v ...

2021-03-29 19:32:34 323 2

转载 Linux 安装 ffmpeg

入口

2021-03-28 04:21:42 116

原创 安装mysql的docker容器 随笔

在宿主机上创建mysql容器的挂载目录 实例化容器 docker run -d -p 3306:3306 --name mysql -v /usr/local/app/docker/mysql/conf/:/etc/mysql/conf.d -v /usr/local/app/docker/mysql/logs:/logs -v /usr/local/app/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Aa1995710..

2021-03-27 22:58:24 93

原创 docker打包容器后转移到其他机器执行

容器备份迁移案例运行一段时间后的容器,其中包含了新的数据,如果想把这些内容数据一并迁移到新的主机上,可以按照以下步骤进行: 提交容器生成新的镜像 [root@localhost ~]# docker ps //查看正在运行的容器webCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NA

2021-03-27 22:38:29 773

原创 安装elasticsearch的docker容器 随笔

新建临时的es容器, 宿主机上挂载容器内的配置文件 docker run -d -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" --name es2 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.11.2 复制容器的配置文件到宿主机 docker cp es2:/usr/share/elasticsearch/config /usr/local/app/doc..

2021-03-27 17:50:45 123

原创 安装rabbitmq的docker容器 随笔

在宿主机上建rabbitmq的数据目录, 用于挂载容器里的数据 实例化rabbitmq容器 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v /usr/local/app/docker/rabbitmq/data:/usr/local/rabbitmq-docker --hostname rabbitmq -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_U..

2021-03-27 14:04:40 119

原创 安装nginx的docker容器 随笔

实例nginx容器 docker run --name nginx -d -p 80:80 nginx:latest 将nginx容器里的配置复制到宿主机器 在宿主机上建好nginx的配置目录 再将nginx容器配置里的信息复制到宿主机器上docker cp nginx:/etc/nginx /usr/local/app/docker/nginx/config/docker cp nginx:/usr/share/nginx/html /usr/local/app/dock..

2021-03-27 13:18:02 151

原创 安装redis的docker容器 安装记录

下载redis镜像docker pull redis:latest以配置文件的形式启动redis容器取一份新的redis.conf,并修改需要的配置# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程deamonize no# 你可以绑定单一接口,如果没有绑定,所有接口都会监听到来的连接# bind 127.0.0.1 # 因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为n

2021-03-27 10:33:00 103

原创 安装docker的tomcat镜像 过程中的问题记录

宿主机器的webapps同步到docker里的tomcat/webapps 同理 tomcat的docket容器 catalina日志 同步到宿主机器 宿主机器和docker容器的时间同步实例化tomcat的docker容器时带参数: docker run -dit --name tomcat-business -p 8080:8080 -v /usr/local/app/tomcat/tomcat-business/webapps:/usr/local/tomcat/weba...

2021-03-27 01:20:05 209 2

原创 正则表达式分割 纯数字 纯中文 纯英文 纯

String s="1计a1划支付租金预提 1010130000上海财务部 2021.01-2021.01"; Pattern p = Pattern.compile("[\\u4e00-\\u9fa5]+|[a-zA-Z]+|\\d+|\\s+|\\p{P}"); Matcher m = p.matcher(s); StringBuffer sb = new StringBuffer(); while (m.find() ) { .

2021-03-23 15:12:14 493

翻译 ElasticSearch 写入数据时报 Unable to parse response body 错误 记录解决方案

主要的错误信息往下看错误日志原因: es所在目录磁盘容量超过90%后, es切换到只有读的权限解决方法: 清理磁盘垃圾日志文件释放空间后有两种方式能解决问题可以通过以下命令将所有的index配置改为false,来恢复。curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9200/_all/_settings \-d '{"index.blocks.read_only_allow_del...

2021-03-23 13:54:56 10639

转载 VUE用fingerprintjs2.js获取浏览器指纹

传送门

2021-02-28 22:18:23 2860

转载 Linux系统安装mysql

https://www.jianshu.com/p/276d59cbc529

2021-02-23 17:50:16 67

转载 linux安装elasticsearch

1. 安装es入口

2020-12-22 22:26:45 94

转载 CentOS-7 下安装RabbitMQ(转载)

查看当前CentOS版本:cat /etc/redhat-release 安装erlang和MQ

2020-11-27 10:30:10 81

转载 vue项目用Jenkins部署到Linux系统

入口

2020-11-20 10:18:32 181

转载 用nginx搭建文件服务器

入口

2020-11-14 13:05:17 84

原创 itextpdf插件下XMLWorkerHelper工具用HTML代码实现PDF的导出功能(解决Linux服务器中文不显示的问题)

效果展示 开工 引入jar包 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.2</version> </dependency> <dependency> <groupId>co...

2020-10-30 22:13:50 2804

原创 Java获取当前时间后几天工作日日期

package test.date;import com.google.common.collect.Lists;import org.apache.http.client.utils.DateUtils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;/** * Created by tianxiang on 2020/10/14 */public class.

2020-10-14 10:40:23 2990 2

原创 23种设计模式 VOL.23: 责任链模式

思想:接收者收到一个请求后交给处理器对象来处理, 每个处理器内置依赖下个处理器的引用, 当前处理器完成不了的事就交给下个处理器, 形成链式处理器(责任链);责任链UML 角色说明 AbsHandler: 处理器抽象类和接收者, 内置处理器抽象对象用于子类做下个处理器的调用; 学校采购审批案例 Java中用到的地方​​​​​​​SpringMVC中的Hand...

2019-12-22 12:36:27 142

原创 23种设计模式 VOL.22: 策略模式

思想:将某个行为抽离成行为策略接口, 其实现类表示此行为有多种策略方式;鸭子案例野鸭, 饲养鸭, 玩具鸭; 每个品种的鸭子对游泳这个行为有不同的表现; 野鸭游泳很厉害, 饲养鸭游泳一般, 玩具鸭不能自己游泳;未使用策略模式 继承鸭子后, 子类鸭子都能获得其鸭子的行为, 而饲养鸭和玩具鸭不能具备飞行功能, 因此还要重写(违背了里氏替换原则);使用策略模式 ...

2019-12-22 12:22:34 160

原创 23种设计模式 VOL.21: 状态模式

思想:对象在处于不同状态下的行为操作, 状态模式减少了if else 来判断当前对象状态, 直接通过当前对象状态即可执行当前状态的行为;抽奖案例 ​​​​​​​ ...

2019-12-22 12:07:33 135

原创 23种设计模式 VOL.20: 解释器/解析器模式

思想:用解释器解析表达式后得到表达式的结果, 表达式: a + b - c = ?解释器UML 角色说明 Context: 环境角色, 存放全局信息; AbsExpression: 抽象表达式, 由子类实现抽象的解释器操作; TerminalExpression: 终结符表达式; NoneTerminalExpression: 非终结符表达式; 通过Client输入...

2019-12-22 11:48:15 141

原创 23种设计模式 VOL.19: 备忘录模式

思想:备忘录对象用来记录源数据对象的某种状态/数据, 方便后期从备忘录中取出源数据状态后对源数据执行回退操作;备忘录UML 角色说明 Originator: 源数据对象; Memento: 备忘录对象; Caretaker: 备忘录守护者对象(维护备忘录对象); ...

2019-12-22 11:22:29 121

原创 23种设计模式 VOL.18: 中介者模式

思想:所有同事类交给中介者来管理, 同事类之间不再关联, 同事类之间实现解耦, 客户端直接联系中介人;同事类: 程序员找房东租房子-> 房东租房子要经过家人同意后才会将房源租出去, 房东和房东家人属于同事类;未使用中介者模式中介者模式程序员找中介租房子案例 流程说明 colleague: 同事类; 在实例化同事类时将其聚合到 中介者 的同事对象容器中; ...

2019-12-22 11:12:16 134

原创 23种设计模式 VOL.17: 观察者模式

思想:气象站(观察者)和 需要从气象站获取天气数据的站点(被观察者), 观察者支持对被观察者的"注册、移除、推送"操作;未使用观察者进行天气推送 当有其他第三方网站接入时, 气象站要修改dataChange()推送方法, 这样违背了OCP原则;使用观察者 角色说明 Subject: 观察者(气象站) -> 观察者能对被观察者动态的注册、移除、推送; Obse...

2019-12-22 10:51:49 113

原创 23种设计模式 VOL.16: 迭代器模式

思想:为多种容器提供统一的迭代接口(迭代方式不同), 客户端不需要关心怎么遍历;使用场景:当遍历不同的容器则需要多种遍历方式, 会暴露元素的内部结构, 这种情况就用迭代器模式将具体容器指定对应迭代方式, 客户端只要操作迭代接口(Iterator), 无需关心内部是怎么迭代的;遍历学校下的学院和院系 代码实现 迭代器 容器与迭代器关联 Java中用到的地...

2019-12-20 13:35:49 118

原创 23种设计模式 VOL.15: 访问者模式

思想: 数据结构元素具有稳定性质, 访问对象是变化的, 访问对象对数据结构元素进行访问;说明: 对各阶段人群的生活方式解耦 -> 数据结构元素(幼年, 青年, 中年, 老年)与访问对象(生活方式)解耦;角色说明Visitor: 抽象访问者(可以有不同的具体访问者), 用于访问数据结构元素; ConcreteVisitor: 具体访问者, 具体的访问者访问数据结构元素;...

2019-12-19 14:43:06 105

原创 23种设计模式 VOL.3: 抽象工厂模式

思想: 简单工厂 + 工厂方法 = 抽象工厂, 抽象工厂同工厂方法都是对简单工厂进行抽象化, 不同在于工厂方法注重怎么从简单工厂中获取对象, 抽象工厂注重用哪个简单工厂(下面的工厂簇)再从简单工厂中怎么去获取对象;继续用订购披萨的案例说明把工厂接口聚合到客户端,客户端只需要传简单工厂实例给工厂接口就能调用到简单工厂从而获取对象; 代码实现 ...

2019-12-18 11:50:56 140

原创 23种设计模式 VOL.2: 工厂模式

思想:调用方无需关心具体的实现细节, 实现的细节在工厂里处理, 调用者要什么工厂里有就返回什么;由各地区订购披萨案例, 引出工厂模式的思考:案例模型 产生的问题: 增加新品披萨后每个订购区域得重新依赖新品种, 如果区域有很多后期得每个区域去改变现有代码, 这样违背了开闭原则(提供方修改代码后不应该改动调用方的代码); 代码实现 ...

2019-12-18 11:44:55 170

原创 23种设计模式 VOL.14: 命令模式

思想:调用方通过命令接口的execute(), 用不同的命令调用对应的执行方, 使任务的调用方和执行方完全解耦, 且支持撤销功能;角色Invoke:调用者 Command:抽象的命令 ConcreteCommand: 命令实现类, 将执行者与实现命令绑定 Receiver:执行者遥控器控制智能家居 ...

2019-12-16 11:34:27 106

原创 23种设计模式 VOL.13: 模板模式

思想:在抽象类中定义一个公开的模版方法(执行流程骨架), 具体的执行细节交给它的子类来实现, 子类可用钩子方法控制模版方法中某些步骤的执行流程;豆浆制作流程黄豆 -> 添加其他豆类 ->浸泡 -> 豆浆机打磨; 黄豆, 浸泡, 打磨 这个过程大体是一致的这时就适用模版模式; 钩子方法说明: ​​​​​​​由子类控制父类模版方法中的某些步骤是否要执行;...

2019-12-16 10:14:38 135

原创 23种设计模式 VOL.12: 代理模式

思想: 通过代理对象来创建目标对象, 间接的可对目标对象进行前置或后置处理(即扩展了目标对象);代理对象调用目标对象的接口实现对目标对象的调用角色静态代理 定义抽象类, 代理类和目标类均实现此抽象类的方法, 客户端调用代理类中的实现方法能调用到目标类相同实现方法; 优点: 不修改目标类对象的情况下进行扩展; 缺点: 代理类和目标类都要实现抽象类, 当目标类数量大时, 对抽...

2019-12-15 13:56:20 108

原创 23种设计模式 VOL.11: 享元模式/蝇量模式

思想: 顾名思义共享一个对象, LOL赛事现场直播是一个对象, 这个对象被共享到每个视频客户端, 这样不会因为创建大量重复的对象而浪费内存;角色说明抽象的享元类; 内部状态:不会发生改变的属性,比如一盘棋, 其中的棋盘尺寸和棋子颜色是恒定不变的; 外部状态: 会变化的属性抽离后组合进享元对象, 棋盘中棋子坐标; 享元工厂: 构建享元对象缓存池(集合), 享元工厂里只能存内部状态...

2019-12-12 15:21:33 134

原创 23种设计模式 VOL.10: 外观模式

思想: 客户端不再关注每个对象之间的调用关系, 这个工作交给外观代理类完成, 客户端依赖外观代理类(符合迪米特法则);角色Facade:外观代理类;家庭影院案例未使用外观模式​​​​​​​ 对外部调用方而言往后不便于扩展(违反了开闭原则);使用外观模式​​​​​​​ 由外观代理类控制家居的每个设备, 客户端调用方只要看电影享受; 代码实现 Ja...

2019-12-10 09:53:35 130

原创 23种设计模式 VOL.9: 组合模式/部分整体模式

思想: 将低级对象组合进高级对象, 再由高级对象统一调用(高级对象管理组合进来的低级对象);适用场景业务有树形结构;未用组合模式操作学校、学院、院系 只能声明对象后再一个个对象是调用;用组合模式操作学校、学院、院系 代码实现 Java中使用到的地方...

2019-12-09 14:39:37 262

原创 23种设计模式 VOL.8: 装饰者模式

思想:动态的将属性附加到对象上, 比继承更方便;装饰者的4个角色抽象主体(AbsDrink)Component; 被装饰者(咖啡)ConcreteComponent具体组件; 装饰者Decorator; 具体装饰者(配料)案例: 咖啡 + 配料 的售价 未使用装饰者模式 配料类组合咖啡导致配料类出现类爆炸问题,加了新咖啡后还要生成对应的配料组合或加了新配料需要对所...

2019-12-05 18:11:47 179

空空如也

空空如也

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

TA关注的人

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