自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试之设计模式(简单工厂模式)

题目很简单,就像在学校解数学题一样,解法有很多种,但是大部分人只会最简单的一种,你能写出多种解法,说明你对这方面有深入学习过。而面试官要考验的就是这个。

2023-02-22 10:50:54 391 1

原创 SpringBoot+layui实现简单登录(后端+前端联调实现)

通过BaseMapper能够继承mybatis-plus提供的基本的增删改查方法。大概的实现就是这样了,有其他问题可评论留言。后端基本链路实现完成。封装类Message。

2022-07-22 10:27:02 2636 4

原创 拿来即用的前端登录页面(简洁清爽版)

代码:resgister.css为自定义文件bootstrap-3.3.7-dist/css/bootstrap.min.cssjquery-3.6.0.min.jsbootstrap-3.3.7-dist/js/bootstrap.min.js都可以通过相应官网下载background:url(‘…/imags/timg.jpg’) no-repeat;中的time.jpg为登录背景图,可以自己替换代码admin.csslog.csslayui.csslayui.jsjquery-

2022-05-12 21:00:00 11310 4

原创 SpringBoot+layui实现简单登录(项目创建+前后端配置)

后端技术开发工具 IDEAJava 1.8项目构建 spring boot 2.6.7项目管理 maven 3.6.3持久层 mybatis-plus 3.5.0数据库 MySQL 8.0.28数据源 Druid 1.2.8前端技术Layui 2.6.8 https://www.layuion.com/jQuery 3.6.0 https://jquery.com/download/基础目录如何通过IDEA创建springboot项目请自行另外查找static

2022-05-07 00:42:58 4664 2

原创 IDEA-git-clone报10053错误解决办法

今天克隆GitHub上的一个项目报Cloning into ‘SSM’…fatal: unable to access ‘https://github.com/xxx/SSM.git/’: OpenSSL SSL_read: Connection was aborted, errno 10053查了一堆都是类似git克隆报错fatal: unable to access: OpenSSL SSL_read: Connection was aborted, errno 10053看到说是代理,想到以前

2022-04-26 21:28:36 769

原创 IDEA-Maven无法引入依赖

可能是IDEA和maven版本不匹配原因问题背景:从代码托管中拉取了最新的代码数据,同事修改了依赖的版本,原版本为3.3.39,后修改为4.0.0。拉取最新分支代码发现本地代码飘红报错解决过程:问了同事得知代码最新版本为4.0.0,通过maven刷新发现依赖依旧是3.3.39,找到maven保存本地依赖的仓库,找到依赖,发现4.0.0和3.3.39都有。删除3.3.39,发现IDEA中3.3.39没了,但是4.0.0还是没进来4.0.0有引入的话,IDEA这边能够查询到。最后查了一系列相关问

2022-03-27 00:26:40 1011

原创 CentOS8使用阿里云yum源异常

CentOS 8解决yum不能更新源问题CentOS8无法正常使用阿里云YUM源[2022年]解决Centos8 yum 官方源下线后无法使用问题(yum更换最新阿里源)Linux安装git时发生如下错误[root@raoyuuuu maven]# dnf install gitRepository extras is listed more than once in the configurationRepository epel is listed more than once in the

2022-02-18 16:33:04 2657 5

原创 MYSQL优化方式-附实际操作校验

本文优化内容主要针对MySQL,有些会进行实际操作进行检验参考SQL优化最干货总结(2020最新版)设计索引的原则是什么?怎么避免索引失效?总结三点最大化利用索引尽可能避免全表扫描减少无效数据的查询本文所用例:mainten表SELECT count(*) FROM or_mainten已有索引1、避免出现select *使用select * 取出全部列,会让优化器无法完成索引覆盖扫描这类优化,会影响优化器对执行计划的选择,也会增加网络带宽消耗,更会带来额外的I/O,内存和C

2022-02-09 15:21:52 152

原创 有趣的问题

