自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文读懂Java线程堆栈

详细介绍了什么是Java线程堆栈;如何获取Java线程堆栈信息;如何解读堆栈信息;如何借助堆栈信息分析常见问题

2023-11-29 16:12:05 524

原创 注册中心Euraka、负载均衡Ribbon、远程调用Openfeign

介绍springcloud的概念和常用组件;注册中心euraka的基本原理和代码实现;ribbon的原理和代码实现;openfeign的原理和代码实现

2023-11-22 14:24:13 932

原创 Redisson+Redis+Mysql实现对用户上传文件总容量限制(Java)

首先有一张文件记录表,记录每个上传到云端的文件对应的用户id、文件大小(单位为B);文件的总size根据表内该用户的所有文件记录的file_size字段累加得到,将这个值存入redis;每次上传文件的时候,先获取本次文件的size,再用redisson进行加锁,去redis中取到该用户所有文件总size,再设定的值进行比较,如果小于设定值则正常插入数据,大于则抛出异常。

2023-07-12 18:14:05 176

原创 单点登录原理、解决方案、基于satoken的实现

当前会话是否登录:" + StpUtil.isLogin() + "

2023-06-20 14:57:11 3269

原创 MySql数据库复制选中数据,插入到指定表中

查看导出的文件里面有需要复制的数据的sql语句,把表名改为需要粘贴的表的名字insert即可。选中数据右键选择导出数据。

2023-06-15 19:37:34 250

原创 Redisson介绍和简单使用

现在项目一般都是使用分布式集群部署,对后台业务数据的某些操作需要考虑加锁的问题,而jdk的synchronize加锁机制已经不适合做集群部署的操作,因为synchronize关键字只是针对于单体部署的单台虚拟机有用。考虑到现在系统使用redis做缓存比较高效,此处推荐使用redis下的分布式锁redisson进行加锁操作。不可重入。

2023-06-12 16:00:39 579

原创 idea输入不了中文

2、在最后一行,添加如下代码 -Drecreate.x11.input.method=true。1、点击菜单help->Edit Custom VM Options。

2023-06-07 16:38:56 211

原创 Jackson使用教程

有时,可能希望以不同于Jackson ObjectMapper缺省方式的方式将JSON字符串读入Java对象。可以将自定义反序列化器添加到ObjectMapper,可以按需要执行反序列化。return car;有时,想要将Java对象序列化为JSON的方式与使用Jackson的默认方式不同。例如,可能想要在JSON中使用与Java对象中不同的字段名称,或者希望完全省略某些字段。

2023-06-06 16:53:55 281

原创 Java认证鉴权框架:Sa-Token

(调用角色校验和权限校验方法的时候,satoken会调用上面我们实现的StpInterface接口类的对应方法,拿到此用户的权限码集合后,再将权限码和待校验的字符串进行判断是否有权限)(调用角色校验和权限校验方法的时候,satoken会调用上面我们实现的StpInterface接口类的对应方法,拿到此用户的权限码集合后,再将权限码和待校验的字符串进行判断是否有权限)?SaRouter.match("/**").check(r -> System.out.println("----啦啦啦----"))

2023-06-06 09:43:01 2108

原创 Satoken+Redis实现短信登录、注册、鉴权

Satoken+Redis实现短信登录、注册、鉴权;Redis中缓存用户权限、验证码、登录 次数等信息

2023-06-05 17:45:58 1776

原创 打开WinHttpAutoProxySvc服务

2. 找到路径Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinHttpAutoProxySvc。至于IP helper和之上的服务,是因为底层的服务未启用,所以无法启用。尝试在注册表中设置启用该服务,在修改注册表之前,注意备份好注册表。3. 在右边找到一个名为Start的设置。4. 将她的值设置为2(2为自动启动)5. 然后重新启动计算机。6. 检查该服务是否运行。1. 打开注册表编辑器。

2023-05-22 18:23:14 811

原创 Prompt的价值、技巧、框架

