自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis 中 redisTemplate 的所有操作与函数

RedisCache 文件。1.1 Key 相关操作。

2025-12-20 17:16:19 199

原创 Java异常处理完全指南:轻松搞定运行时与编译时异常!

📌 一、异常到底是什么?想象一下:你正在运行一个Java程序,突然程序"崩溃"了——这通常就是异常在作祟!就是程序运行时的"意外事件",它打断了正常的指令流。Java提供了一套完善的异常处理机制,让我们能够优雅地处理这些意外。🏗️ 二、Java异常家族树🔍 关键区别速记:Error:天灾人祸,程序救不了 ❌Exception:小病小痛,程序能自救 ✅特点:编译器不检查,出了事才处理别名:非受检异常(Unchecked Exception)心态:“代码有风险,运行需谨慎”

2025-12-20 10:54:26 379

原创 MyBatis Plus 中常用的插件列表

用于自动填充字段(如 create_time, update_time)核心插件(InnerInterceptor 实现类)(14)性能分析插件(已废弃,推荐使用 p6spy)(10)SQL 注入器(不是插件,但功能类似)(3)防止全表更新与删除插件。(9)关联查询插件(已废弃)(4)SQL 性能规范插件。(12)ID 类型处理器。(8)字段加解密插件。(13)元对象处理器。

2025-12-16 11:44:09 362

原创 MyBatis-Plus 的 条件构造器详解(超详细版)

以上就是博主整理了一天的**【条件构造器**】知识点讲解,对于每一个**【属性方法】**,博主都有写出相对应的代码给大家参考理解,如果在开发时忘记了某个条件的使用,可以看看这篇博客。MyBatis-Plus 的条件构造器是其核心功能之一,用于构建复杂的 SQL 查询条件。是提高开发效率的重要特性,熟练掌握可以大幅减少 SQL 编写工作量。** last() - 最后拼接SQL**** like() - 全模糊匹配**用于构建查询条件,支持所有SQL操作。** Lambda表达式条件**

2025-12-10 10:06:33 973

原创 springBoot 2.x.x MetaObjectHandler自动填充不生效

这个文件在全局拦截中做处理 通过前端的请求头里面去解析token信息 然后去redis 的key的匹配前端的token 在通过redis去解析 拿到 当前登录用户信息。MetaObjectHandler自动填充不生效 踩空日记。企鹅群 398913416。

2025-11-27 12:29:19 262

原创 Spring Boot2.x.x全局拦截器

Spring Boot2.x.x全局token拦截器。Result 自定义封装请看另外的文章。RedisUtils.java 封装。

2025-11-25 14:28:58 266 1

原创 Spring Boot2.x.x 全局错误处理

Spring Boot2.x.x 全局错误+自定义Result 结果处理。自定义Result.java 处理。

2025-11-25 14:18:43 257

原创 React 创建 Context

解决了 “prop drilling”(属性钻取)问题,即:避免将 props 通过多层组件传递。在任意组件中包裹(通常是最顶级的组件,比如Layout 组件)

2025-11-20 11:39:02 184

原创 使用IDEA 创建 SpringBoot2.x.x项目

将服务器URL 替换为以下(我已经替换过了,所以不需要替换)就可以创建SpringBoot2.x.x项目了。打开IDEA 新建模块或者新建项目。当替换完成点击下一步的。

2025-11-20 09:59:10 162

原创 前端实现token无感刷新

axiosCancel.ts 文件。

2025-09-04 10:21:39 135

原创 Harmonyos组件导航 (Navigation)icon资源路径的图片无法显示

【代码】Harmonyos组件导航 (Navigation)icon资源路径的图片无法显示。

2024-09-07 00:15:00 570

原创 monaco-editor 使用

/ 行号 取值: "on" | "off" | "relative" | "interval" | function。// Object.freeze是浅冻结只冻结一层,如果存在嵌套对象则深层对象仍然可以改变,深冻结函数递归实现。// 这是集合了上面引入的,字体,提示等等,这两个可以打开源码看下对比。// 辅助功能支持"auto" | "off" | "on"// 这里就是编辑器上面现实的代码,方便测试。// 这种引入方式,没代码提示,字体等等,// 开启代码检验,如果遇到。// 是否一直显示折叠。