同事遇到一个问题,我觉得蛮有意思的集合在sortList方法中处理后,左边使用clear()是正常显示处理后的数据,右边使用 new ArrayList却是显示处理前的数据。简单还原: @Test public void listTest(){ List<String> test = new ArrayList<>(); test.add("as"); test.add("ad"); System.

2022-01-28 13:30:05 361

原创 限制文本框字数

实现文本框字数统计html<div class="layui-input-inline"> <textarea class="layui-textarea" id="reason" name="reason" v-model="reason" maxlength="200" onkeyup="setLength(this,200,'wordsLength');" style="widt

2022-01-26 16:25:07 2202

原创 iabtis-like查询防止SQL注入

最近线上总是报org.springframework.jdbc.BadSqlGrammarException错误org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT lot_code as CODE,lot_name as NAME FROM or_custom_lot where 1=1 and lot_name like '%jia'zhao'y%' ORD

2022-01-07 14:14:32 1033

原创 RabbitMQ在云服务器centos8上Linux的安装部署

1、安装rabbitmqRabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配,查看匹配地址:https://www.rabbitmq.com/which-erlang.htm1.1在windwos下载必要的三个rpm包erlang-rpm:https://github.com/rabbitmq/erlang-rpm/releaseshttps://www.rabbitmq.com/download.html找到Downlo

2022-01-06 10:08:50 1159

原创 java:URLEncoder.encode只转码中文

原文:Java只给汉字转URLEncoder转码起因:线上图片显示异常,因为IOS无法显示带中文的图片链接,在之前的文章中介绍了通过转码进行正常显示,后面发现原来的那个转码有问题,不单单是对中文进行转码,对“%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE”也进行了二次转码,导致链接失效。 @Test public void test() throws UnsupportedEncodingException {

2021-12-29 16:29:48 4306

原创 记一次线上内存溢出问题排查过程-高可用

起因我负责的APP项目系统,简称A系统。在与其它项目T系统不在同一个服务器的情况下,发现T系统重启会导致A系统并发量瞬间暴增,最后导致A系统内存溢出挂掉。排查1、服务器日志排查通过XShell6工具查看系统服务日志,下载日志并排查在服务器宕机的时间内的异常,异常信息中没有具体哪个接口、方法导致,于是找运维要了heapdump文件,利用JDK带的jvisualvm工具进行分析2、通过工具分析工具位置,在JDK中的bin目录下,工具的具体使用请自行查阅将heapdump文件导入分析:通过

2021-12-28 17:03:19 1064

原创 全局异常处理器实现系统异常日志记录到数据库

最近线上老是出现一些奇奇怪怪的问题,一直用XShell去查看又太麻烦。原来的老项目没有做异常日志记录,所以就想着把这块给补上。参考原文全局异常处理器实现系统异常日志记录到数据库然后结合自己的实际情况做了一些修改。前端实现为layui实现效果如下:具体步骤:1 数据库这边还是照搬原文的,但是有些字段没有用上,有些业务也可以结合自己的情况再增加操作人的字段,这样也能定位是谁操作,怎么导致的异常CREATE TABLE `sys_exception_log` ( `id` varchar(3

2021-12-27 16:57:13 820

原创 图片url含中文导致IOS端显示异常处理

本来这部分应该由前端处理的,但是前端太懒,只能先后端这边用 URLEncoder.encode进行一个转码。先说说原因,按IOS和安卓开发的话来讲,就是安卓会对中文进行一个转码,而IOS不会,就导致了图片在安卓端可以正常访问,而在IOS端显示异常。转码过程如下,因为符号也会被转码。所以需要再次替换:// 转码后是 %3A%2F%2F/ 转码后是 %2F String url = "https://keytop-kos-oss-test.oss-cn-hangzhou.aliyun

2021-12-08 09:30:13 1373

原创 保存内容含HTML代码导致layui渲染异常

用户反馈上来一个问题,页面数据。本来10条,会多出2条,并且页面奇怪。如下图排查后发现,是因为其中一个字段中存进了HTML代码导致layui将其渲染导致原本的样式被破坏内容数据:将这段内容删除就正常。为避免再次出现这种情况,一般需要在前端做内容校验,或者存储转码...

2021-12-07 10:43:19 662

原创 List<String>转String,自定义符号,附反转

List<String> list = Arrays.asList("a","b","c","d"); System.out.println(list); String aa=list.stream().collect(Collectors.joining("、")); String bb=String.join("、",list); System.out.println(aa); System.ou...

2021-12-02 10:51:46 795

原创 mysql DATE_FORMAT导致索引失效

最近在优化一个统计的接口,在几十万的数据统计下,接口处理的响应时间达到了20s。看了下代码逻辑,发现其中主要有三个主要的统计方法,在优化了其中一个方法的统计逻辑后。接口的响应时间下降到了3s内。还是没有达到期望的响应时间(1s内)。看了下另外两个方法的SQL语句,其中一个查询时间达到了两秒多,如下:SELECT FLOW_TO AS flowTo, COUNT( DISTINCT RELATED_ID ) AS count FROM or_flow_schedule WHERE DATE_FO

2021-11-18 10:22:40 6769

原创 Layui实现TreeTable(树形数据表格)

参考Layui实现TreeTable(树形数据表格)LayUI树形表格treetable使用详解gitee:ele-admin / treetable-lay开发背景在开源项目看到layui-treetable实现的菜单配置,页面简洁,手上刚好又有个菜单页面可以进行优化(整活)。但是尽管已经有上面三个案例,因为和现业务并不是很匹配、treetable.js版本等原因,整合的过程还是有些波折。优化结果:原页面treetable实现的页面实现下载引入treetable.js我用的版本是

2021-10-21 18:17:27 17318 1

原创 springcloud(6)-配置中心config

前言:需要了解配置Git、有Git远程仓库,比如GitHub、码云Gitee,这边用的是码云步骤:gitee建立仓库创建配置创建config-server,从gitee拉取配置创建config-client,模拟从config-server拿到gitee中的配置信息改造provider,也从gitee中拿到配置信息参考玩转Spring Cloud之配置中心(config server &config client)1、gitee建立仓库2、创建配置测试用的applica

2021-10-21 00:23:21 145

原创 springcloud(5)-实现网关gateway

zuul和gateway的区别可查阅其它资料期望通过gateway统一去访问consumer、provider的服务,例如之前的consumer访问 http://127.0.0.1:8002/dept/list通过网关 http://127.0.0.1:9527/consumer/dept/list 同样可以访问实现创建spring boot项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:/

2021-10-20 23:47:10 130

原创 websocket实现服务端实时消息推送

开发背景工单完成后需要实时向客户端推送消息提醒,即服务端向客户端发送消息实现效果:弹窗出新消息提示,并且有音乐声。消息提醒数+1消息存一份,可随时查看,例如什么是websocketWebSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。为什么传统的HTTP协议不能做到WebSocket实现的功能?这是因为HTTP协议是一个请求-响应协议,请求必须先由浏览器发给服务器,服务器才能响应这个请求,再把数

2021-10-20 10:39:17 6037 4

原创 springcloud(4)-consumer实现feign接口调用

实现创建spring boot项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apa

2021-10-20 00:25:15 191

原创 springcloud(3)-实现provider注册eureka

实现provider增加eureka依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--监控信息--><dependency> <group

2021-10-19 23:30:38 93

原创 springcloud(2)-实现eureka

前言eureka-server的创建相对简单,步骤如下创建工程导入eureka依赖application配置eureka相关配置启动类上注解开启eureka实现建立spring boot项目pom依赖,主要为eureka服务端依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netfli

2021-10-19 23:21:11 103

原创 springcloud(1)-建立初始项目框架-实现provider

前言用的springboot及springcloud版本都是当前官网最新,版本对应关系可官网查看需要的服务父工程-parent,管理依赖子项目-注册中心eureka子项目-服务提供者provider子项目-服务消费者consumer期望provider工程实现查询实现feign:consumer通过feign调用provider方法,实现查询实现gateway:consumer通过网关调用provider方法,实现查询实现1.1 、创建空文件springcloud-demo

2021-10-19 23:07:06 169

原创 inner join关联查询-索引问题

今天重新看了一遍索引的原理及如何避免索引失效的办法,详见:索引原理索引原理延展如何避免索引失效原本想着只是温故,突然想到线上有个列表加载速度一直很慢,大概5s左右。这还是优化过的,还没优化前10s左右。因为也不是非常重要的功能,就一直放着,今天看完也就想着实践一下的想法去尝试优化,最后优化到了1s内,也是…惊喜,优化过程如下:有or_mainten表和or_mainten_inner_evaluate表,后面都用M和E代替业务场景是M表需要关联E表,E表为评论表,所以可能存在M表中的一条数据对应

2021-10-18 16:26:43 4492

原创 多线程的并发问题

1、什么是并发,什么又是并行关于并发并行的概述很多,这边推荐一篇比较易懂的如何给女朋友解释什么是并发和并行2、并发问题多个线程抢占同一个资源导致的一些问题,比如抢票package com.example.service;/** * 多个线程同时操作一个对象 * 买火车票的例子 */public class Thread4 implements Runnable{ private int ticketNum = 10; @Override public voi

2021-10-09 18:27:23 479

原创 RabbitMQ过期时间TTL配置

1、概述过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。第二种方法是对消息进行单独设置,每条消息TTL可以不同。如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为dead message被投递到死信队列, 消费者将无法再收到该消息。

2021-09-22 20:39:36 211

原创 RabbitMQ死信队列

1、概述DLX,全称为Dead-Letter-Exchange , 可以称之为死信交换机,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是DLX ,绑定DLX的队列就称之为死信队列。消息变成死信,可能是由于以下的原因:消息被拒绝消息过期队列达到最大长度DLX也是一个正常的交换机,和一般的交换机没有区别,它能在任何的队列上被指定,实际上就是设置某一个队列的属性。当这个队列中存在死信时,Rabbitmq就会自动地将这

2021-09-22 20:36:14 111

原创 RabbitMQ可靠生产和推送确认

1、实施可靠生产和推送确认的必要假设有订单系统A和派单系统B,A和B系统都有自己的单独模块、数据库。小明在A下单后,A逻辑处理完后,保存相关数据到数据库,并发送消息给B系统通知其派单,B系统也保存相关数据到数据库。一般都会在A和B中设置事务,但是因为某种原因,B系统延迟,A系统迟迟得不到B系统处理完成的反馈就当失败处理进行事务回滚,所以此时A系统并没有存储相关订单信息到数据库。而B系统尽管延迟但最后还是执行成功了,此处B系统存储成功了。就造成了两边数据的不一致。利用rabbitmq的一些功能可以避免

2021-09-22 20:30:08 234

原创 RabbitMQ通配符模式topic

1、目标通过通配符的方式进行消费的传递与消费2、实现步骤创建生产者工程:rabbitmq-direct-producer创建消费者工程:rabbitmq-direct-consumer引入spring-boot-rabbitmq的依赖进行消息的分发和测试查看和观察web控制台的状况3、具体实现创建生产者工程依赖 <dependency> <groupId>org.springframework.boot</gro

2021-09-21 13:56:07 223

原创 RabbitMQ路由模式direct

1、目标根据不同的路由key,将消息分发到不同的消息队列queue中,并被消费者消费2、实现步骤创建生产者工程:rabbitmq-direct-producer创建消费者工程:rabbitmq-direct-consumer引入spring-boot-rabbitmq的依赖进行消息的分发和测试5:查看和观察web控制台的状况3、创建生产者工程依赖 <dependency> <groupId>org.springframew

2021-09-21 11:52:26 136

原创 RabbitMQ发布订阅模式fanout

1、目标使用springboot完成rabbitmq的消费模式-Fanout2、实现步骤创建生产者工程:rabbitmq-fanout-producer创建消费者工程:rabbitmq-fanout-consumer引入rabbitmq的依赖进行消息的分发和测试查看和观察web控制台的状况3、具体实现创建生产者工程依赖 <dependency> <groupId>org.springframework.boot&lt

2021-09-21 11:40:33 228

原创 Dubbo+zookeeper+springboot实现服务注册发现

1、zookeeper 安装与启动下载官网 https://zookeeper.apache.org/启动zookeeper启动前zookeeper可能还需要做些调整,可以按顺寻先执行zkServer.cmd zkEnv.cmd。如果报错做以下调整复制zoo_sample.cfg 粘贴 命名为zoo.cfg报Error: JAVA_HOME is not set错误,在zkEnv.cmd新增JAVA_HOME的地址set JAVA=E:\Java\jdk1.8.0_301\bin\ja

2021-09-20 21:45:46 150

原创 定时任务实现

1、通过注解开启定时任务2、方法上注解@Scheduled定时,通过cron表达式 //或直接指定时间间隔,例如:5秒 @Scheduled(cron = "0/5 * * * * ?") private void configureTasks() { System.err.println("执行静态定时任务时间: " + LocalDateTime.now()); }3、corn表达式七个*分别代表 秒 分 时 日 月 周常用Cron表达式

2021-09-20 12:32:29 70

原创 邮件任务实现

1、添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>2、开启邮箱(这边使用的是126,QQ等其它同理)3、application.properties配置# 你的邮箱/或者一般企业中有一个公共使用的邮箱spri

2021-09-20 12:26:38 123

原创 如何动态加载下拉搜索,合理利用字典库

在优化老项目的时候发现前端的下拉搜索值都是写死的,虽然有字典库,但是没有和字典库进行一个联动。写死的例子:1、页面展示2、前端代码<label class="layui-form-label layui-text">验证状态</label> <div class="layui-input-inline"> <select name="validateStatus" id

2021-08-10 14:40:53 268

原创 IDEA因网络原因无法创建SpringBoot项目的解决办法

前景:IDEA中因为网络原因,会创建项目失败。这个时候可以通过官网进行创建项目如图可知,IDEA也是从官网来创建的。官网创建方法:找到SpringBoot页面底部quickstart填写参数和依赖,最后生成下载压缩包将压缩包解压到自己的项目目录下最后有两种导入方式方式一:已经打开了一个项目,直接通过OPEN导入demo项目方法二:初始页面import导入之后结构,圈起来的部分可以删创建controller 测试启动项目,测试成功...

2021-07-07 14:10:37 871

空空如也

空空如也

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

TA关注的人

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