自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (1)
  • 收藏
  • 关注

原创 后端门卫 - 参数校验方式总结

在我们日常开发的工作中 一定会遇到参数接收 有些开发可能不会太关注参数校验这方面 其中一个原因是感觉不会造成什么大事故 还有就是前端比较负责 参数传递比较规范 但是作为开发还是要做好参数校验 减少问题的出现本文整理了一些常用的参数校验的方法 可能不是很全 但是也有一定的帮助手动校验注解校验验证器类和使用第三方库。每种方法都有自己的优点和适用场景。选择合适的参数校验方法取决于具体的需求和项目规模。无论采用何种方法,参数校验的目标始终是保证系统的安全性和可靠性。

2023-06-06 18:53:10 949

原创 需要熟记的知识 七大前后端参数传递类型结合代码讲解

不同的参数传输方式有其各自的优缺点,我们需要根据实际业务场景来选择最合适的方式。查询参数(Query Parameters):常用于GET请求,可以直接暴露在URL中,方便调试和传递简单参数。但是对于大量参数或者参数包含敏感信息时,不适合使用查询参数传递。请求体参数(Request Body Parameters):可以传递大量的数据和复杂的结构体数据,适合于POST、PUT、PATCH等请求。但是需要在前后端都进行序列化和反序列化,相对比较复杂。

2023-04-06 14:14:52 2186 1

原创 好玩的登录界面设计

动态的登录页面设计 美观可玩性强

2023-01-16 14:26:08 470

原创 事务理论知识整理

事务:数据库中多个操作合并在一起形成的操作序列,事务特征(ACID)当数据库操作序列中个别操作失败时,提供一种方式使数据库状态恢复到正常状态(A),保障数据库即使在异常状态下仍能保持数据一致性(C)(要么操作前状态,要么操作后状态)当出现并发访问数据库时,在多个访问间进行相互隔离,防止并发访问操作结果互相干扰(I)

2022-12-09 14:47:34 392

原创 后端进阶知识 MySQL为什么那么快 图文详解 之 flush 链表 与 LRU链表

元数据节点从 free 链表中取出写入数据到缓存页,如果缓存页被修改了,那么该元数据就被加入到 flush 链表,这些 flush 节点就是被修改过的数据页元数据,等待被刷入磁盘。基于 free 链表找到一块空闲的缓存页写入数据后,然后更新了这个缓存页,此时缓存页中的数据就与磁盘中的数据页不一致了,那么这个缓存页就是脏数据或者说脏页。所以这时预加载和全表扫描加载的缓存页会被放在冷数据区,而热数据区的缓存页只要被访问就会一直在热数据区,也就不会导致频繁访问的缓存页被淘汰了。可关注专栏 ====》

2022-11-24 14:05:35 754 1

原创 后端进阶知识 Buffer pool 图文详解 之 free链表

Buffer pool 是 InnerDB 存储引擎的一个重要组件,MySQL 的所有 CRUD 操作都是围绕 Buffer pool 进行的。现在只知道 Buffer pool 是一个缓冲池,里面存放了磁盘数据的缓存,那么 Buffer pool 是一个什么样的结构,是如何在 SQL 执行过程中起作用的呢?

2022-11-24 14:00:55 719

原创 MySQL 进阶 图文详解InnoDB储存引擎

SQL 语句的最终执行者是存储引擎。存储引擎在经解析器、优化器处理后被执行器调用其接口执行优化后的执行计划。MySQL 存储引擎包括 InnoDB、Myisam、Memory、Archive、CSV 存储引擎等,其中最常用也是MySQL 默认的存储引擎是 InnoDB。写入缓冲池(Buffer pool)InnoDB 中有一个非常重要的组件——缓冲池(Buffer pool),缓冲池中存储了 MySQL 在磁盘文件上的数据缓存。

2022-11-24 13:53:00 874

原创 MySQL 进阶 怎么去了解MySQL的架构原理

在了解 MySQL 原理之前,对我而言 MySQL 就是一个黑盒子,我写的SQL 语句通过服务发送给 MySQL 数据库,然后数据库就执行 SQL 语句,返回一些查询结果或做一些操作。然后就没然后了。。。再深入一点,就是知道某些 SQL 的写法会降低数据库执行效率,也就是需要所谓的 SQL 优化。但是为什么会降低执行效率呢???所以有必要了解一下 MySQL 的原理。连接池从业务 SQL 到 MySQL 真正执行的流程分析了整个 MySQL 数据库的架构。

