- 博客(99)
- 收藏
- 关注
原创 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
原创 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
原创 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关注的人
RSS订阅