自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

薛定谔的英短的博客

希望我的文章能帮助我们一起成长。

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

原创 docker安装minio文件服务器

docker安装minio文件服务器,并使用自定义端口。挂载宿主机目录

2022-08-12 14:33:10 492 1

原创 docker安装nginx

docker安装nginx基础环境创建挂载目录拉取nginx镜像先启动一个nginx容器,用于复制nginx配置文件拷贝nginx容器内的配置文件到宿主机上删除nginx容器重新启动挂载了宿主机目录的nginx容器安装完成后浏览器访问nginx部署vue单页面应用时,需要更改配置文件(不修改,刷新页面时会404)APP需要访问时(不需要可以不更改配置文件)部署前端项目浏览器输入地址,查看是否部署成功基础环境Linux centOS 7.X创建挂载目录依次执行命令 mkdir /home/dock

2021-12-02 09:15:00 436

原创 docker安装fastDFS

docker安装fastDFS基础环境拉取镜像创建Tracker容器(默认22122端口)创建Storage容器(注意修改TRACKER_SERVER=192.168.0.1:22122为自己的IP)storage容器的配置文件所在目录storage容器内置的nginx配置文件所在目录进入容器的命令如果访问不了可能是防火墙的原因开放端口:重启防火墙如果是云服务器(腾讯云/阿里云)测试是否安装成功宿主机放入一个文件进入Storage容器内预览文件基础环境Linux centOS 7.X拉取镜像doc

2021-12-01 09:40:36 1905

原创 docker安装mysql并挂载宿主机目录

docker安装mysql基础环境创建mysql配置、数据文件挂载目录下载mysql镜像先启动一个不挂载外部目录的容器启动挂载外部目录的mysql容器mysql配置文件基础环境linux centOS 7.X创建mysql配置、数据文件挂载目录执行命令:mkdir -p home/dockermysql/mysql下载mysql镜像docker pull mysql:5.7.36先启动一个不挂载外部目录的容器docker run -d -p 3306:3306 -e MYSQL_ROOT_

2021-11-30 15:36:01 669

原创 docker的fastDFS容器升级内置nginx版本

docker的fastDFS容器升级内置nginx版本基础环境操作系统fastDFS镜像fastDFS-Storage容器升级storage容器内的nginx进入storage容器查看当前nginx进程下载编译1.21.4版本的nginx下载并解压获取旧版本nginx编译的内容在解压后的新的nginx文件里执行旧版本的configure arguments:里面的内容执行make命令新版本替换旧版本首先备份旧的nginx可执行程序文件找到新版本的nginx的可执行程序文件用新版本的nginx可执行程序文件覆

2021-11-30 11:22:20 3034 1

原创 nginx代理websocket-wss协议