2022-11-24 13:38:02 910

原创 MySQL系列文章 怎么去自定义读写分离

基于 druid 连接池自定义配置做一主多从的读写分离配置,做读写分离的前提是数据库集群已做好主从同步配置。这里直接把配置的数据源信息读取到,由 druid 创建 DataSource 数据源,托管数据库连接。每个连接的建立都保存在当前线程中,这里把 DataSource 分为 Master 和 Slave,在后面配置的 AOP 拦截可以选择不同的数据源。但也有特例,需要强制选择 Master 库,所以配置了根据 @Master 注解主动选择数据源。这里配置 druid 监控平台。配置 druid 监控。

2022-11-24 13:30:47 284 1

原创 HashMap 滚瓜烂熟 ConcurrentHashMap支支吾吾

总结一下在 Java 7 中 ConcurrnetHashMap 的初始化逻辑。必要参数校验。校验并发级别 concurrencyLevel 大小,如果大于最大值,重置为最大值。无参构造默认值是 16.寻找并发级别 concurrencyLevel 之上最近的 2 的幂次方值,作为初始化容量大小,默认是 16。记录 segmentShift 偏移量,这个值为【容量 = 2 的N次方】中的 N,在后面 Put 时计算位置时会用到。默认是 32 - sshift = 28.

2022-11-04 18:21:22 376

原创 成长计划 巩固篇」Switch 支持的数据类型结合枚举怎么使用

即使state不为3和4,因为2中匹配后没有break,则后续代码则不会进行case判断,直到遇到break为止。1、 case 里面必须跟 break,不然程序会一个个 case 执行下去,直到最后一个 break 的 case 或者 default 出现。我们经常在编码存在不同判断的情况 switch 也经常和一些基础类型和包装类型一起去使用 但是为了方便管理我们也可以使用枚举。基本数据类型和字符串很简单不用说,下面举一个使用包装类型和枚举的,其实也不难,注意只能用在 switch 块里面。

2022-11-04 18:18:25 463

原创 Mybatis-Plus 使用技巧与隐患

MP 从出现就一直有争议 感觉一直 都存在两种声音转载个人掘金地址很方便啊 通过函数自动拼接Sql 不需要去XML 再去使用标签 之前一分钟写好的Sql 现在一秒钟就能写好 简直不要太方便侵入Service层 不好维护 可读性差 代码耦合 效率不行 sql优化比较难之前也有前辈说少用MP 理由就是不好维护 但是这个东西真的是方便 只要不是强制不让用 就还是会去使用 存在集合里 最近也确实有一些体会 就从两个角度去看一下MPMP 在做一些简单的单表查询可以去使用但是对于一些复杂的SQl操作还是不要用。

2022-11-04 18:16:45 2753 5

原创 那些年被面试官问过的原理 Nacos

在我感觉面试还不错的时候 面试官总会冒出 你能说一下 XXX 的原理是什么吗? 怎么实现的你有读过源码吗? 能大概讲一下吗? 我当时的表情尤其是简历上有微服务经验的时候各种原理就出来 会慢慢整理Nacos是微服务架构中的注册中心和配置中心,其他服务的服务信息(ip,端口等信息)可以注册到nacos服务端。nacos又为客户端提供了服务发现的功能。客户端会开启一个定时任务,定时向服务端获取最新的服务列表,加载到客户端本地缓存。客户端同时又开启一个定时心跳发送的任务,用于告知服务端,当前服务的健康状态。服务端启

2022-10-12 13:13:16 4774 5

原创 另一层次去看final

按照final修饰的数据类型分类:final域写:禁止final域写与构造方法重排序,即禁止final域写重排序到构造方法之外,从而保证该对象对所有线程可见时,该对象的final域全部已经初始化过。final域读:禁止初次读对象的引用与读该对象包含的final域的重排序。额外增加约束:禁止在构造函数对一个final修饰的对象的成员域的写入与随后将这个被构造的对象的引用赋值给引用变量 重排序。

2022-09-30 10:45:00 491

原创 nodeKey is required in setCurrentKey已解决

在 Vue Tree 使用的过程中出现了 这个错误。

2022-09-21 15:04:58 4550 1

