- 博客(37)
- 资源 (3)
- 收藏
- 关注
原创 docker搭建镜像仓库并设置账密登录
在工作过程中,有时候会碰到需要把docker镜像放到另外一台机器上运行,提交到公网的docker hub太慢,如果每次导出文件传输再导入又太麻烦,还不方便进行版本控制、自动部署等操作。于是docker官方提供了一套简单的实现方案,就是Registry镜像。然后重启docker。
2024-01-11 17:49:55 1440
原创 优化重复冗余代码的8种方式
日常开发中,我们经常会遇到一些重复代码。大家都知道重复代码不好可维护性差、可读性差、增加错误风险等等。这里给大家讲讲优化重复代码的几种方式
2023-11-14 21:59:20 911
原创 实战!工作中常用的设计模式
平时我们写代码呢,多数情况都是流水线式写代码,基本就可以实现业务逻辑了。使用设计模式优化自己的业务代码。策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的的客户。策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。当你想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式。责任链模式为请求创建了一个接收者对象的链。
2023-11-07 21:35:49 1711 1
原创 Java项目防止SQL注入的四种方案
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。# sql示例这个id从请求参数中获取,若参数被拼接为: ❝1001 or 1 = 1❞此时,数据库的数据都会被清空掉,后果非常严重。
2023-10-13 09:47:19 793
原创 Linux安装JDK、Redis、MySQL、RabbitMQ、Minio、Nginx.......
Linux安装JDK、Redis、MySQL、RabbitMQ、Minio、Nginx.......
2023-07-19 18:03:07 557
原创 Dockerfile、docker-compose、docker网络以及Portainer安装
下载centos镜像docker pull centos # 运行镜像 docker run -it centos bash # 镜像并为包含vim、ifconfig、jdk8等命令 [ root@09d64df3925c / ] # vim a.txt bash: vim: command not found [ root@09d64df3925c / ] # ficonfig bash: ficonfig: command not found [ root@09d64df3925c / ] exit。
2023-07-18 16:10:38 685
原创 Excel导入导出
EasyPoi公司基础框架中 默认已引入了 easypoi 工具包官方文档:EasyExcelly-ac-core-excel 包中提供了基于阿里出品的EasyExcel以上两种大家都可以根据业务情况自行选择使用,在使用之前请详细阅读文档,熟悉之后再看本章节的使用说明注意:同一工程里面只能选择使用一种,避免冲突。
2023-07-17 09:07:08 3811
原创 docker简介以及docker安装redis、mysql并实现数据挂载宿主机
docker简介以及docker安装redis、mysql并实现数据挂载宿主机
2023-07-13 11:47:01 1371 4
原创 Linux安装Nginx
Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。正向代理:代理客户端反向代理:代理服务器nginx提供的负载均衡策略有两种:内置策略和扩展策略。内置策略为轮询,加权轮询,IP hash轮询:加权轮询ip hash:对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
2023-07-02 17:22:16 82
原创 shell脚本指定环境启动jar包
启动命令:sh /opt/api_run.sh restart 8081 envment java-1.0.0-SNAPSHOT.jar。参数3:envment -----环境,对应文件夹以及springboot中的yml文件。参数1:restart --执行命令。参数4:java-1.0.0-SNAPSHOT.jar --jar包名称。参数说明:sh /opt/api_run.sh --启动脚本。参数2:8081 --启动端口。
2023-06-30 16:45:24 1006
原创 Shell脚本入门
shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统内核。Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。基本语法(a)定义变量:变量=值(b)撤销变量:unset 变量(c)声明静态变量:readonly 变量,注意,不能 unset变量定义规则(a)变量名称可以由字母、数字、下划线组成,但是不能以数字开头。环境变量名建议大写(b)等号两侧不能有空格(c)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
2023-06-30 16:15:27 1743
原创 Linux磁盘分区初始化并挂载至/home下
指定存放相关数据至/home目录下,但发现改目录存储空间不够,于是外挂了一块磁盘并分区挂载至/home目录下
2023-06-28 15:47:54 3969
原创 记一次自定义拦截器拦截/v2/api-docs失效的问题排查
项目中使用swagger来自动生成接口文档,为了防止接口文档地址在外网被访问,需要对swagger的静态资源链接以及动态接口请求根据host属性做一些处理,使得外网域名不能访问接口文档地址。一个容易想到的办法就是通过Spring的Interceptor来实现,在preHandle方法中对swagger的请求路径做拦截。
2023-05-30 16:56:31 3930 1
原创 解决finalshell无法连接,一直提示登陆密码
在使用FinalShell连接配置虚拟机时,无法正常连接,一直提示输入登录密码,即使输入的密码是正确的。输入命令,取消文件里PermitRootLogin yes的注释,退出保存。
2022-12-08 11:11:43 29165 49
原创 【Linux 升级Openssh以及Openssl版本】
服务器漏洞,需要升级openssh版本到9.0。如果在执行后指令提示,是因为目标机上没有安装wget指令,需进行wget指令安装;二、解压压缩包下载完成后,解压压缩包查看opt目录三、删除原有的相关文件先卸载openssh服务若出现下列 相关错误,执行 后重新卸载openssh服务四、安装编译新的ssh进入到自己解压好的ssh目录下(根据自己实际情况,每个人解压的目录可能不一样)安装编译:安装过程中,可能出现如下错误:若提示,执行后重新进行安装编译
2022-12-07 18:03:34 9302 2
原创 解决Nacos集群搭建,Nginx负载均衡后服务注册失败
搭建Nacos集群后,使用Nginx实现对Nacos集群的负载均衡后,springboot服务通过Nginx方向代理注册进Nacos集群。
2022-11-27 16:27:30 3725
原创 Windows系统下Nacos持久化配置以及集群搭建
Windows系统下Nacos持久化配置以及集群搭建,并配合使用nginx实现集群的负载均衡
2022-11-25 18:45:19 585
原创 type-aliases-package不生效问题记录
yml文件配置后,但在mapper.xml中通过parameterType使用却并未生效。在resource目录下,新建config.xml,并配置别名。
2022-11-13 17:51:23 2114 1
原创 设计模式之工厂模式详解
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、简单工厂模式1 用传统方式来完成1.1 步骤实现1.2 优缺点2 简单工厂模式2.1 简单工厂模式2.2 步骤实现3 工厂方法模式3.1 工厂方法模式介绍3.2 步骤实现4 抽象工厂模式4.1 抽象工厂模式介绍4.2 步骤实现5 工厂模式小结5.1 工厂模式意义:5
2022-05-04 17:46:12 282 2
原创 Java8通过Function获取字段名(获取实体类的字段名称)
在业务中,有时候需要获取实体类的字段名称,但我们又不能通过手动输入的方式获取,于是可以通过Function获取字段名,使用Function的形式传递参数比较好用优雅而且不会写错, .eq(User::getAge)1.新建工具类 ColumnUtil/** * Java8通过Function函数获取字段名称(获取实体类的字段名称) * * @Author: qi * @Date: 2022/4/27 16:59 */public class ColumnUtil { /** .
2022-04-27 17:19:13 7766 3
原创 Java8之List最大值、最小值、求和、平均值
数值类型ArrayList<Double> sumAmountResult = new ArrayList<Double>();sumAmountResult.add(111d);sumAmountResult.add(222d);sumAmountResult.add(333d);sumAmountResult.add(444d);double sumChildAmountResult = sumAmountResult.stream().mapToDouble(Do
2022-04-12 09:52:29 1788
原创 设计模式之单例模式详解
单例设计模式1、单例设计模式介绍所谓的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。2、单例设计模式的八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)双重检查静态内部类枚举2.1、 饿汉式(静态常量)构造器私有化(防止 new )类的内部创建对象向外暴露一个静态的公共方法。getInstance代码实现
2022-04-08 11:04:31 251 1
原创 MySQL索引
1.什么是索引 index官方定义:一种帮助mysql提高查询效率的数据结构索引数据结构:B+Tree索引的优点:大大加快数据查询速度索引缺点:维护索引需要耗费数据库资源索引需要占用磁盘空间当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响2.索引分类(重点)主键索引:设定为主键后数据库会自动建立索引,innodb为聚簇索引。主键索引索引列不能有空单值索引:即一个索引只包含单个列,一个表可以有多个单列索引唯一索引 :索引列的值必须唯一,但允许有
2022-03-24 17:30:03 664 2
原创 MyBatis一级缓存和二级缓存
一、一级缓存Mybatis 的一级缓存是指Session缓存。一级缓存的作用域默认是SqlSession。Mybatis默认开启一级缓存。在同一个SqlSession中,执行相同的查询SQL,第一次会去数据库进行查询,并写到缓存中;第二次以后则直接去一级缓存中取。当执行的SQL查询中间发生了增删改的操作,mybatis会把SqlSession的缓存清空。一级缓存失效的情况SqlSession不同;SqlSession相同,查询条件不同。因为缓存条件不同,缓存中还没有数据。SqlSession
2022-03-12 20:13:11 4305 1
原创 Java ConcurrentModificationException异常解决方法
项目场景:环境:JDK 1.8.0_111在Java开发过程中,使用iterator遍历集合的同时对集合进行修改就会出现java.util.ConcurrentModificationException异常问题描述:在使用foreach对集合进行遍历操作递归调用时,报错:Java ConcurrentModificationException 解决方案:使用原生for循环进行遍历即可解决问题...
2022-02-25 18:21:31 234 1
原创 CentOS7 设置防火墙、开放指定端口操作
CentOS7 设置防火墙操作、开放指定端口操作1, 查看防火墙状态:firewall-cmd --statesystemctl status firewalld.service2, 开启防火墙:systemctl start firewalld.service3,设置开机自启:systemctl enable firewalld.service4, 重启防火墙:systemctl restart firewalld.service5, 查看防火墙设置开机自启是否成功:
2022-02-15 10:36:13 12123 2
原创 java中静态方法,非静态方法和构造方法的执行顺序
项目场景:java中静态方法,非静态方法和构造方法的执行顺序问题一直是面试总会遇到的一个问题,很多初级程序员都会在这个上面出现问题,也包括博主我,所以今天我将自己亲历写出来,让大家看一看,结果显而易见。public class A { static { System.out.println("输出静态方法===A"); } public A() { System.out.println("输出构造方法===A"); } { System.out.println("
2022-02-15 10:27:02 427
原创 【SpringBoot项目No qualifying bean of type ‘×××Mapper‘ available:的错误解决】
项目场景:在使用SpringBoot搭建环境的时候,启动项目出现这个bug,最终分析并找到原因。问题描述:原因分析:根本原因是mapper类没有成功注入。在springBoot 或springCloud中basePackages是通过注解@mapperScan(“”)方式扫描的,而不是以前的配置文件的方式,basePackages通常会写在application启动类上上面。解决方案:提示:这里填写该问题的具体解决方案:例如:新建一个 Message 对象,并将读取到的数据存入 Messag
2022-02-15 10:20:11 7282
原创 MQ消息中间件之RabbitMQ以及整合SpringBoot2.x实战教程
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、MQ引言1.1 什么是MQ1.2 MQ有哪些1.3 不同MQ特点1. ActiveMQ2. Kafka3. RocketMQ4. RabbitMQ二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器
2022-01-14 10:18:57 1259
原创 单点登录之JWT认证原理、流程整合springboot实战应用
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、什么是JWT?二、JWT能做什么?三、为什么是JWT基于传统的Session认证基于JWT认证四、JWT的结构是什么?五、使用JWT六、封装工具类七、整合SpringBoot总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门
2022-01-10 14:20:46 483
原创 Navicat连接Oracle时报错ORA-28547:已解决
使用Navicat连接oracle数据库时报ORA-28547错误这是因为Navicat自带的oci.dll并不支持oracle11g,网上这么说的,需要去官网下载支持的版本。解决方案:如果之前没有下载过OCI,可以去官网下载,这里我下载好了,也可以直接下载instantclient_11_2下载好了之后,只要替换我们本地instantclient安装目录下的oci.dll文件就好,具体改动如下:打开我们的Navcat,菜单栏中—工具—选项在【环境】中选择【OCI环境】,并选择我们下载好的
2022-01-06 17:27:21 719 2
原创 SpringBoot整合阿里云OSS对象存储
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、阿里云OSS是什么?二、使用步骤2.读入数据总结前言为了解决海量数据存储与弹性扩容,我们一般采用云存储的解决方案-阿里云OSS。一、阿里云OSS是什么?可直接搜索阿里云官网,申请阿里云账号并进行实名认证搜索对象存储OSS,并开通服务点击进入后立即开通并管
2021-12-25 19:44:32 954
原创 SpringBoot访问Swagger2报错Unable to infer base url
问题描述:新搭建好的springboot项目,导入相关swagger依赖后通过localhost访问。但访问时报错信息Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served.
2021-12-25 18:22:30 617
原创 解决:Disconnected from the target VH,address: ‘127.0.0.1:56995‘,transport: ‘socket‘
问题描述:新建Springboot项目,导入相关依赖,进行启动后,发现无法正常启动原因分析: 相信有不少细心小伙伴在新启动一个spring boot项目时候会发现这样一条信息no active profile set, falling back to default profiles: default。为什么会出现这样的提示呢,我们先来看看profile,profile是Spring对不同环境提供不同配置功能的支持,可以通过激活、 指定参数等方式快速切换环境Profile。举个例子我们在开发,测试
2021-12-23 10:16:20 5229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人