摘要: 为什么要用starter 在日常的开发中,许多功能都是重复的,比如上传,权限认证,redis的一些操作等。如果采用模块的方式在每一个项目中都加载这些模块,会导致项目比较大,且结构不清晰。 如果采用了starter就可以简便很多,在开发中,只需要从仓库依赖需要的jar即可。 背景 前两天,国内的码云抽 阅读全文
posted @ 2022-03-28 16:37 暮雪超霸 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 分布式锁 分布式锁常规情况下都是使用redis来实现。很早以前,使用SETNX加过期命令进行设置,无法保证原子性。但随着时代的发展,redis已经支持一条指令(set指令)实现setnx加过期时间。 什么是线程不安全? 线程不安全指的是多个线程操作一个资源,期望值和获取到的数据不一致。 可能存在的问 阅读全文
posted @ 2022-03-22 14:47 暮雪超霸 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 自定义注解实现接口限流 场景:限制验证码在单位时间内的访问次数 实现流程:自定义一个注解,注解内包含访问的次数与单位时间。通过AOP进行切面拦截,获取注解内的次数和时间,获取请求的uri与访问者ip。组成redis的key。 使用redis将key进行原子性自增1.如果返回的是1.则设置过期时间,之 阅读全文
posted @ 2022-03-14 14:39 暮雪超霸 阅读(117) 评论(0) 推荐(0) 编辑
摘要: Synchronized保证三大特性 原子性 对num增加同步代码块后,保证同一时间只有一个线程操作num。就保证了不会出现问题。 可见性 synchronied对应lock原子操作会刷新工作内存中共享变量的值 有序性 加入synchronied依然会发生指令重排,只不过我们有同步代码块,可以保证只 阅读全文
posted @ 2022-03-07 18:31 暮雪超霸 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 进程 进程是操作系统进行资源资源分配的单位,进程中包含若干线程 线程 线程是CPU进行调度和执行的基本单位 方法区 堆 虚拟机栈 本地方法栈 程序计数器 每个线程拥有自己的栈和PC 多个线程共享方法去和堆 并行和并发 并行 单位时间内,任务同时执行 并发 在一定时间内,任务都执行了 并行是一起执行。 阅读全文
posted @ 2022-03-06 00:09 暮雪超霸 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 项目利用使用到了redis,比如会出现穿透、击穿、雪崩等问题。 穿透 缓存种不存在,数据库种也不存在,导致每一次的请求都会到数据库层面。 解决方案:缓存空对象,或者使用布隆过滤器 击穿 某个key在有大量的请求,但是大量请求到的时候,过期了,然后导致大量请求都到数据库层面 解决方案:数据不过期或者使 阅读全文
posted @ 2022-02-23 15:24 暮雪超霸 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 敬畏之心才能进步 阅读全文
posted @ 2022-02-16 14:32 暮雪超霸 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 集成es搜索引擎,实现高亮搜索,在测试中,发现如果用户输入的是html标签,会把html标签搜索出来且显示,导致格式错乱。解决方案:es中,不存入html标签内容。存入前,将html标签进行去除。 集成quartz定时框架,定时刷新帖子分数,开发的时候设置的定时间隔较短。正式部署到服务器上,发现定时 阅读全文
posted @ 2022-02-15 13:03 暮雪超霸 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 前序 在开发社区项目的前端时,根据当前的流行,选择了前后端分离,另外一方面也可以实现后端与前端的解耦。使修改前端代码的时候,无需再打包后台程序。 另外用用vue,提升一下技能。后端程序也得会前端啊。 一些总结 在开发中,总有一些方法在多个组件或者view中使用,每次都需要手动引入对应的方法,导致很繁 阅读全文
posted @ 2022-02-15 12:17 暮雪超霸 阅读(133) 评论(0) 推荐(0) 编辑
摘要: ArrayList的概念 ArrayList是一个支持快速访问、序列化、克隆的容器,底层数据结构由数组实现,动态扩容实质为数组的扩容。 ArrayList实现RandomAccess, Cloneable, java.io.Serializable接口,用于标记是否支持快速访问、序列化、克隆。 Ar 阅读全文
posted @ 2021-10-28 11:35 暮雪超霸 阅读(97) 评论(0) 推荐(0) 编辑
摘要: vue 集成tinymce富文本编辑器 安装 使用npm安装或者官网下载 npm install tinymce -S 将node下的tinycme全部复制到static目录下或public目录下。然后在页面引入对应的js与css 语言包需要官网下载 <template> <div id="tiny 阅读全文
posted @ 2021-07-04 22:16 暮雪超霸 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 类加载器子系统 作用 负责从文件系统或网络系统中加载class文件,class文件在开头有特殊的标记(魔术开头CA FE BA BE) ClassLoader只负责加载class文件,至于能否运行,由执行引擎决定 加载的类的信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常 阅读全文
posted @ 2021-03-02 20:41 暮雪超霸 阅读(199) 评论(0) 推荐(1) 编辑
摘要: 自定义注解实现Execl导入导出 悲伤,我是Java开发程序员,竟然被说是做运维的了。我是开发开发开发!!!! 写个笔记,记录一下以前的execl导入导出功能代码 pom坐标 此处使用常规版本3.9,未使用4.0版本,原因部分API已删除或过时 <dependency> <groupId>org.a 阅读全文
posted @ 2021-01-28 18:23 暮雪超霸 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 一主一从 my.cnf配置 主: 修改配置文件:vim /etc/my.cnf #主服务器唯一ID server-id=1 #启用二进制日志 log-bin=mysql-bin # 设置不要复制的数据库(可设置多个) binlog-ignore-db=mysql binlog-ignore-db=i 阅读全文
posted @ 2021-01-25 13:31 暮雪超霸 阅读(79) 评论(0) 推荐(0) 编辑
摘要: redis部署 redis docker部署 docker pull registry.docker-cn.com/library/redis docker-compose.yml version: '2' services: redis: image: redis:latest container 阅读全文
posted @ 2021-01-25 13:27 暮雪超霸 阅读(828) 评论(0) 推荐(0) 编辑