原创 2022年 你会用AOP了没?

aop 基本都是理论背的呱呱熟 但是不会写 整理一下怎么去实现AOP日志功能 简单易上手。

2022-09-21 12:12:18 150

原创 怎么使用泛型让代码 简洁 健壮 高级 万字详解

从一个简单的泛型类看起:// 此处可以随便写标识符号,T是type的简称 private T var;// var的类型由T指定,即:由外部指定 public T getVar() {// 返回值的类型由外部决定 return var;// 设置的类型也由外部决定 this . var = var;// 里面的var类型为String类型 p . setVar("it");// 设置字符串 System . out . println(p . getVar() . length());

2022-09-19 21:18:05 538

原创 vue 中 父子组件值交互怎么使用 this.$emit

子组件 传值到父组件 使用 this.$emit(‘父组件方法名’)父组件一般通过 @ this.emit("这个名称")进行获取值例如子组件是this.emit("这个名称") 进行获取值 例如 子组件是 this.emit("这个名称")进行获取值例如子组件是this.emit(‘test’). 父组件 就是@test=“方法名”父组件传参数使用 :参数名:“参数“

2022-09-19 17:24:55 1712

原创 集合源码解析: Stack and Queue精讲

集合的重要程度很高 如果不能全面了解 就没法完全发挥它的作用Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然Queue只是一个接口,当需要使用队列时也就首选ArrayDeque了(次选是LinkedList)。

2022-09-18 12:51:52 1212

原创 集合源码解析:LinkedList 精讲

LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是,Java里根本没有一个叫做Queue的类(它是个接口名字)。关于栈或队列,现在的首选是ArrayDeque,它有着比。

2022-09-18 09:26:00 1184

原创 源码解析篇:ArrayList精讲

ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添加元素时,如果容量不足,容器会自动增大底层数组的大小。前面已经提过,Java泛型只是编译器提供的语法糖,所以这里的数组是一个Object数组,以便能够容纳任何类型的对象。

2022-09-18 09:03:46 1301

原创 分布式进阶 如何对序列化实现工具进行正确选型?

网络通信涉及到数据的有效传输,这就需要引入另一个技术组件,即。而目前关于如何实现序列化和反序列化,业界也诞生了一大批工具和框架。那么,序列化是一种什么样的技术组件?我们又应该如何对种类繁多的序列化实现工具进行正确选型呢?

2022-09-18 08:49:41 1892

原创 查漏补缺 二十“勇士” 冲击SQL优化

sql 优化应该是我们日常的一种习惯 不能说每次都优化到极致 但是一些基础的优化还是要会的。不然到时候被别人嘲笑就很尴尬,争取不要上慢Sql列表 一个良好的编码习惯还是很有帮助的。

2022-09-08 11:27:08 1681 1

原创 产品说接口返回数据需要脱敏 只能安排

产品提的需求 怎么能拒绝

2022-09-07 11:14:51 818

原创 一点点进步 从 @SpringBootApplication 入手,去了解 Spring 注解驱动编程

几乎所有的 Spring Boot 应用都会在启动类上添加,可以说它是 Spring Boot 应用最核心的注解了。Spring Boot 基于,也不例外,这篇希望在理解的基础上将Spring注解的内容进行串联,以便达到融会贯通的效果。

2022-09-07 10:10:06 1639

原创 深造分布式 打败面试官 招式三 直捣黄龙

我唤醒大海唤醒山脉我唤醒沙漠处处充满色彩美丽的地方开心往前飞就算有亿万公里一吨行李我们不放弃前进需要勇气一直往前飞最重要开心就好忘记烦恼宇宙很大任飞翔满载欢乐回航闯一闯让我们闯一闯我们志气要比天还高云啊轻轻飘过来梦中轮廓一点点透露出来飞吧飞吧飞过黎明和夜晚啦啦啦啦风啊轻轻吹过来梦想翅膀流星天空中划过穿越时空回到那梦想的地方

2022-09-05 13:35:53 2243

原创 深造分布式 打败面试官 招式二 新手上路

面试官: 用过微服务吗?我: 用过用过 嘿嘿面试官: 看你写的熟悉 那就问一些问题面试官: 那你说一下 微服务的组件有哪些我:这个我会 Nacos getway … 😊面试官:构建一个微服务 那些是必须的 哪些通用的?我:🤔 注册中心,服务网关 ,远程调用,配置中心,链路跟踪 呃 差不多是这些面试官: 如果想实现一套远程过程调用机制,你会重点设计哪几个技术组件?我:呃 都是架构师设计 我拧螺丝的 不太清楚面试官。

