自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Maggieq8324的博客

万事从未风过耳,一生只是梦游身

  • 博客(242)
  • 收藏
  • 关注

原创 Docker - 安装Redis

记录下Docker下Redis的安装。

2023-04-02 23:26:46 258 1

原创 Docker - 安装Mysql

记录下Docker下Mysql的安装。

2023-04-02 23:25:25 240

原创 Docker - 常用命令参考

【代码】Docker - 常用命令参考。

2023-04-02 23:13:58 184

原创 Docker的安装与使用

记录下Linux下docker的安装与使用查看某个容器发生的改变释义A: 添加的文件或目录(ADDD:删除的文件或目录(DELETEC:更改的文件或目录(CHANGE停止redis提交容器镜像的变更// 释义-a: 作者信息-c: 可以使用dockerfile提交-m: 提交的备注信息-p: 提交的时候暂停容器。

2023-04-02 23:13:25 415

原创 设计模式 - 桥接模式

角色名称释义抽象类用于定义抽象类的接口,它一般是抽象类而不是接口,其中定义了一个Implementor(实现类接口)类型的对象并可以维护该对象,它与Implementor之间具有关联关系,它既可以包含抽象业务方法,也可以包含具体业务方法扩充抽象类扩充由Abstraction定义的接口,通常情况下它不再是抽象类而是具体类,它实现了在Abstraction中声明的抽象业务方法,在RefinedAbstraction中可以调用在Implementor中定义的业务方法实现类接口。

2022-10-23 18:45:16 846

原创 设计模式 - 组合模式

角色名称释义Component抽象构件可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该角色中可以包含所有子类共有行为的声明和实现。在抽象构件中定义了访问及管理它的子构件的方法,如增加子构件、删除子构件、获取子构件等Leaf叶子构件它在组合结构中表示叶子节点对象,叶子节点没有子节点,它实现了在抽象构件中定义的行为。对于那些访问及管理子构件的方法,可以通过异常等方式进行处理Composite容器构件。

2022-09-27 21:47:27 358

原创 设计模式 - 享元模式

角色名称释义Flyweight抽象享元类通常是一个接口或抽象类,在抽象享元类中声明了具体享元类公共的方法,这些方法可以向外界提供享元对象的内部数据(内部状态),同时也可以通过这些方法来设置外部数据(外部状态)具体享元类它实现了抽象享元类,其实例称为享元对象;在具体享元类中为内部状态提供了存储空间。通常我们可以结合单例模式来设计具体享元类,为每一个具体享元类提供唯一的享元对象非共享具体享元类并不是所有的抽象享元类的子类都需要被共享,不能被共享的子类可设计为非共享具体享元类;

2022-08-21 22:00:51 294

原创 设计模式 - 适配器模式

优点1.能提高类的透明性和复用,现有的类复用但不需要改变2.目标类和适配器类解耦,提高程序扩展性3.符合开闭原则缺点1.适配器编写过程需要全面考虑,可能会增加系统的复杂性2.增加系统代码可读难度适用场景1.已经存在的类,它的方法和需求不匹配时(方法结果相同或相似)2.不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案适配器模式源代码。...

2022-07-31 22:05:52 418

原创 SpringBoot - 集成MongoDB实现文件上传

目录前言环境代码实现测试源码前言记录下SpringBoot集成MongoDB实现文件上传的步骤MongoDB - 5.0.6安装包链接:https://pan.baidu.com/s/1lCcPvYYNWncb6lbvrZdeVg 提取码:0tf1环境SpringBoot - 2.5.12MongoDB - 5.0.6代码实现pom.xml<dependency> <groupId>org.springframework.boot

2022-04-17 16:01:54 2047 1

原创 Win10下通过Ubuntu安装Redis

前言记录下Win10下通过Ubuntu安装Redis的步骤环境Win10Ubuntu 18.04 LTSRedis 6.0.6Ubuntu安装在Windows系统下可以挂载Linux子系统,通过Windows商店Microsoft Store搜索Ubuntu即可安装Ubuntu需要先打开Windows功能安装后打开Ubuntu,需要创建一个用户及密码更改root账号密码sudo passwd切换root用户,密码为上一步更改的密码su root

2022-04-14 22:21:21 1255 1

原创 设计模式 - 装饰模式

目录实例数据加密解决方案需求变更装饰模式概念装饰模式解决方案总结源码实例数据加密假设一个数据加密的应用场景,可以对字符串进行加密,用户先使用最简单的加密算法对字符串进行加密,如果觉得不够,可以对加密后的结果使用MD5、AES、RSA等加密算法进行二次加密解决方案Encrypt.java/** * @Description 加密 */public class Encrypt { public String encrypt(String str) { return

2022-04-12 23:17:59 658

原创 设计模式 - 外观模式

目录实例手机一键备份功能常规的解决方案外观模式概念外观模式解决方案方案的演进(配置文件)抽象外观类总结源码实例手机一键备份功能假设一个智能手机一键备份数据的应用场景,该功能可以将手机中的通讯录,短信,照片,歌曲等资料一次性备份,在实现过程中需要与多个已有的子系统进行交互,如通讯录子系统、短信子系统等乍一看该应用场景,如果再添一句需充分考虑系统的灵活性和可扩展性那就与工厂方法模式很类似了,但这里不考虑应用的扩展,只考虑应用的交互常规的解决方案AddressBookService.java/

2022-03-31 07:17:42 992

原创 设计模式 - 原型模式

目录概念编码实例浅克隆深克隆对于引用类型单独克隆序列化实现深克隆总结源码概念原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象原型模式是一种对象创建型模式原型模式最典型的例子就是孙悟空用猴毛复制出和自己一模一样的分身来,通过原型对象克隆出多个一模一样的对象就是原型模式编码实例通过原型模式实现销售管理系统中的客户类(Customer)Customer.java/** * @Description 客户 */publ

2022-03-28 18:24:45 507

原创 SpringBoot - 动态修改yml配置文件

目录前言具体实现实现代码测试源码前言记录下SpringBoot修改yml配置文件后无需重启服务的方式(打包后生效),效果如下:具体实现实现代码pom.xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artif

2022-03-28 18:17:01 6166 3

原创 设计模式 - 单例模式

目录实例数据库连接池单例模式概念懒汉式单例(LazySingleton)懒汉式单例DoubleCheck双重检查(LazyDoubleCheck)饿汉式单例(HungrySingleton)静态内部类单例(StaticInnerClassSingleton)Enum枚举单例(EnumInstance)ThreadLocal单例(ThreadLocalInstance)容器单例(ContainerSingleton)总结扩展序列化破坏单例模式反射攻击单例模式反射攻击饿汉式反射攻击懒汉式反射攻击枚举单例序列化破

2022-03-15 23:19:24 1288

原创 设计模式 - 建造者模式

目录实例软件界面多种显示模式建造者模式概念解决方案方案的演进(配置文件)建造者模式(链式调用)总结源码实例软件界面多种显示模式假设一个视频播放软件提供多种界面显示模式的应用场景,该软件支持完整模式、精简模式、记忆模式等;在不同的显示模式下主界面的组成元素有所差异,如:在完整模式下显示主菜单、播放列表、主窗口、控制条;在精简模式下只显示主窗口、控制条;在记忆模式下显示主窗口、控制条、收藏列表软件结构示意图如下:可以看出,显示模式是一个复杂对象,包含主菜单、播放列表、主窗口、控制条等多个组成部分

2022-03-07 10:51:46 474

原创 设计模式 - 抽象工厂模式

目录实例手机软件初始化工厂方法模式解决方案抽象工厂模式概念抽象工厂模式解决方案方案的演进(配置文件)总结源码实例手机软件初始化假设一个手机软件初始化的应用场景,该软件支持IOS、Android、Windows等多个操作系统平台,针对不同的操作系统,该软件提供了不同的操作功能(Operation)类和操作界面(Surface)类,并提供相应的工厂类来封装这些类的初始化过程。软件要求具有较好的扩展性以支持新的操作系统平台软件结构示意图如下:工厂方法模式解决方案初始解决方案采用工厂方法模式,

2022-03-05 20:13:50 3030

原创 Nginx部署Vue项目动态路由刷新404

目录前言第一次第二次前言记录下Nginx部署Vue项目刷新404的解决方案,遇到了两次,route用的是history路由模式,动态路由:{ path: '/article/:blogId', name: 'blog', component: blog}然后部署nginx,location / { root /usr/local/nginx/html/blog/; index index.html index.htm;}然后刷新页面what

2022-03-03 19:02:48 3699 1

原创 设计模式 - 工厂方法模式

目录实例图片读取器简单工厂解决方案工厂方法模式概念工厂方法解决方案方案的演进(配置文件)总结源码实例先看一个例子图片读取器设计一个可以读取不同类型图片格式的程序,针对每种图片格式都需要一个图片读取器,如GIF读取器用于读取GIF图片,JPG读取器用于读取JPG图片,需充分考虑系统的灵活性和可扩展性简单工厂解决方案使用简单工厂的解决方案大致如下:Img.java/** * @Description 图片 */public abstract class Img { /**

2022-03-03 06:50:12 873

原创 设计原则 - 里氏替换原则

目录概念编码实例里氏替换原则总结源码概念里氏替换原则(Liskov Substitution Principle, LSP):一个软件实体如果适用一个父类的话,那一定适用于其子类,所有引用父类的地方必须能透明地使用其子类的对象,子类对象能够替换父类对象,而程序逻辑不变。里氏替换原则表眀,在软件中将一个基类对象替换成他的子类对象,程序将不会产生任何错误和异常,反之则不成立;如果一个软件实体使用的是一个子类对象,那么它不一定能够使用基类对象。例如,张三喜欢动物,那张三一定喜欢狗,因为狗是动物的子类

2022-01-10 07:04:09 431

原创 设计模式 - 简单工厂

目录实例图表库简单工厂模式概念解决方案方案的改进总结源码实例图表库开发人员希望开发一套灵活易用的图表库,可以为应用系统提供各种不同外观的图表,如:柱状图,饼图,折线图等。初始设计方案将所有的图表实现代码封装在一个Chart类中,其代码如下:Chart.javapublic class Chart { /** * 图表类型 */ private String type; /** * 初始化图表 * @param type

2021-12-21 06:52:20 222

原创 设计原则 - 合成复用原则

目录概念编码实例合成复用原则源码概念合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合(contains-A)/聚合(has-A),而不是继承关系达到软件复用的目的。合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。优点:可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。合成复用是达到开闭原则的一种实现

2021-12-20 10:23:47 1091

原创 设计原则 - 迪米特法则

目录概念编码实例迪米特法则实现源码概念迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。核心观念:类之间的解耦,尽量降低类与类之间的耦合。优点:降低类之间的耦合。强调:只和朋友(出现在成员变量、方法的输入、输出参数中的类成为成员朋友类,而出现在方法体内部的类不属于朋友类)交流,不和陌生人说话。编码实例Boss给Leader下达获取课程数的指令Boss.java/** * @Description Boss * @date

2021-12-07 11:11:00 279

原创 设计原则 - 接口隔离原则

目录概念编码实例接口隔离原则的实现源码概念定义:Interface Segregation Principle,ISP,使用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口一个类对一个类的依赖应该建立在最小的接口上建立单一接口,不要建立庞大臃肿的接口尽量细化接口,接口中的方法尽量少注意适度原则,一定要适度优点:符合常说的高内聚低耦合的设计思想,从而使类具有更好的可读性、可扩展性和可维护性编码实例IAnimalAction.java/** * @Descr

2021-12-07 07:01:59 224

原创 设计原则 - 单一职责原则

目录概念编码单一职责的体现(类)实例改进单一职责的体现(接口)实例改进源码概念定义:单一职责原则(Single Responsibility Principle,SRP),一个类只负责一个功能领域中的相应职责,不要存在多余一个导致类变更的原因。核心思想:一个类不应该承担过多的职责。在软件系统中,一个类承担的职责越多,其被复用的可能性就越小,且其中一个职责发生变化时,可能会影响其它职责的运作,因此需要将职责进行分离封装在不同的类中。单一职责原则用于控制类的粒度大小,是实现高内聚,低耦合的指导方针。

2021-12-06 22:44:22 437

原创 设计原则 - 依赖倒置原则

目录概念实例代码实例开闭原则的实现源码概念依赖倒置原则的定义:Dependency Inversion Principle,DIP,高层模块不应该依赖低层模块,二者都应该依赖其抽象。依赖倒置原则的中心思想:抽象不应该依赖细节;细节应该依赖抽象。依赖倒置原则的核心思想:针对接口编程,不要针对实现编程。依赖倒置原则的优点:可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险。如果说开闭原则是面向对象设计的目标,依赖倒置原则就是面向对象设计的主要实现机制之一,它

2021-12-06 06:46:33 1160

原创 设计原则 - 开闭原则

目录概念实例代码实例需求变更开闭原则的实现源码概念开闭原则的定义:Open-Closed Principle,OCP,一个软件实体应当对扩展开放,对修改关闭。开闭原则的中心思想:用抽象构建框架,用实现扩展细节。开闭原则的优点:提高软件系统的可复用性及可维护性实现开闭原则的核心思想:面向抽象编程。一句话理解:软件实现应对扩展开放,对修改关闭实例代码实例以慕课网课程举例ICourse.java/** * @Description 课程 * @date Aug 27, 2

2021-12-03 11:29:50 608

原创 SpringBoot - AOP 实现登录状态检查

目录前言实现登录状态检查的方式AOP 定义AOP 相关概念Advice 通知类型具体实现实现代码测试源码前言记录下AOP实现登录状态的检查,文章使用的JWT校验参考:SpringBoot - 集成Auth0 JWT实现登录状态检查的方式Servlet过滤器拦截器Spring AOPAOP 定义AOP(Aspect Oriented Programming),面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术,在程序开发中主要用来解决一些系统层面上的问题,在

2021-10-14 11:48:37 922

原创 SpringCloudAlibaba - Gateway 自定义过滤器工厂

目录前言环境Gateway过滤器的生命周期过滤器工厂内置过滤器工厂自定义过滤器工厂自定义过滤器工厂 - 实现方式自定义过滤器工厂 - 具体实例自定义过滤器工厂- 核心API前言Gateway中的过滤器可以为路由添加业务逻辑,修改请求以及响应环境Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASEGateway过滤器的生命周期pre: Gateway转发请求之前post: Gateway转发请求之后过滤器工厂内置过

2021-09-30 12:51:01 430

原创 SpringCloudAlibaba - Gateway 自定义路由谓词工厂

# 前言 Route(路由)是```Spring Cloud Gateway```的基础元素,就是一个转发规则,其包含```ID```、目标```URL```、```Predicate```集合以及```Filter```集合```Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE```如果访问```gateway的/baidu```这个路径就会进入该路由,会用```AddRequestHeader```这个过滤器去处理,再将请求转发到`

2021-09-29 20:15:03 571 1

原创 SpringCloudAlibaba - 整合 Gateway 实现对微服务的反向代理

目录前言环境为什么要使用网关Gateway的优点Gateway 核心概念Gateway 整合实例网关 core-gateway用户中心 user-center测试前言Spring Cloud Gateway是SpringCloud生态的第二代网关(第一代是Zuul),基于Netty、Reactor以及WebFlux构建环境Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE为什么要使用网关简化登录认证,网关统一认证再转发到

2021-09-29 17:35:38 1315

原创 SpringCloudAlibaba - RocketMQ 分布式事务消息的实现

目录前言环境分布式事务消息流程流程图流程解析事务消息三种状态具体实现实现代码内容中心用户中心测试前言RocketMQ提供了事务消息去解决程序异常回滚但消息已发出的问题,如服务A插入一条数据后服务B需要对用户数据进行修改,而服务A发出消息后程序发生异常导致数据插入回滚,而服务B监听到消息又对数据进行了修改,导致数据出现问题环境Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE + RocketMQ 4.7.0分布式事务消息流程

2021-09-29 00:47:03 387

原创 SpringCloudAlibaba - 整合 RocketMQ 实现消息生产与消费

目录前言环境搭建搭建具体实现编写生产者(内容中心)代码测试编写消费者(用户中心)代码测试前言RocketMQ是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务环境win10 + Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE + RocketMQ 4.7.0搭建搭建关于MQ与RocketMQ的环境搭建查看之前的文章MQ的适用场景、选择、术语和概念Windows下安装Ro

2021-09-28 20:29:30 1086

原创 MQ的适用场景、选择、术语和概念

目录前言MQ的适用场景MQ的选择MQ的术语和概念MQ的搭建导航前言MQ(Message Queue)消息队列MQ的适用场景异步处理把一些耗时但不阻塞主流程的业务让MQ去做业务处理,提升用户体验流量削峰填谷秒杀场景,利用MQ控制流量,一旦超出阈值就丢弃请求或弹出错误页,防止应用被洪峰打死解耦微服务A服务调用B服务,B挂了,A的接口也无法正常返回,即使有Sentinel可以保护A不被B拖死,但接口依然无法正常返回,使用MQ后演变成A生产消息到MQ,B去消费MQ,即使B挂了,M

2021-09-28 17:48:50 398

原创 SpringCloudAlibaba - Sentinel 的规则持久化

目录前言拉模式原理实现推模式原理实现前言记录下Sentinel规则持久化的实现拉模式原理Sentinel推送规则给微服务,微服务把规则生成JSON文件缓存到本地,Sentinel客户端会用一个定时任务定时去读取这个JSON文件并将它更新到规则缓存里,即使重启微服务,依然会从本地文件读取规则,通过这样的方式实现规则持久化实现SentinelDataSourceInit.javaimport com.alibaba.csp.sentinel.command.handler.Modify

2021-09-26 21:28:46 171

原创 SpringCloudAlibaba - Feign 整合 Sentinel

目录前言环境简单示例content-centeruser-center测试定制自己的逻辑处理限流/降级的异常捕捉前言记录下Feign整合Sentinel的方式Feign的整合与Sentinel的整合查看系列文章环境Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE + Sentinel 1.8.1简单示例实现内容中心使用feign调用用户中心接口限流content-centerapplication.yml

2021-09-26 19:45:03 425

原创 SpringCloudAlibaba - RestTemplate 整合 Sentinel

目录前言环境具体实现内容中心用户中心测试关闭@SentinelRestTemplate注解前言记录下RestTemplate整合Sentinel的方式Sentinel的整合查看:SpringCloudAlibaba - 整合 Sentinel 实现服务限流环境Spring Cloud Hoxton.SR9 + Spring Cloud Alibaba 2.2.6.RELEASE + Sentinel 1.8.1具体实现实现内容中心使用RestTemplate调用用户中心接口限流内容

2021-09-26 18:57:02 197

原创 SpringCloudAlibaba - @SentinelResource注解的使用

目录前言具体使用简单示例blockHandlerClass 单独配置注解属性前言@SentinelResource用于定义资源具体使用简单示例SentinelResourceController.javaimport com.alibaba.csp.sentinel.annotation.SentinelResource;import com.alibaba.csp.sentinel.slots.block.BlockException;import lombok.extern.slf

2021-09-26 16:44:39 185

原创 SpringCloudAlibaba - Sentinel API 使用示例

目录前言前言https://github.com/alibaba/Sentinel/wiki 概览- ```Sentinel```的三个核心```API``````SphU 定义资源,让资源受到监控且可以保护资源Tracer 可以对想要的异常进行统计ContextUtil 可以实现调用来源,还可以标记调用```

2021-09-26 14:53:10 1081

原创 Python - Excel 的读取与写入

目录前言读取Excel实现列拼接写入数据读取Excel中的数据写入新的Excel前言记录下最近使用Python操作Excel的方法读取Excel实现列拼接写入数据原数据实现效果安装pandaspip install pandasexcel_handle.py# coding=utf-8"""拼接excel中的列写入新列"""import pandas as pddef handle_excel(file): df = pd.read_excel

2021-09-26 12:36:19 716

空空如也

空空如也

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

TA关注的人

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