else if(demand.contains("清空")||demand.contains("truncate")){}else if(demand.contains("增加")||demand.contains("insert")){}else if(demand.contains("修改")||demand.contains("alter")){}else if(demand.contains("删除")||demand.contains("drop")){1、Prompt 里最好包含完整的信息。

2023-05-19 14:34:48 214

原创 在springboot项目中统一异常处理

return R.error().message("执行了ArithmeticException异常处理..");return R.error().message("执行了全局异常处理..");我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要统一异常处理。throw new MyException(20001,"出现自定义异常");@ApiModelProperty(value = "状态码")1、什么是统一异常处理。2、创建统一异常处理器。

2023-05-19 11:33:28 252

原创 常见设计模式理解

抽象工厂在和工厂模式很像,简单工厂模式和工厂模式都是只针对手机这种单一商品,现在华为和小米的工厂也要开始生产电脑了,就需要增加一个抽象电脑接口pc,然后有两种新产品huaweiPC和xiaomiPC,在抽象工厂Abstractfactory种增加返回pc的方法,同时huaweifactory和xiaomifactory也会实现这个方法生产自己的pc产品。单例模式保证了一个类只有一个实例,这个实例可以重复使用,并且提供了一个访问它的全局访问点,这样不必频繁的创建和销毁实例,节省资源。

2023-05-19 11:18:11 44

原创 Redis实现热搜排行榜

整体思路是采用redis的zset来实现,每条热搜的内容是一个member,每条热搜的热度值是一个score(zset中的元素会自动排序,只需要取集合中前多少条就行了)(在同一个小时的不同时间,计算出来的时间key相同,这个时间key是每个对应的zset集合名字)(这四个常量为每个小时、每天、每周和每个月的热搜内容和分数的zset集合的名字key)初始化一个月的数据,每小时一个集合,总共有24*30个zset集合。二、排行榜通常是以小时、天、周和日来计算的,我们以小时为单位。1.引入依赖添加配置文件。

2023-05-19 11:09:56 2107

原创 sql语句

内连接 inner join on:select * from a_table a inner join b_table b on a.a_id = b.b_id;右连接 right join on:SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id;左连接 left join on:SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id;

2023-05-19 11:01:10 77 1

原创 springboot整合mybatis操作相关

resonable :分页合理化参数默认false,当该参数设置为true 时,pageNum

2023-05-17 17:42:41 138 1

原创 RedisDesktopManager安装、连接、操作、常见问题

添加完成之后,如果没有显示,点击Reload刷新,会在列表中显示刚刚添加的key,右侧显示的是list列表值的详细信息,在这个页面右侧有3个按钮对应value值的新增、删除和重新加载。二、设置密码 为了安全一定要设,而且这里如果不绑定ip也不设密码的话,redis是默认保护模式,只能本虚拟机访问,不允许其他ip访问,本人刚开始图方便啥都不设,结果在这里踩坑了;选择某一个数据库,然后点击右键,就可以添加某一个元素,添加完之后,这个元素就可以保存到redis内存数据库中,

2023-05-17 17:16:21 27373 2

原创 RedisTemplate操作Redis

根据方法对其返回结果进行缓存,下次请求时,如果缓存存在,则直接读取缓存数据返回;如果缓存不存在,则执行方法,并把返回的结果存入缓存中。(特别注意,当注入的是StringRedisTemplete时只能操作字符串,所以对象数据都要通过json工具类转为json数据进行保存)使用该注解标志的方法,每次都会执行,并将结果存入指定的缓存中。如果指定为 true,则方法调用后将立即清空所有的缓存。缓存名,必填,它指定了你的缓存存放在哪块命名空间。缓存名,必填,它指定了你的缓存存放在哪块命名空间。

2023-05-17 17:07:41 381

原创 Maven下载、安装、管理教程,常见问题总结

(一般会用阿里云的镜像库,但不知道是我电脑还是网络的原因,下载jar包总会出错,换了很多阿里云镜像都不管用,最后换了腾讯云的就好了,所有这里给出了三个镜像)--当goal属性的值为test-jar时,是对测试代码打包-->maven由于它的约定大于配置,我们之后可能遇到我们写的配置文件,无法被导出或者生效的问题。(2)依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突等问题。(3)特殊优先:当同级配置了相同资源的不同版本时,后配置的覆盖先配置的。

2023-05-17 16:55:40 313

原创 ​​​​​​​IDEA集成GitHub,相关操作教程

实际的开发中,代码都是采用IDE进行开发,所以我们这里介绍一下IDEA软件是如何集成GitHub远程仓库进行代码版本控制的。这里采用的IDEA版本为2022.2.1,其他版本的IDEA软件会略有差别。输入GitHub账号密码。

2023-05-17 16:45:22 221

原创 ​​​​​​​GitHub Desktop下载、安装、操作教程

修改文件只是将工作区域得文件进行修改,但是对于Git软件来讲,其实本质上还是提交,因为底层会生成新得文件。点击软件得File菜单后,选择Options, 设定软件得操作用户名称及对应得邮箱地址。此时Git仓库中并没有这份文件,所以需要执行commit操作,将文件保存到Git仓库中。如果某一个文件或某一类得文件,不想被Git软件进行管理。当工作区域创建了一份新文件,工具可以自动识别并进行对应得显示。如果存在多次得提交操作得话,可以查看提交得历史记录。提交后,最新版本得文件也会被“删除”

2023-05-17 16:37:46 4848

原创 git安装教程

由于开发机大多数情况都是windows,所以本教程选择相对简单的Windows系统软件版本进行下载,此处我们下载Windows系统的2.40.0版本软件。此处仅仅是为了验证Git软件安装的效果,所以选择Git Bash Here菜单, 选择后,Windows系统弹出Git软件的命令行黑窗口,Git软件安装的步骤虽然比较多,但是整个安装过程还是比较简单的,双击exe执行文件,按照引导界面的提示安装即可。输入指令回车后,如果黑窗口中打印出咱们安装的软件版本2.40.0,Git软件安装成功了。

2023-05-17 16:28:36 330 1

原创 Java创建线程的四种方式,底层都是通过Runnable一种方式实现

看了以上四种分析,我们可以清晰的发现了java中其实创建线程的方式就只有一种就是利用Thread+Runnable来实现多线程。其他多有方式都是对这个实现方式的变种。如有不对欢迎路过的朋友指正,也希望能帮到路过的朋友。

2023-04-09 13:23:08 1704 1

原创 腾讯云服务器Linux上安装Redis,设置密码,开启远程连接,开启端口教程

1、执行下面的命令下载redis:wget https://download.redis.io/releases/redis-6.2.6.tar.gz2、解压redis:tar xzf redis-6.2.6.tar.gz3、移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录:mv redis-6.2.6 /usr/local/redis1、进入redis安装目录,执行make命令编译redis:cd /usr/local/redismake等待make命令执行完成即可

2022-06-06 20:17:57 966

空空如也

空空如也

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

TA关注的人

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