2024-05-19 14:02:05 1201

原创 canvas绘制星空

【代码】canvas绘制星空。

2024-02-21 10:16:58 494

原创 使用canvas画布实现矩形的绘制(保留上一个绘制的矩形)

/ 每次绘制会清空画布。

2023-06-17 10:54:34 1299

原创 js 回文数

js

2023-01-09 16:41:51 354

原创 js将长时间切分为一个月时间

js

2022-09-29 15:17:48 594

原创 强制缓存与协商缓存实现

缓存

2022-08-03 11:14:12 348

原创 柯里化函数实现add(1, 1, 1, 1, 1)(2)(3)

柯里化函数

2022-07-06 20:15:42 174

原创 js中a==1&&a==2&&a==3

js

2022-06-29 11:26:58 1039

原创 js从字符串找到一个合法的ip

js

2022-06-23 10:17:56 433

原创 js实现深拷贝(考虑循环引用)

第一种let obj = { name:"111", age:20, info:{ hobby:['aa','bb',{ a:1 }], career:{ teacher :111 }, style:{ color:'red', } } } function deepClone(origin,target){ let tag = targe

2022-05-13 15:04:08 773

原创 js拦截数组方法

let ARR_METHODS = [ 'push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse', ] let arr = [] let arr_methods = Object.create(Array.prototype) ARR_METHODS.forEach(methods=>{ arr_methods[methods] = function (

2022-04-02 15:42:22 720

原创 js数组与树结构转换

js数组与树结构转换 let arr = [ {name:"00",age:4,parent:0,id:1}, {name:"10",age:4,parent:0,id:2}, {name:"1",age:4,parent:1,id:3}, {name:"2",age:4,parent:2,id:4}, {name:"3",age:4,parent:3,id:5}, {name:"4",age:4,parent:2,id:6}, {name:"5"

2022-03-31 09:56:15 437

原创 js中数组对象与普通对象相互转换

js中数组对象与普通对象相互转换// 模拟数据let result = { shanghai:200, shandong:100, beijing:10, hunan:40, jiangxi:60, } let arrTrans = (data,valueName,keyName)=>{ let res = Object.keys(data).map(ele=>{ return {[valueName]:ele,[keyNa

2022-03-23 14:46:38 750

原创 异步迭代器for-await-for的使用

异步迭代器for-await-for的使用 const Time = (time)=> { return new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve(time) },time) }) } async function text(){ let arr = [Time(2000),Time(1000),Time(3000)] // arr.ma

2022-02-25 17:35:20 796

原创 JS获取video,img的真实宽高

JS获取video,img的真实宽高video<video src="./1.mp4" id="video"></video> // htmlconst video = document.getElementById('video') video.addEventListener('canplay', function (e) { console.log(e.target.videoWidth); console.log(e.target.videoHeigh

2022-02-18 15:11:16 5367

原创 js判断两个数组是否相等

js判断两个数组是否相等 let a = [ {name:"1",age:10,color:"#fff",style:{'font-size':'1222px', 'display':'none',children:{name:"1-1"}}}, {name:"2",age:20,color:"#000",style:{fontSize:'24px', 'display':'block',children:{name:"2-1"}}} ] let b = [ {name:"

2022-01-10 16:42:28 458

原创 js中三目运算符优化

js中三目运算符优化let typeofa = 2let result = typeofa === 1 ? '值1' : typeofa=== 2 ? '值2' :'值3'console.log(result) // 值2//优化let map = { 1:"值1",2:"值2",3:"值3"}[typeofa]console.log(map) // 值2

2022-01-10 16:31:54 685

原创 js在数组中去掉重复的的某一个字段的值

js在数组中去掉重复的的某一个字段 getSetAlarmHostId3(arr1) { const res = new Map() // 连续写法 两个去重 return arr1.filter((item) => !res.has((item.名字一 | item.名字二)) && res.set((item.名字一| item.名字二), 1)) },...

2022-01-04 15:37:20 384

原创 vue+elementUI使用v-for循环出多个el-select下拉框,多个下拉框不受影响且反显

vue+elementUI使用v-for拿到循环出多个el-select下拉框,且多个下拉框不受影响<template> <div> <div v-for="(item, index) in from" :key="item.label"> <span>{{ item.label }}</span> <!-- arr[index] 每一个值的绑定@change="(val) => chageValu

2021-12-11 21:06:06 10724 5

原创 Date对象获取当前时间毫秒值(三种方式)

Date对象获取当前时间毫秒值(三种方式)// 方式一Date.now(); // 打印出当前时间的毫秒值// 方式二new Date() - 0; // 打印出当前时间的毫秒值// 方式三new Date().getTime() // 打印出当前时间的毫秒值

2021-12-01 09:37:37 8021

原创 vue+echarts实现省市区地图下钻

vue+echarts实现省市区地图下钻<div> <div id="china-pic" style="width:100vw,height:100vh"> </div></div>import * as echarts from "echarts";import "echarts/map/js/china";import $ from "jquery";import { provinces, cityMap, specia

2021-11-16 14:51:35 1457

原创 js中if优化

js中将多个if判断优化举例说明(判断是不是有空的值)// 判断下面的对象是不是有值为空 (通常下得写三个if判断)let params = { value: "11111", age: "1111", sex: ""}// 将要判断的条放到数组里面let arrValue = [params.value, params.age, params.sex] // [true, true, false]if (!arr1.includes(false)) { // 如果数组里面

2021-11-13 15:35:45 941

原创 Object.defineProperty()使用方法

先说说它的语法Object.defineProperty(obj, prop, descriptor)obj:必需。目标对象prop:必需。需定义或修改的属性的名字descriptor:必需。目标属性所拥有的特性>先看一个小例子 // 我这样写 let params = { name:'张三', sex:"男", age:20 }//跟这样写的区别let params = { name:'张三', sex:"男", } Object.defin

2021-11-09 10:01:19 235

原创 实现video截图并且在canvas上绘制矩形

实现video播放器截图并且在canvas上绘制矩形只展示核心代码 安装 video-playe 全局引入 有可能代码复制不完全,逻辑不变<div id="videoItem"> <video-player class="video-player vjs-custom-skin tine-font-size" ref="videoPlayer" :playsinline="true" :options="playerOptions"

2021-10-29 10:38:34 994

原创 vue拼接构造树型结构数据

vue拼接构造树型结构数据比如后端返给你的不是树形结构让你去拼接为一个树形结构/** * 构造树型结构数据 * @param {*} data 数据源 * @param {*} id id字段 默认 'id' * @param {*} parentId 父节点字段 默认 'parentId' * @param {*} children 孩子节点字段 默认 'children' * @param {*} rootId 根Id 默认 0 */export function handleT

2021-10-22 09:51:58 796

原创 el-cascader数据递归反显

<el-cascader v-model="arrArrList" :options="optionsArr" :props="propsOptions" collapse-tags ref="demoCascader" placeholder="11111" clearable></el-cascader>jsdata(){ propsOptions:{ // 权限 children: "children..

2021-10-20 11:10:43 947

原创 vue中样式跟随浏览器大小布局

在vue.config.js中引入npm i postcss-px-to-viewport -D css: { loaderOptions: { postcss: { plugins: [ require('postcss-px-to-viewport')({ unitToConvert: 'px', //将要转化的单位 viewportWidth:

2021-10-08 09:15:02 512

原创 vue递归element中的NavMenu

vue递归element中的NavMenu父组件<template> <div> <el-menu :default-active="activeIndex2" class="el-menu-demo" mode="horizontal" @select="handleSelect" background-color="#545c64" text-color="#fff" act

2021-07-29 11:35:49 344 1

原创 js如何将得到的秒转为分

js如何将得到的秒转为分t = 240Math.floor(t/60) + ':'+(t%60/100).toFixed(2).slice(-2)

2021-07-28 15:05:20 1114

空空如也

空空如也

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

TA关注的人

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