- 博客(35)
- 收藏
- 关注
原创 JavaScript公共方法大全
`unshift(element1, element2, ..., elementN)`: 将一个或多个元素添加到数组的开头,并返回新数组的长度。- `push(element1, element2, ..., elementN)`: 将一个或多个元素添加到数组的末尾,并返回新数组的长度。- `concat(str1, str2, ..., strN)`: 将多个字符串连接成一个新字符串。- `concat(arr1, arr2, ..., arrN)`: 连接多个数组,并返回新的数组。
2024-05-24 11:06:29
426
原创 SpringBoot 实现图片防盗链功能
前言出于安全考虑,我们需要后端返回的图片只允许在某个网站内展示,不想被爬虫拿到图片地址后被下载。或者,不想浏览器直接访问图片链接。出于性能考虑,不想要别人的网站,拿着我们的图片链接去展示,白白消耗自己的服务器资源。故而可在springboot中,使用简单的图片防盗链规则。拦截掉一些处理。
2024-05-21 15:49:12
458
原创 如何【中止】一个 Promise 呢?一个有意思的问题
最近看到一道大厂的面试题,我觉得这道题不错,能考验到大家的 Promise 基础。题目如下~看到这道题你们会怎么去回答呢?就比如有以下的一个 Promise ,我们要如何去中止他呢?
2024-05-19 20:31:22
375
原创 鲁迅的口吻表达对周末单休的情绪
然而日上三策,露珠早已无影无踪,留下的只有无边的骄阳与燥热。这世界上的人啊,总是幻想着周末的逸乐,然而到头来,只换得一个日子的憩息,这难道不是一种讥笑吗、在这一天里,他们可以摘下工作的面具,做回自己,但不久后,又义须戴上那副面具,重新上场。4、有人说单休是为了休息,但在我看来,这不过是工作的另一种延续。1、单休之于打工人,就像是沙漠中的一滴水,虽然它带来短暂的清凉却难以解渴。3、曾有人问我,单休与双休有何不同、我想,这就像是在寒风中,多穿一件破旧日的衣服与没穿,感觉其实相差无几。
2024-05-18 21:14:19
221
原创 SpringBoot 实现数据加密脱敏(注解 + 反射 + AOP)
傻瓜式编程不是说傻,而是相当于切入式编程,傻瓜式编程需要对用户信息相关的所有接口进行加密,解密脱敏的逻辑处理,这里改动的地方就比较多,风险高,重复操作相同的逻辑,工作量大,后期不好维护;切入式编程只需要对用户信息字段添加注解,对有注解的字段统一进行加密,解密脱敏逻辑处理,操作方便,高聚合,易维护;使用AOP,项目启动后,只要调用切入点对应的方法,就会根据切入点来形成一个切面,进行统一的逻辑增强;将项目中关于用户信息实体类的字段,比如姓名,手机号,身份证,地址等,在新增进数据库之前,对数据进行加密处理;
2024-05-18 21:10:04
653
原创 Spring Boot 如何设计一个通用的 Excel 导入导出功能?
以上是我对导出功能的思考和实现思路,因为篇幅的关系,我没有贴出完整的代码,但是相信以上内容已经足够大家作为参考,缺少的内容,比如列宽、颜色字体等设置,请查阅EasyExcel官方文档来实现,主要方式就是根据前端传过来的JSON配置信息,来动态配置EasyExcel的导出文件。,也没有分页查询参数,类似于当前页导出,在也只考虑一层包装类的情况下,没有额外的配置项,上面的已经足够了,要注意的就是代码里面得把分页参数剔除掉。批量保存的数量不能太多,要考虑系统和数据库的性能,比如每次读取500行就执行一次保存。
2024-05-17 11:49:20
3077
原创 WebSocket 集群解决方案
所有Websocket Server 根据客户端userid找到对应session, 只有存在userid和session的绑定关系的Websocket Server才发送消息到客户端。: 客户端连接到某个Websocket Server,在该websocket Server中建立userid和session的绑定关系。:每一个WebSocketServer 获取自己IP+端口,uesrid与其绑定,服务调用方使用该IP+端口。代码演示(唯一Id为唯一的服务名的形式)方案二:目标询址方案(推荐)
2024-05-17 11:34:34
449
原创 摸鱼人,你要明白职场其实是非常势利眼的地方!
说点好听的能成50%,再给点好处能成70%说点好听的再给点好处能成90%,投其所好加恰当的好处基本都能成!人来人聚皆为利来,人往人散皆为利散没有谁会毫无理由地害你,也没有谁会毫无理由地帮你。真正的聪明人,既学会了闭嘴,也知晓了进退这既不是怂,也不是怯,而是一种自我保护!有人在的地方,就有江湖。江湖里,不缺能力,不缺手段,更不缺盘根错节的人际关系。他们可能散布谣言、夸大你的失误、甚至私下恶意插手你的工作,以削弱你的竞争力。因为职场是讲规矩和秩序的,一级干好一级的事自上而下,越级是被视为不懂规矩的。
2024-05-16 14:57:20
465
原创 Spring Boot 如何防护 XSS + SQL 注入攻击 ?终于懂了
这是因为mybatis启用了预编译功能,在sql执行前,会先将上面的sql发送给数据库进行编译,执行时,直接使用编译好的sql,替换占位符“?SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种“准备好”的方式不仅能提高安全性,而且在多次执行一个sql时,能够提高效率,原因是sql已编译好,再次执行时无需再编译。
2024-05-16 14:42:57
1518
原创 程序员必知必会的40条SQL语句
DENSE_RANK:按照指定列进行分组并排序,相同值的行具有相同的排名,不跳过下一个排名。LEFT JOIN:连接左侧数据表,并包括右侧数据表中与左侧数据表中没有匹配项的行。RANK:按照指定列进行分组并排序,相同值的行具有相同的排名,跳过下一个排名。FIRST_VALUE:返回分组中第一个行的列值。LAST_VALUE:返回分组中最后一个行的列值。NOT IN:筛选不符合指定值中任意一个的数据。LEAD:返回当前行之后的指定偏移量的行的列值。LAG:返回当前行之前的指定偏移量的行的列值。
2024-05-15 14:23:12
194
原创 mysql的limit分页优化
(如果依赖很多的非主键值,那么我们可能还需要回表操作),而且主键本身就是一种唯一索引,这种唯一有序特性可以便于帮助我们后期优化,减少扫描记录范围。如果我们分页想要优化时候,根据减少扫描思路,可以通过where id like '10289%' 方式,先缩小范围再分页。在我们设计数据库id的时候,可能采用字符串格式、有顺序的id,带有一定的业务逻辑这样的分布式id。思考:limit分页做了一个全表扫描,扫描后将从200000开始往后取10条记录返回。现象:随着分页越深入,查询的时间也越来越长。
2024-05-15 14:15:24
284
原创 sql语句优化的30种方法
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:可以这样查询:5.下面的查询也将导致全表扫描:若要提高效率,可以考虑全文检索。对于连续的数值,能用 between 就不要用 in 了:7.如果在 where 子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编
2024-05-15 14:11:58
655
原创 API 接口应该如何设计?如何保证安全?如何签名?如何防重?
在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?
2024-05-15 14:10:26
2189
原创 uniapp小程序之上拉加载,下拉刷新
两个效果,都先要在pages.json里面开启对应的效果,然后在该页面的methods里面写对应的api方法即可,这些方法在官网都有,可直接拷贝,最后添加自己的数据即可。延时器是1秒后关闭下拉图标,在关闭下拉图标之前,即uni.stopPullDownRefresh();也可以在下拉过程中增加一些效果,例如导航栏加载中效果,提示下拉成功效果等,这些效果就是一个方法,官网都有拷贝过来就行。此时,当页面向上拖动的时候,距离底部160时就会触发onReachBottom()函数,打印出 “触底”
2024-05-14 14:49:21
621
原创 uniapp写微信小程序
新建uniapp项目 --- 运行默认项目到微信小程序 --- 创建tabbar页面 --- 配置tabbar --- 写每一个页面的结构,样式和数据请求,渲染展示 --- 组件的创建和使用 --- 页面间的传值 --- uniapp插件(外部组件)的使用 --- 真机预览效果 --- 项目打包上传。在uniapp的插件市场找到你需要的插件,然后点击使用HX导入即可,然后使用方法和你自己写的组件一样,无需导入注册,直接看着插件的介绍使用即可。
2024-05-14 14:47:11
2100
原创 uniapp ui框架uview
在hbuilderX创建好一个uniapp的项目,然后把下载的uview拷贝到项目的跟目录下。/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */uniapp的最火ui框架,uview在uniapp的插件市场搜索下载。
2024-05-14 10:13:37
575
原创 uniapp的简单入门
下载,解压,有两个文件,一个静态资源,一个页面文件,把静态资源文件夹拷贝到static目录下,把页面文件拷贝到pages目录下,在pages.json中添加这个页面路径,在tabbar中地址配好,其实就实现了通过tabbar切换一个单页,不过这个单页是复制来的。实现每个页面之间的切换,用底部导航,和微信小程序一样,去官网复制tabbar代码,这个代码要写在配置页pages.json中,有几个页面,就设置几个选项,官网说的很清楚,然后在配置各个页面的路径,这一步做完之后就可以实现切换页面。
2024-05-14 10:09:34
336
原创 Linux必会命令
Vim是 一个 同Vi向上兼容的文本编辑器,可以用来编辑任何ASCII文本,可以把Vim理解为Windows的记事本。它对Vi作了 许多 增强:多层撤销,多窗口,多缓冲区(buffer),高亮度语法显示,命令行编辑,文件名匹配,在线帮助,可视选定等等. 用。
2024-05-14 09:59:03
732
原创 Spring Boot 全局异常处理
Spring Boot 的所有异常处理都基于 java 的。/*** 基于@ControllerAdvice注解的全局异常统一处理只能针对于Controller层的异常* 为了和Controller 区分 ,我们可以指定 annotations = RestController.class,那么在Controller中抛出的异常 这里就不会被捕捉* *//*** 处理所有的Controller层面的异常* */return map;
2024-05-13 13:40:28
3418
原创 SpringBoot 中实现订单30分钟自动取消的策略
当一个键过期时,onMessage方法会被调用,你可以在这里加入你的逻辑来处理订单的超时取消。利用Redis的键过期事件功能,当订单生成时在Redis中存储一个键,设置30分钟过期,键过期时通过Redis的过期事件通知功能触发订单取消操作。使用消息队列(如RabbitMQ)的延迟队列功能,当订单生成时将订单ID推送到延迟队列,设置30分钟后过期,过期后消费该消息,取消订单。在电商和其他涉及到在线支付的应用中,通常需要实现一个功能:如果用户在生成订单后的一定时间内未完成支付,系统将自动取消该订单。
2024-05-12 09:10:50
710
原创 SpringBoot 动态加载 jar 包,动态配置方案
目前数据治理服务中有众多治理任务,当其中任一治理任务有改动需要升级或新增一个治理任务时,都需要将数据治理服务重启,会影响其他治理任务的正常运行。
2024-05-11 14:36:12
584
原创 5000w+ 的大表如何拆?亿级别大表拆分实战复盘
经过与ES维护团队的两轮讨论,发现公司提供的ES服务对于我们的业务场景并不匹配(见表),经过反复考量,最终我们放弃了引入ES的计划,直接从数据库查询数据,采用每张表设置一个查询线程的方式提升查询效率。这样能够让对方心甘情愿的配合你的工作,达到双赢的目的。如果是一个已有的项目,在进行分表改造时,一定要将各种场景都罗列清楚,将各个场景细化到程序中的每个类、每个方法中,将所有业务场景都覆盖到。如果程序设计和学习能力是程序员的硬实力,那沟通技巧就是程序员的软实力,硬实力能够保障你的下线,而决定上线的恰恰是软实力。
2024-05-11 14:31:42
982
原创 如何在 vscode 命令行上进行微信聊天(摸鱼神器)
怕被路过的同事、领导看到你在微信摸鱼?这有一款在vscode进行微信聊天的项目,快来试试哇。
2024-05-11 14:25:20
363
原创 SpringBoot 多数据源及事务解决方案
一个主库和N个应用库的数据源,并且会同时操作主库和应用库的数据,需要解决以下两个问题:如何动态管理多个数据源以及切换?如何保证多数据源场景下的数据一致性(事务)?
2024-05-11 11:58:33
1393
1
原创 Spring Boot 优雅实现多租户架构
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。具体来说,我们可以使用Spring Cloud的服务注册与发现组件Eureka来注册每个租户的实例,并在管理界面中进行相应的操作。私有云环境指的是由企业自行搭建的云环境,不对外提供服务,主要应用于企业内部的数据存储、管理、共享和安全控制。
2024-05-11 11:48:36
897
原创 能挣钱的,开源SpringCloudAlibaba和Vue的企业级项目,代码很规范!
👍 仓库地址:https://github.com/YunaiV/yudao-cloud芋道,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。架构图管理后台的电脑端:Vue3 提供 element-plus、vben(ant-design-vue) 两个版本,Vue2 提供 element-ui 版本管理后台的移动端:采用 uni-app 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
2024-05-11 11:44:07
942
原创 SQL 函数
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。SQL Scalar 函数基于输入值,返回一个单一的值。SQL 拥有很多可用于计数和计算的内建函数。
2024-05-11 09:33:51
224
原创 SQL基础知识笔记
SQL是一门大小写不敏感的语言,语句以英文半角分号(;)结尾,多行注释使用 /* ……*/,单行注释使用 – ……关键词:grant(赋予权限)、revoke(取消权限)、commit(提交)、rollback(回滚)*内层的查询为子查询,外层的查询为主查询。
2024-05-10 14:06:22
1644
原创 摸鱼思考--停止打工你就会发现
8、没有永远的朋友,只有永远的利益,没有人会去帮助一个,毫无价值的人,你必须要好好的经营自己就算你跌入谷底,也要有与人交换的筹码,这才是强者定律。3、成功的商人都懂得一个道理,那就是在自己擅长的领域长久经营是一种幸运,然而,在自己擅长的领域,止步不前结果也是惨淡收场。14、朋友再好,你谈钱试试:夫妻再爱,你没钱试试;7、一定要和满脑子赚钱的人做朋友,因为赚钱的背后藏着一个人的认知、自律、圈子、能量、格局,还有它的执行力。1、打工是发不了财的,古人说过,想要富,开店铺,要经商,走四方,人要闯,马要放。
2024-05-10 11:35:06
464
WebSocket基础使用、心跳检测、断网重连、全局注册代码包1
2024-05-20
软件开发文档资料大全(规格说明书,详细设计,测试计划,验收报告)
2024-05-10
100+套大数据可视化炫酷大屏Html5模板
2024-05-10
60余种css基础+css3动画+canvas+svg
2024-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人