2022-09-04 15:56:57 1762

原创 深造分布式 打败面试官 招式一 小试牛刀

无论是传统系统、还是互联网应用,分布式无疑是当下软件设计和实现的主流技术体系。围绕分布式系统(Distributed System)的基本概念以及实现方式,开发人员需要掌握一系列对应的技术组件。另一方面,我们也需要认识到分布式系统的诞生并不是一蹴而就的,而是从传统的单体系统(Monolith System)发展和演进而来。可以认为,分布式系统是对单体系统的一种改进,但这种改进同样也带来了复杂度和实现难度。

2022-09-02 19:45:03 2542

原创 免费域名 让别人能访问你的网站

我们有时候有一些自己的项目 想要 别人看到 但是又不知道怎么做 花钱买服务器就有点没必要 毕竟我们就是练手玩 这个时候就想要看到免费两个字 能够让外部访问项目的方法 同时难度不高的 统称为内网穿透。

2022-09-02 10:17:17 387

原创 一周深度学习一个知识--事务类内部调用失效 学习总结篇

超详细因为 @Transactional 的工作机制是基于 实现,AOP 是使用动态代理实现的,如果通过代理直接调用 方法,通过 AOP 会前后进行增强,增强的逻辑其实就是在 方法 的前后分别加上开启、提交事务的逻辑 但是如果调用方没增加事务控制 被调用方增加 那就会造成 调用方没有AOP增强 出现异常事务也就监控不到了例子:这种情况下事务不会生

2022-09-02 09:08:21 2261

原创 一周时间深扒事务 总结代码演示篇 拿捏事务

事务在开发中非常重要 我们要尽量减少事务出错的可能性

2022-09-02 09:07:42 2281

原创 for 循环的使用历程 不同for循环的优势

for循环 忠诚的伙伴

2022-08-19 11:05:34 1761

原创 npm does not support Node.js v12.6.0 You should probably upgrade to a newer version of node as we

npm 运行报错 npm does not support Node.js v12.6.0You should probably upgrade to a newer version of node as wecan't make any promises that npm will work with this version.You can find the latest version at https://nodejs.org/

2022-08-09 10:22:41 2279 1

原创 闭着眼都能学会的Excel导出 新手教程版java

闭眼就能用的 Excel 导出教程

2022-08-08 15:49:35 1306

原创 npm ERR! rofs EROFS: read-only file system, access ‘/‘ npm ERR! rofs Often virtualized file systems,

npm ERR! rofs EROFS: read-only file system, access '/'npm ERR! rofs Often virtualized file systems, or other file systemsnpm ERR! rofs that don't support symlinks, give this error.

2022-07-27 18:08:36 946 1

原创 zsh: command not found: nvm

zsh: command not found: nvm。 问题

2022-07-27 11:08:38 1845 1

原创 降低node/npm 到指定版本(Mac)详细教程

node /npm 降低到指定版本

2022-07-27 11:04:37 6021

原创 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

2022-07-22 16:49:19 195

原创 element-ui. Cascader Cannot read properties of null (reading ‘level‘) 出现异常

项目的前提是重复使用Cascader这个组件出现问题因为重复渲染同一个组件 重复的给一个组件的options 进行赋值。会出现第一次的效果是正确的。但是后面的就出现效果偏差。报错。增加一个key 当作表示 在进行新options赋值就进行新增操作data 里面默认值为零进行监听进行key值的修改操作完美解决...

2022-06-17 13:55:38 791

原创 五分钟小知识-----java编码中的18个好习惯有你常用的吗?

1.定义配置文件信息有时候我们为了统一管理会把一些变量放到 yml 配置文件中例如:developer: name:hugh website:https://blog.csdn.net/weixin_44994494?spm=1010.2135.3001.5421 qq:2496760580 phone-number:11111111@Value 单个@ConfigurationProperties 多个使用方法:@Data // 指定前缀 也就是你yml里面配置的东西

2022-04-09 12:01:25 1119

用于实现钉钉消息发送的sdk包

免费 无敌

2022-03-25

空空如也

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

TA关注的人

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