nginx代理websocket-wss协议申请域名的证书server配置申请域名的证书免费证书网站可以申请一年期限的免费证书server配置server { listen 443 ssl; server_name pkws.test.cn; # ali ssl_certificate C:/WorkSpaces/nginx-1.18.0/conf/vhost/certs/test.cn/4369852_pkws.tes

2021-09-13 11:24:47 185

原创 springBoot配置文件设置mongodb连接密码加密

springBoot配置文件设置mongodb连接密码加密方案实践pom文件引入依赖application.yml文件中定义加密的秘钥定义main函数测试加解密把加密后的密码放置到MongoDB的properties配置文件中新增MongoDB配置文件springBoot启动类上把自动加载的MongoDB配置类排除启动测试方案1、对明文密码加密2、自定义MongoDB配置文件,在获取密码的时候解密。实践pom文件引入依赖<dependency> <groupId>c

2021-06-25 11:31:58 2790 1

原创 springBoot+itext处理富文本转pdf

springBoot+itext处理富文本转pdfpom文件引入依赖html转PDF方法处理不换行创建包新增Breaker.java类pom文件引入依赖 <!-- itext5 start --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId>

2021-06-21 11:05:00 1700 2

原创 mysql5.7使用分组函数时报错

mysql5.7使用分组函数时报错报错信息解决方法修改配置文件报错信息java.sql.SQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘jeecg-boot.sd.depart_name’ which is not functionally dependent on columns in GROUP BY clause; t

2021-06-21 10:19:17 340

原创 springBoot上传word文档并合并图片-处理电子文档签名

springBoot上传word文档并合并图片-处理电子文档签名实现思路实践导入pom依赖包定义工具类结果实现思路整理一个签名模板在乙方签字处添加一个书签作为标识遍历文档书签,匹配到签字的标识把签名的图片插入到书签位置实践导入pom依赖包 <!--处理docx--> <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j</art

2021-05-17 11:48:13 692

原创 mysql-计算两个日期的间隔(年月日时分秒)+实现业务中应用-筛选出出生日期大于多少月的数据

mysql-计算两个日期的间隔(年月日时分秒)+实现业务中应用-筛选出出生日期大于多少月的数据业务需求业务实现的sql用法sql解析相差的年数相差的月数相差的天数业务需求推荐用户时需要筛选出一定年龄的才可以展示(有的人出生年月日选择的当前年月日,需要规避掉这个人的展示)业务实现的sql用法SELECT * FROM `user` WHERE TIMESTAMPDIFF(MONTH,birth,DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')) > 216sql

2021-02-26 10:05:49 808

原创 SpringBoot给容器中注册bean时常用注解

SpringBoot给容器中注册bean时常用注解@Configuration和@Bean@Configuration和@Bean 注解实践创建Dog类创建配置类应用入口类执行结果@Import@Import实践TestConfiguration类中引入Person类项目入口类执行结果@Conditional@ConditionalOnBean@ConditionalOnBean实践执行结果@ConfigurationProperties实践application.properties实体类执行结果@Co

2021-02-23 09:19:38 560

原创 SpringBoot拦截器全局拦截登陆当集成knife4j遇到的“Knife4j文档请求异常问题”

SpringBoot拦截器全局拦截登陆当集成knife4j遇到的“Knife4j文档请求异常问题”问题解决方案拦截器配置文件里配置不拦截静态资源登录拦截器详细配置除此之外可能还有别的原因问题集成knife4j后,无法访问api文档。解决方案拦截器配置文件里配置不拦截静态资源因为swagger的页面都属于静态资源,需要在拦截器里排除掉。package com.minglei.hotnews.config;import org.springframework.beans.factory.ann

2021-02-05 08:51:47 15523 5

原创 Nginx系列(二):Nginx配置文件结构分析

Nginx系列(二):Nginx配置文件结构分析Nginx配置文件位置Nginx配置文件组成全局块events块http块Nginx反向代理配置Nginx配置负载均衡Nginx配置文件位置Nginx配置文件组成全局块Nginx配置文件开始到events块之间主要用来设置一些影响Nginx服务器运行的配置指令。包括配置运行Nginx服务器的用户、允许生成worker process数、进程pid存放路径、日志存放路径和类型、配置文件的引入。events块events块里的指令主要影响Ngin

2021-02-04 09:06:03 156

原创 Nginx系列(一):基本概念及安装

Nginx系列(一):基本概念及安装Nginx是什么?Nginx作为web服务器正反向代理正向代理反向代理负载均衡Linux安装Nginx安装编译工具及库文件安装 PCRE前置环境安装Nginxnginx常用命令:Nginx是什么?Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。特点是占有内存少,并发能力强。Nginx作为web服务器Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如Perl、P

2021-02-01 08:33:12 339

原创 redis系列(九):Redis主从复制概念及实现集群功能

redis系列(九):Redis主从复制主从复制概念配置从库测试主从复制启动三个redis服务器查看当前服务的信息6380、6381端口绑定主库几种实现方式一主多从链式实现的一主多从(薪火相传似的,一个库绑定上一个库)哨兵模式(sentinel)只做简单了解使用步骤测试哨兵模式是否可用cluster模式cluster集群原理配置文件参数启动6个redis服务节点启动节点后 加入到集群使用redis-cli客户端链接集群测试节点读写信息测试节点故障测试节点读写信息主从复制概念主机数据更新后根据配置和策略,

2021-01-28 09:50:19 146

原创 redis系列(八):Redis消息订阅发布与如何在SpringBoot中应用

redis系列(八):Redis消息订阅发布与如何在SpringBoot中应用订阅发布消息订阅/发布原理redis自带的客户端测试订阅发布订阅频道(subscribe)发生消息按照通配符订阅spring boot+redis 监听过期的key事件订阅发布发送者(pub)发生消息,订阅者(sub)接收消息。消息订阅/发布原理订阅信息由服务器进程维持的 redisServer.pubsub_channels 字典保存,字典的键为被订阅的频道,字典的值为订阅频道的所有客户端。当有新消息发送到频道时,程

2021-01-26 08:38:49 150

原创 redis系列(七):Redis事务

redis系列(七):Redis事务Redis事务是什么?事务原理事务相关的命令MULTI(开启事务)EXEC(执行事务)DISCARD(中断事务)WATCH key [key ...]UNWATCH注意事项Redis事务是什么?可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序串行化执行而不会被其他命令插入,不许加塞。单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。事务可以理解

2021-01-20 10:49:24 80

原创 redis系列(六):Redis持久化

redis系列(六):Redis持久化Redis持久化RDB(Redis DataBase)RDB原理Forkdump.rdb(数据保存的文件)RDB配置stop-writes-on-bgsave-error yesrdbcompression yes(压缩 rdb)如何手动备份?RDB优势RDB劣势如何停止AOF(Append Only File)appendonly.aof文件aof配置appendonly noappendfilename "appendonly.aof"(aof文件)appendfs

2021-01-13 09:28:51 82

原创 redis系列(五):redis.conf配置文件常用配置介绍

redis系列(五):redis.conf配置文件常用配置介绍常用配置include /xx/xx/xxx.conf(包含配置文件)requirepass foobared(redis访问密码)daemonize no(是否守护进程,后台运行redis)port 6379(端口)tcp-backlog 511timeout 0 (客户端空闲时关闭连接)tcp-keepalive 300loglevel notice(日志级别)maxclients 10000(最大连接数)maxmemory (最大内存)重点

2021-01-11 10:19:06 307

原创 redis系列(四):超详细的redis常用的数据类型及命令

redis系列(四):超详细的redis常用的数据类型及命令Redis key关键字KEYS*EXISTS keyMOVE key dbEXPIRE key 秒数TTL keyRedis String相关命令GET keySET key valueAPPEND key valueINCR keyINCRBY key 3DECR keyDECRBY key 3GETRANGE key 0 -1GETRANGE key 0 3SETRANGE key 0 xxxRedis List相关命令LPUSH lis

2021-01-06 08:45:40 99

原创 redis系列(三):redis及常用的数据类型介绍

redis系列(三):redis及常用的数据类型介绍单线程模型redis数据库常用的五大数据类型String(字符串)Hash(哈希,类似于Java的Map)List(列表)Set(集合)ZSet(sorted set:有序集合)单线程模型Redis是单线程模型,依靠主线程来完成处理。单线程模型可以避免多线程带来的执行顺序的不确定性,多线程会带来并发读写的一系列问题,增加系统的复杂性,同时可能会出现加锁、解锁、死锁造成的性能损耗。redis 6.0版本的多线程是默认禁用的,只使用主线程。如需要开启可

2021-01-05 09:03:54 114

原创 redis系列(二):Linux安装Redis服务端及处理安装时常见的错误

redis系列(二):Linux安装Redis服务端及处理安装时常见的错误redis安装包下载地址安装redis上传安装包到服务器opt目录解压安装配置一下redis.conf里面的密码编译报错:/bin/sh: cc:command not found出现的错误及解决办法报错:server.c:4699:31: error: ‘struct redisServer’ has no member named ‘dbnum’编译redis通过执行make install执行make test出现报错信息启动r

2021-01-04 09:14:03 167

原创 redis系列(一):NoSQL是什么?

redis系列(一):NoSQL是什么?为什么会出现NoSQL?NoSQL是什么?常用NoSQL有哪几种?NoSQL能干嘛?NoSQL应用场景NoSQL数据模型NoSQL的分类NoSQL的CAP原理CAP注意事项BASE原理为什么会出现NoSQL?随着大数据时代到来,数据量增大导致传统数据库无法承载。NoSQL是什么?not only SQL。不仅仅是sql。泛指非关系型数据库。常用NoSQL有哪几种?redis、memcache、MongoDB。NoSQL能干嘛?解决传统数据库的性能

2020-12-31 10:40:57 93

原创 SpringBoot整合websocket+测试

SpringBoot整合websocketpom文件导入websocket依赖创建websocket配置文件创建websocket服务测试是否能连接工具测试结果websocket服务端执行日志pom文件导入websocket依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId&

2020-12-26 11:07:27 2353 6

原创 git:基本命令详解及开发时操作流程

git:基本命令详解及开发时操作流程git initgit clone git地址git clone --branch tags git地址git addgit add --allgit commitgit commit -agit commit -a -m "这里是说明"git pullgit pushgit push origin mastergit branchgit branch --listgit branch --allgit branch -d testBranchgit branch -

2020-12-25 14:23:55 138

原创 git:克隆指定tag版本

git:克隆指定tag版本需求解决办法需求需要克隆SpringBoot 2.2.12源码,但是克隆下来的是最新的版本。解决办法命令: git clone --branch tags git地址用法: git clone --branch v2.2.12.RELEASE https://github.com/spring-projects/spring-boot.git...

2020-12-24 09:32:45 1094

原创 git——设置代理

git——设置代理设置代理查询是否使用代理取消代理设置代理的前提是你电脑已经配置好代理(科学上网)。否则设置无效。并且克隆的时候会报错。设置代理git config --global http.proxy ‘socks5://127.0.0.1:10808’git config --global https.proxy ‘socks5://127.0.0.1:10808’ps:10808是你代理监听的端口号,需要跟代理一致查询是否使用代理git config --global http.pro

2020-12-23 16:09:53 248

原创 SpringBoot集成knife4j生成API文档

SpringBoot集成knife4j生成API文档pom文件导包创建配置文件用法(控制器)效果图最新项目结构pom文件导包 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.7</version> </depende

2020-12-22 10:56:22 1045

原创 学习笔记:设计模式-代理模式-java实现

设计模式-代理模式代理模式定义优点缺点实现代理模式定义需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。优点在客户端与目标对象之间起到一个中介作用和保护目标对象的作用可以扩展目标对象的功能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性缺点会造成系统设计中类的数量增加在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢增加了系统的复杂度实现public

2020-12-18 09:28:55 79

原创 学习笔记:设计模式-观察者模式-java实现

设计模式--观察者模式观察者模式定义优点缺点实现观察者模式定义多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。优点降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。目标与观察者之间建立了一套触发机制。缺点目标与观察者之间的依赖关系并没有完全解除。当观察者对象很多时,通知的发布会花费很多时间,影响程序的效率。实现import java.util.ArrayList;import java.util.

2020-12-17 09:18:56 64

原创 学习笔记:设计模式-适配器模式-java实现

设计模式--适配器模式适配器模式定义优点缺点实现类适配器模式实现对象适配器实现适配器模式定义将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。优点客户端通过适配器可以透明地调用目标接口。复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。缺点可能会增加系统的复杂性增加代码阅读难度,降低代码可读性实现类适配器模式实现public class Main {

2020-12-16 16:11:06 226 1

原创 学习笔记:设计模式-模板模式-java实现

设计模式-模板模式模板模式定义优点缺点应用场景实现模板模式定义一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。优点封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。缺点每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。应用场景逻辑相同,共有的方法可以考虑作为模板方法。实现public class Main { public static void m

2020-12-15 11:13:24 66

原创 学习笔记:设计模式-装饰者模式-java实现

设计模式-装饰者模式装饰者模式定义优点缺点场景实现装饰者模式定义允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。优点装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。缺点多层装饰比较复杂。场景扩展一个类的功能动态增加功能,动态撤销实现public class Main { public static voi

2020-12-12 09:04:42 137

原创 学习笔记:设计模式-工厂模式-java实现

设计模式-工厂模式简单工厂模式定义优点缺点实现工厂方法模式定义优点缺点实现抽象工厂模式定义优点缺点实现简单工厂模式定义定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。优点工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。客户端可以免除直接创建产品对象的职责,很方便的创建出相应的产品。工厂和产品的职责区分明确。无需知道所创建具体产品的类名,只需知道参数即可也可以引入配置文件,在不修改客户端代码的情况下更换和添加新的具体产品类缺点工厂类单

2020-12-11 09:53:07 96 1

原创 学习笔记:设计模式-单例模式-java实现

设计模式-单例模式单例模式定义特点优点缺点应用场景单例模式实现懒汉式单例饿汉式单例单例模式定义一个类只有一个实例,且该类能自行创建这个实例的一种模式。特点单例类只有一个实例对象该单例对象必须由单例类自行创建对外提供一个访问该单例的全局访问点优点可以保证内存中只有一个实例,减少了内存的开销可以避免对资源的多重占用设置全局访问点,可以优化和共享资源的访问缺点单例模式一般没有接口,扩展困难。如果要扩展,除了修改原来的代码,没有第二种途径,违背开闭原则在并发测试中,不利于代码调

2020-12-11 09:48:10 74

原创 学习笔记——设计模式的几个原则

设计模式的几个原则开闭原则(Open Closed Principle,OCP)定义作用开闭原则的实现方法里氏替换原则(Liskov Substitution Principle,LSP)定义作用实现方法依赖倒置原则(Dependence Inversion Principle,DIP)定义作用实现方法单一职责原则(Single Responsibility Principle,SRP)定义优点实现方法接口隔离原则(Interface Segregation Principle,ISP)定义优点实现方法迪米

2020-12-10 09:14:31 103

原创 完整spring boot项目实现乐观锁+重试机制 模拟下单

从零搭建spring boot项目实现乐观锁+重试机制 模拟下单新建数据库表新建goods表新建goods_order表搭建spring boot工程pom.xml引入的依赖application.yml属性配置实体类goods表实体类goods_order实体类创建daogoodsDaoorderDaoServicegoodsServicegoodsServiceImpl 实现类Mapper XML文件goodsDao.xml控制器自定义异常类核心模块-自定义注解核心模块-自定义切面类JMeter测试项目

2020-12-08 16:18:54 1393 3

原创 java之hashCode和equals

java之hashCode和equals如何判断两个对象是否相等?未重写的equals方法判断的是对象的地址判断对象是否相等重写类的hashCode与equals方法,然后再判断总结如何判断两个对象是否相等?未重写的equals方法判断的是对象的地址 public boolean equals(Object obj) { return (this == obj);//判断对象的地址 }判断对象是否相等如果是自定义的类new出来的两个对象肯定是不相等的,因为对象的地址不

2020-12-07 10:53:38 149

原创 学习使人进步:操作系统之进程

操作系统之进程1、进程1.1进程的定义1.2 进程的组成1.3 进程的特点1.4 进程控制结构1.4.1 使用进程控制块1.4.2 PCB三大类信息1.4.3 PCB的组织方式1.5 进程的生命期原理1.5.1 进程的状态1.6 进程状态变化模型1.6.1 进程的基本状态1.6.2 进程挂起1.6.3 与挂起相关的状态转换1、进程1.1进程的定义代表一种运行程序的执行过程,会消耗计算机的资源。一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程1.2 进程的组成进程包含了正在运行的一个程

2020-10-18 11:33:30 225 1

空空如也

空空如也

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

TA关注的人

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