- 博客(47)
- 收藏
- 关注
原创 Java 汉语 中文拼音工具类
在国内开发应用程序有时候为了满足客户各种需求经常要写一些与汉语,拼音等相关的工具类,下面是博主经常在项目中使用的一个拼音工具类。如果觉得文章对您有用,不妨。下面是实用工具类需要的依赖。,更多实用文章在首页!
2023-11-06 15:20:12 349
原创 HttpUtils工具类
HTTP(Hypertest Transfer Protocol)是用于传输像HTML这样的超文本文件的应用层协议。它被设计用于WEB浏览器端和WEB服务端的交互,但也有其它用途。HTTP遵循经典的client-server模型,客户端发起请求尝试建立连接,然后等待服务端的应答。HTTP是无状态协议,这意味着服务端在两次请求间不会记录任何状态。
2023-11-06 15:02:07 1279
原创 [推荐]SpringBoot java实现文件/附件上传下载 服务器 数据库 拿来就用,简单实用
推荐一个思路非常简单又很实用的文件上传下载方式,代码十分简练,可以开箱即用,下面是使用到的一些工具类和业务代码;
2023-11-03 16:57:44 1410 1
原创 优雅的参数校验@Validated 实战 + 统一异常处理返回前端json 最全解析
如果在写项目的过程中,参数需要的条件注解满足不上,则我们需要自定义注解来完成@PhoneNumber(message = "phoneNumber 格式不正确")@NotNull(message = "phoneNumber 不能为空")
2023-11-02 11:59:50 1554
原创 使用stream流根据对象属性对复杂list对象去重
日常开发中,我们可能会遇到这样一种情况,需要对数据库查询出来的数据进行一个二次处理,从而达到我们需要的数据结构。stream流正是java8提供的对复杂list操作方便工具。
2023-10-20 10:04:17 2017
原创 终极办法!connect to host port 22: Connection timed out git@ssh.github.com: Permission denied (publickey
git
2023-02-27 18:44:56 2545 1
原创 项目启动报错Command line is too long. Shorten command line for ServiceStarter or also for Application
Command line is too long. Shorten command line for ServiceStarter or also for Application报错
2022-08-17 21:00:31 15331
原创 springboot集成redis redis配置手把手交你不踩坑
前面我们已经介绍过redis的安装配置和使用以及一些redis的基本概念,如果还有小伙伴不太熟悉的话可以翻翻我之前的博客1.初识redis从这篇博客开始看,看完这几篇以后相信你对Redis的概念会有一定的提升,我们了解完了redis的概念和基本使用,接下来我们来讨论一下怎么使用springboot集成redis。一,集成redis的方式首先我们要在自己的本机电脑或者服务器上安装一个redis的服务器,通过我们的idea在程序中进行集成,然后通过idea完成对redis的增删改查操作。在springB
2022-05-27 15:02:21 4435
原创 elasticsearch报错elasticsearch.action.ActionRequestValidationException
rg.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: type is missing;2: type is missing;3: type is missing;4: type is missing;5: type is missing;6: type is missing;7: type is missing;8: type is missing;9: type is missing;10: type
2022-05-25 17:56:01 1272
原创 Docker设置仓库镜像源失败报错File “/usr/bin/yum-config-manager“, line 135 except yum.Errors.RepoError, e:
这是因为把虚拟机python2升级为了python3,根据他的提示我们去更改/usr/bin/yum-config-manager这个文件里的python2为python3就好。vim /usr/bin/yum-config-manager再重新设置一次就好了
2022-05-18 10:15:21 2546 1
原创 浅谈负载均衡,力求简洁通俗
负载均衡是什么负载均衡技术,是现代计算机领域的基础技术之一,其基本原理是通过运行在前面的负载均衡服务器,根据执行的负载均衡算法,将流量分配到后端服务器上,从而提高整个系统的扩展能力,实现服务的并行扩展,同时,负载均衡技术还可以起到对外网屏蔽内网服务器,从而提高系统的可用性。在古早时期,我们的服务都部署在单台服务器上,但是随着近些年网络业务和数据越来越庞大,,把所有网络服务都部署在单台机器上似乎让我们的服务器运行有些力不从心了,这时候我们见单台服务器改为了集群对外提供服务。然而,我们对外提供的访问入口
2022-05-13 19:26:21 232
原创 ip代理原理解析
最近一众国内大行信息交流平台纷纷出台了显示用户ip属地的功能,但是不少人好奇,ip属地是什么意思?怎么看到有人显示一会在上海,一会在海外呢?怎么还有人可以设置为未知呢?*音方面表示,目前需要更新版本才能显示,并且相关展示目前暂不支持手动开启或关闭。个人主页属地的展示是根据用户最近一次发文或发评时对应的属地来判定所属地区。若从未在平台上发文或发评,则不会在个人主页上展示。属地在境内展示到省(区、市),境外展示到国家(地区),不会展示用户精确地理位置。对于一些用户反映的ip未知,通常是因为网络原因导致的信息获
2022-04-30 12:59:21 2487
原创 mysql8远程连接报错1251异常详细(保姆级教程)
环境centos7 + mysql8 本地navicat破解版这种情况下考虑还是因为mysql的版本问题,在mysql5的时候mysql使用的是mysql_native_password加密协议,在mysql8之后就改为了caching_sha2_password。所以我们现在去连接mysql会报错加密协议不对,第一步要解决问题也不难,首先我们查看一下用户的加密协议select host,user,plugin,authentication_string from mysql.user;这里我
2022-04-25 20:07:46 2426
原创 Jmeter压测工具的简单使用(多图预警)
1.添加线程组2.修改线程属性3.添加线程请求默认值4.修改http默认值5.给线程组添加http请求6.设置http请求7.添加结果树,所有请求以树形结构展示7.添加聚合报告8.以表格查看结果还需要其他的可以自行添加,这里只给出基本使用到的。然后就可以查看结果了...
2022-04-22 16:50:34 107
原创 Mybatis写SQL语句update返回值为null
这很奇怪哈,明明写的是update语句怎么会返回null呢,就算没有更新成功也会返回0嘛,经过百度发现,这种情况的话一般从两个方面来考虑1.SQL语句写错了,(很粗心!!!)博主就是这个情况简直想给自己来一巴掌了,排查了各种原因竟然没发现是自己sql语句写错了2.某个事务没有提交,导致一直无法更新产生这种情况主要是在开启了某个事务的时候,服务重启了,事务没有提交到,这样也会返回一个null值...
2022-04-22 16:10:13 2498 5
原创 RabbitMQ死信队列和TTL
TTL是什么?TTL(time to live)消息的存活时间,在学习Redis的时候我们也学过相关概念,在RabbitMQ中指的是我们给消息模型中的某个队列或者某个消息设置的过期时间。在RabbitMQ中支持两种设置TTL的方式1.给队列进行ttl设置可以使用x-message-ttl参数设置当前队列中所有消息的过期时间,即当前队列中所有的消息过期时间都一样;2.单独给某条消息设置ttl(生产环境中居多)可以使用Expiration参数来设置单个消息的过期时间。当时间一到就会被移出队列。如果
2022-04-11 19:30:17 2521
原创 RabbitMQ如何保证消息不丢失
首先我们来讨论一下MQ数据丢失的场景1.生产者丢失消息第一种情况就是生产者丢失消息,生产者生产了消息在传递的过程中把消息弄丢了2.MQ队列丢失了消息rabbitmq重启后,之前的数据丢失了。所以必须开启持久化将消息持久化到磁盘,这样就算rabbitmq挂了,恢复之后会自动读取之前存储的数据,一般数据不会丢失。除非极其罕见的情况,rabbitmq还没来得及持久化自己就挂了,这样可能导致一部分数据丢失。3.消费者丢失消息消费者消费时,刚拿到消息,还没有处理,结果消费者就挂了,消费者重启之后,rabb
2022-04-11 11:12:03 7166
原创 rabbitMQ第五种模型 --topic动态路由
动态路由就是我们可以通过一定匹配规则来绑定交换机与通道*表示一个单词#表示一个或者多个单词生产者package com.zuoan.topics;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.zuoan.utils.RabbitMQUtils;import java.io.IOException;/** * @Description: TODO * @Aut.
2022-04-10 17:01:05 1108
原创 rabbitMq第四种模型--direct
在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。在Direct模型下:队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routingkey与消息的 R
2022-04-10 15:51:19 549
原创 RabbitMq第三种模型--fanout
fanout也称为扇出模型,消息以广播的方式传播生产者package com.zuoan.fanout;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.zuoan.utils.RabbitMQUtils;import java.io.IOException;/** * @Description: TODO * @Author: 黄石军 * @CreateTime
2022-04-10 14:42:43 137
原创 RabbitMQ第二种模型--workqueue
Work queues,也被称为(Task queues),任务模型。奉行的是平均主义让多个消费者绑定到一个队列,共同消费队列中的消息。队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。两个消费者平分队列中的消息生产者package com.zuoan.wrokqueue;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.zuoan.utils.RabbitM.
2022-04-09 18:27:21 591
原创 RabbitMQ第一种消息模型--直连模型
RabbitMQ简单模式–直连,相当于点对点连接一样在上图的模型中,有以下概念:P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来。queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息。应用场景我们可以应用于用户的登录,登录以后向消息队列中发送一条登录消息,后台读取到消息可以对用户登录积分加一代码如下:连接消息队列的工具类package com.zuoan.utils;import com.rabbit
2022-04-09 17:50:06 748
原创 MQ消息中间件是什么?有什么用?怎么用?笔记
什么是消息中间件?在了解什么是消息中间件之前我们要先理解什么是同步,什么是异步同步与异步**同步(Synchronous)😗*调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。**异步(Asynchronous) 😗*调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。我们拿传统系统架构来几个例子用户发起请求给系统A,系统A接到请求直接调用系统B,系统B返回结果后,系
2022-04-09 14:22:43 1081
原创 CentOS7安装RabbitMQ简单实用教程
首先安装RabbitMQ需要JDK环境,如果虚拟机没有JDK1.8小伙伴们自行去搜一篇教程,很快的,然后我们就进入今天的正题,因为RabbitMQ是基于Erlang语言编写的这么一个消息中间件,我们需要先安装Erlang1安装Erlang1.1安装前线完成条件curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash1.2第二步安装Erlangyum install
2022-04-08 18:40:11 4162 13
原创 xshell连不上 centos ping不通 name or service not known
前段时间装了centos7 那时候用了会,后来有事就放在那里没管了今天打开xshell来连接虚拟机的时候一直连不上,不管是重启虚拟机还是xshell都不管用,后来发现是虚拟机不能ping通百度于是找到了以前的快照版本,恢复了也是连接不上,后来干脆把centos7的网络重置了,还是没用,衰!实在没办法了,我想着改一下他的网络配置试一下,没想到真成功了!!!1.在虚拟机设置里选择NAT模式关于NAT模式和桥接模式的区别可以参考下面这张图 (是不是看一眼就懂了)2.点击虚拟机"导航栏"->选
2022-04-04 17:35:06 1412
原创 无法打开内核设备“\\.\VMCIDev\VMX”: 操作成功完成。是否在安装 VMware Workstation 后重新引导? 模块“DevicePowerOn”启动失败。
最近安装CentOS7时打开虚拟机遇到了这样的情况解决办法:1.找到你的虚拟机安装目录,用记事本打开.vmx文件然后查找到vmci0.present,将里面的值设置成vmci0.present = “TRUE”然后重启虚拟机就解决问题了欢迎点赞加关注!!!欢迎点赞加关注!!!欢迎点赞加关注!!!...
2022-04-02 22:08:41 3430 3
原创 springBoot热部署+HTML页面热部署
最近在写一个web商城项目的时候每次启动了项目,对项目做的任何一点修改都要重启项目,重启项目的时间成本实在是太大了,于是对项目进行了热部署,用起来实在是不要太爽!!概述所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。对于Java应用程序来说,热部署就是在运行时更新Java类文件。实现步骤1.首先要导入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> &l
2022-03-23 12:03:54 1632 1
原创 Failed to convert value of type ‘java.lang.String‘ to required type解决办法
在用springboot做项目的时候遇到了这样的问题,前端ajax向后端传数据,调用业务层更改数据库数据的时候报了这样的错我们可以看到这个错误是日期格式转换异常,因为我们从前端接收到的如期数据格式解析出来后就不对了,因为是json格式的数据传输,传到后端以后解析出来是String类型的,所以插入就会报格式错误,解决办法也很简单粗暴,直接在实体类上对应的字段上添加@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)注解就可以解决问题...
2022-03-20 01:45:00 10648
原创 ajax后端接收乱码
1后端接收参数乱码最近在做一个项目,用springboot接收ajax中文数据的时候,点击搜索框后数据一直不显示,重新把流程梳理了一遍还是找不到问题在哪,于是点开了debug模式,一步一步走发现从前端传过来的参数是乱码,一开始怀疑我数据传错了,但是仔细检查了一遍发现没有错误,就意识到可能是编码的问题,所以我就加了各种utf-8编码,但是最终都是无效。当然如果你们用了这些方法有用的话也可能是我的问题。又去问了实验室的同学一起解决还是搞不定,再后来通过各种百度终于找到了解决办法,在后端接口里对字
2022-03-19 21:18:50 608
原创 Redis主从复制&哨兵模式
主从复制&哨兵模式1.1 概念主机(Master/Leader)数据更新后根据配置和策略,自动复制到备机(Slave/Follower)。数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)。默认情况下,每台Redis服务器都是主节点,一个主节点可以有0个或者多个从节点,但每个从节点只能有一个主节点(一主多从)。1.2 作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余的方式。故障恢复:当主节点故障时,从节点可以暂时替代主节点提供服务,是一种服
2022-03-14 15:08:45 1420
原创 Redis应用问题解决
应用问题解决1.1 缓存穿透(访问不到)概念在默认情况下,用户请求数据时,会先在缓存(Redis)中查找,若没找到即缓存未命中,再在数据库中进行查找,数量少可能问题不大,可是一旦大量的请求数据(例如秒杀场景)缓存都没有命中的话,就会全部转移到数据库上,造成数据库极大的压力,就有可能导致数据库崩溃。网络安全中也有人恶意使用这种手段进行攻击被称为洪水攻击。解决方案1.对空值缓存如果一个查询返回结果为空,我们仍然把这个空值进行缓存,设置空结果过期时间很短,一般不超过五分钟2.设置可访问白名单使用
2022-03-14 15:08:08 259
原创 Redis事务与锁的机制
Redis事务与锁的机制1.1 事务的概念Redis的单条命令是保证原子性的,但是redis事务不能保证原子性事务是一个单独的操作,事务中所有命令都会被序列化,按顺序的执行,事务在执行时,不会被其他客户端发过来的请求命令打断。redis事务主要作用是串联多个命令,防止别的命令来插队1.2 Redis事务操作过程开启事务(multi)命令入队执行事务(exec)组队时可以使用discard可以结束组队组队时当有一条命令出现错误时,组队提前结束,所有命令都不执行当执行时有一条命令出
2022-03-14 15:06:36 957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人