
各大实战问题分析
文章平均质量分 73
该分类专栏主要是贴合实际开发,根据业务分析问题。
ABin-阿斌
写一生代码,创一世佳话,筑一览芳华。
展开
-
SpringSecurity中的@PreAuthorize注解具体介绍与使用
指定用户认证的规则、设置用户的身份验证方式,例如基于内存、数据库、LDAP 等方式,并定义用户的角色和权限。原创 2024-10-26 21:38:51 · 1650 阅读 · 0 评论 -
SpringBoot 整合 Easy_Trans 实现翻译的具体介绍
点击:跳转全部原创 2024-09-21 23:18:56 · 751 阅读 · 0 评论 -
通用框架实践|Pipeline设计 + 幂等重试
本文讲述在闲鱼同城模块中,针对二手车和租房等业务的商业化需求,设计和实现了一个基于Pipeline模式和幂等性控制的通用框架。1.定义上下文BasePipelineContext用于Pipeline中传递参数;@Data/*** 扩展信息*//*** 处理结果*/2.定义Pipeline中的基本方法类为Stage接口,其中泛型T继承自BasePipelineContext类;Stage/*** 执行当前阶段的逻辑*/3.定义Idempotent接口用于实现幂等操作;原创 2024-08-12 21:40:41 · 982 阅读 · 0 评论 -
Java:水平越权与垂直越权访问漏洞问题
电网机巡智能管控平台是XX省电力巡检智能管控平台,辅助全省无人机巡线作业工作顺利、高效开展。由于今年互联网出现了严重的安全事故。XX省对全省的业务系统提高了安全意识,开展了为期4个月的“护网行动”,对全省所有的业务系统进行全面的安全检查,成立了护网行动小组。“非常荣幸的”我们研发的电网机巡智能管控平台被列为检查对象。在安全检查的过程中,发现了大量接口存在越权访问漏洞。借此机会,对越权访问漏洞进行了学习,结合本次护网行动的开展过程,总结了一下关于越权访问漏洞的相关内容。原创 2024-07-14 23:22:51 · 1641 阅读 · 0 评论 -
Java:分批查询
【代码】Java:分批查询。原创 2024-07-10 22:33:00 · 589 阅读 · 0 评论 -
SpringBoot自定义注解+AOP+Redis优雅实现防重复提交
声明:原文作者:CSDN-蒾酒原文地址:https://blog.csdn.net/qq_62262918/article/details/137483835本文介绍了springboot开发后端服务中,防重复提交功能的设计与实现,坚持看完相信对你有帮助。同时欢迎订阅springboot系列专栏,持续分享spring boot的使用经验。/**/*** 锁定时间,默认5000毫秒/*** 锁定时间单位,默认毫秒/*** 提示信息。原创 2024-06-01 23:32:03 · 1187 阅读 · 0 评论 -
SpringBoot轻松解决Excel导入导出功能
在日常的开发工作中,Excel 文件的读取和写入是非常常见的需求,特别是在后台管理系统中更为频繁,基于传统的方式操作excel通常比较繁琐,EasyExcel 库的出现为我们带来了更简单、更高效的解决方案。本文将介绍 EasyExcel 库的基本用法和一些常见应用场景,帮助开发者更好地利用 EasyExcel 提高工作效率。官网地址:github.com/alibaba/eas…原创 2024-06-01 23:04:39 · 950 阅读 · 0 评论 -
Spring:@Async注解使用注意事项及九大失效场景
前言原文作者:微信公众号:苏三说技术场景举例代码案例点击此处可观看:@Async注解使用注意事项及九大失效场景原创 2024-05-13 22:45:37 · 255 阅读 · 0 评论 -
针对MaxCompute优化案例分享
MaxCompute 是阿里巴巴集团推出的一种大数据计算平台,用于处理海量数据和进行数据分析。它提供了高可靠性、高扩展性和高性能的数据处理能力,支持 SQL 查询、MapReduce 计算和机器学习等多种计算模型。MaxCompute 主要用于数据仓库构建、数据挖掘、数据分析和业务智能等领域。通过MaxCompute,用户可以方便地进行数据处理、分析和挖掘,以支持业务决策和数据驱动的应用场景。原创 2024-04-15 23:05:38 · 441 阅读 · 0 评论 -
Mysql生产问题排查
某天用户反馈线上产品报错,迅速排查发现,上述表中新接入了一个业务:在dataworks接入了一个新的group(假设名字叫bad_group),同步任务在当天异常往mysql表里导了千万量级数据(其中实际有效的只有几千条,其余为脏数据),导致线上产品查询缓慢、报错。定位到问题以后,第一反应是把错误的bad_group的数据先全部清掉,保留其他group的数据,恢复上线查询,然后再慢慢想办法重新导入正确数据,可惜没想到。。。。原创 2024-04-15 22:58:18 · 228 阅读 · 0 评论 -
Collectors.toMap 引起的 Duplicate key xxx 的错误,你真的分析对了?
前言有时候看到报错日志打印出:Duplicate key,乍一看,很简单主键重复。如果项目系统监控日志做的好可能马上能定位出具体的代码方法和具体行数,但是日志系统做的不好,那就单单这个一个报错如何分析呢?那么这个时候就先定位到具体的接口和方法,然后排查方法中的代码是否使用到了:Collectors.toMap 这个方法,因为HashMap的key重复是否引起这个异常的。下面这篇文章我看了一下写的还不错,通俗易懂,也讲明了原理,对新手朋友很友好,有兴趣可以已观看一下。参考文章点击此处可跳转:原创 2024-04-08 23:56:04 · 860 阅读 · 1 评论 -
SpringBoot:自定义线程池配置类
有时候我们在项目中做一些长链路的跑批任务时,基于Springboot项目的定时任务,我们可以指定一个自定义的线程配置类进行单独提供给具体跑批任务使用,而不占用整个系统资源。原创 2024-03-29 23:34:46 · 1312 阅读 · 0 评论 -
IDEA:项目启动时报错:java.lang.OutOfMemoryError: GC overhead limit exceeded
项目时,MAVEN一直报错:java.lang.OutOfMemoryError: GC overhead limit exceeded,多次刷新问题依然存在;项目时,MAVEN一直报错:java.lang.OutOfMemoryError: GC overhead limit exceeded,多次刷新问题依然存在;中执行:mvn clean install -DskipTests -Dfull,运行正常可以得到期望的结果;调整webservice。调整webservice。转载 2024-03-22 23:15:22 · 5519 阅读 · 0 评论 -
你真的了解所谓的压测吗?
这里就重点介绍一下比较常用的工具:JMeter,JMeter(Apache JMeter)是一个功能强大的开源压力测试工具,主要用于对 Web 应用程序和各种服务进行性能测试。原创 2024-03-18 14:56:13 · 788 阅读 · 0 评论 -
数据同步操作需要注意哪些点?
前言有时候基于业务,我们会做一些数据清洗,或者老项目数据同步新项目的相关操作。在做这些业务的时候,往往需要注意一些必要的关键点,否则会造成数据的错乱,我们知道数据一单错乱是很难处理的。参考文章原作者:捡田螺的小男孩点击此处可跳转:数据同步操作需要思考哪些维度?原创 2024-03-17 17:00:43 · 274 阅读 · 0 评论 -
SOFA 相关框架你有没有听过?
一、 前言1、什么是 SOFA?SOFA 是 Simple Object-oriented and Flexible Architecture 的简称,是阿里巴巴国际技术事业部自研的专门针对复杂业务场景的应用架构SOFA是蚂蚁自研的一套金融级分布式中间件,目前正在逐步向业界开源。SOFA的全称有两个,最早是Service Oriented Fabric Architecture,即面向服务的架构。随着2018年的开源,其全称改为Scalable Open Financial Architectur原创 2024-03-14 15:51:41 · 2127 阅读 · 0 评论 -
try catch 应该在 for 循环里面还是外面
前言其实就是看业务。我需要出现异常就终止循环的,就放外头;不需要终止循环,就搞里头但是要注意一点就是,别在for循环里面去查库调用第三方啥的,这些操作,如果必要,需要慎重考虑了参考文章点击可跳转:try catch 应该在 for 循环里面还是外面原创 2024-03-14 13:48:23 · 223 阅读 · 0 评论 -
SQL注入的场景复现和解决方案
SQL注入(SQL Injection)是一种常见的网络攻击技术,它利用应用程序没有正确过滤用户输入的数据,将恶意的 SQL 代码注入到应用程序中执行,从而导致应用程序的安全性受到威胁。通简单来说,就是通过构造恶意的 SQL 语句,将恶意代码注入到应用程序中执行,从而实现各种攻击手段。原创 2024-03-12 16:53:55 · 1496 阅读 · 0 评论 -
高并发场景系统需要准备哪里东西
综上所述,设计高并发系统需要从多个方面考虑,需要综合运用各种技术和工具,进行全面的测试和评估,以实现系统的高可用、高性能和高安全性。原创 2024-03-04 16:39:31 · 339 阅读 · 0 评论 -
软件开发:大厂中的灰度发布到底是什么样的一个流程
总的来说,大厂的灰度发布流程非常严谨和规范,需要考虑到各种可能的风险和问题,并采取相应的措施来保证发布的质量和稳定性。原创 2024-01-23 22:36:22 · 1297 阅读 · 0 评论 -
Java List集合使用 Comparator.comparing 排序报空指针异常问题
前言有时候对一个List集合的某个字段进行排序的时候会报错,问题就是排序的那个字段可能是个空值,那么下面就是处理这种问题的方式,亲自测试有效。参考点击可跳转:Java List集合使用 Comparator.comparing 排序报空指针异常问题原创 2024-01-21 20:54:13 · 1750 阅读 · 0 评论 -
微服务之间Feign调用无法解析IPage报错问题:Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage
最新在做一个对外提供基础信息的需求,我在A服务中写了一个分页接口,本以为很简单的我在B服务用 Feign 调用一下就可以了。原创 2023-12-18 23:28:39 · 1706 阅读 · 0 评论 -
深入理解TheadLocal的使用场景和注意事项
是Java中的一个类,它提供了一种线程局部变量的机制。它可以使得每个线程都拥有一个自己独立的变量副本,这些副本之间互不干扰,可以独立修改,而且线程之间互不影响。ThreadLocal 的主要使用场景如下:在多线程环境下,某些变量是线程共享的,如果不采用同步机制,可能会出现线程安全问题。而使用 ThreadLocal 可以使得每个线程都拥有一个自己独立的变量副本,从而避免了线程安全问题。在某些场景下,需要在多个方法之间传递某些数据,但这些数据对于每个线程而言又是不同的。原创 2023-12-13 17:04:42 · 494 阅读 · 0 评论 -
让@RefreshScope注解来帮助我们实现动态刷新
有没有对应的小伙伴去思考过这个东西,这个注解有什么作用?为什么要加?下面我们就来看看这个 RefreshScope 注解是如果使用及底层执行原理。原创 2023-11-28 14:50:20 · 569 阅读 · 0 评论 -
一文搞清楚B端与C端有什么区别
C端:Consumer(也可理解为Customer),通常为消费者、个人终端用户使用的客户端。如:微信、淘宝、网易云音乐等。B端:B端,代表企业用户商家,英文是Business,是互联网产品中的商家界面(即:管理平台)。用户通过它进行日常的商业活动,例如企业库存管理,销售统计,员工出勤考核等等。可以说,用来解决企业需求的产品,都是 B 端产品。原创 2023-07-22 22:00:18 · 39224 阅读 · 0 评论 -
java中优雅地使用List转换String字符串
这里和StringUtils.join()有区别,参数顺序不一样,另外,StringUtils.join()可以传入Integer或者其他类型的集合或数组,而String.join()尽可以传入实现charSequence接口类型的集合或数组。StringUtils.join() 和 String.join()用途:将数组或集合以某拼接符拼接到一起形成新的字符串。此方法将列表转换为具有给定分隔符、前缀和后缀的字符串。如果是字符串类型的集合或数组推荐使用String.join()原创 2023-07-22 21:55:06 · 735 阅读 · 0 评论 -
Java:基于JDBC数据连接池方式同步第三方数据库表信息数据
注意:前置条件两端的网要互通,否则拉取无效。原创 2023-07-14 09:20:04 · 657 阅读 · 0 评论 -
Java:创建文件夹并输出内容到文件中
参数三:存储数据格式,这里用String 类型可以用JSON转换后将整个对象信息存储进去,转换方式:JSON.toJSONString(xxx)这里我把这个操作封装成了一个工具类,方便根据不同业务场景方便调用。参数一:根据实际业务场景路径来,如:本地:“D\”参数二:存储数据的文件,如:data.txt。原创 2023-07-12 19:26:06 · 766 阅读 · 0 评论 -
SpringBoot:整合 Redis BitMap技术及结合场景:实现签到与统计
采用BitMap实现签到功能实现签到接口,将当前用户当天签到信息保存到Redis中我们可以把年和月 作为BitMap的key,然后保存到一个BitMap中,每次签到就到对应的位上把数字从0 变为1,只要是1,就代表是这一天签到了,反之咋没有签到。实现签到接口,将当前用户当天签到信息保存至Redis中说明请求方式POST请求路径/user/sign请求参数无返回值无因为BitMap 底层是基于String数据结构,因此其操作都封装在字符串操作中了。原创 2023-06-30 23:16:57 · 753 阅读 · 0 评论 -
WebSocket:基于 Spring Cloud 配置注解实现 WebSocket 集群方案
WebSocket大家应该是再熟悉不过了,如果是单体应用确实不会有什么问题,但是当我们的项目使用微服务架构时,就可能会存在问题比如服务A有两个实例A1和A2,前端的WebSocket客户端C通过网关的负载均衡连到了A1,这个时候当A2触发消息发送的逻辑,需要将某个消息发送给所有的客户端时,C就接受不到消息这个时候我们很快就能想到一种最简单的解决方案,就是把A2的消息转发给A1A1再把消息发送给C,这样C就能收到A2发送的消息了基于这个思路,我实现了一个库,一个配置注解搞定一切。原创 2023-06-25 00:17:21 · 2152 阅读 · 0 评论 -
SpringBoot项目中基于AOP注解方式实现接口日志记录
原文链接:https://blog.csdn.net/Jnsone/article/details/129934551。还需在springMVC项目中需要开启AspectJ注解支持。原创 2023-06-19 00:16:08 · 478 阅读 · 0 评论 -
Java排查接口调用记录、请求参数、响应结果、执行时长
在Web应用当中记录接口调用记录、请求参数、响应结果、执行时长是再常见不过的事情了,记录的方式有很多。最近阅读之前的历史代码发现以前一些接口的统计时长、记录调用记录、请求参数都是合代码逻辑并存,严重影响了代码可读性。而记录接口调用记录、请求参数、响应结果、执行时长这些操作完全可以抽象出来,用 AOP 横向拦截去处理,实现解耦、提高代码可读可维护性。这篇文章将介绍如何实现。原创 2023-06-17 23:56:30 · 1300 阅读 · 0 评论 -
JSON转换异常:Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
其实给出的提示已经很明确了:比如:Cannot deserialize instance of:无法反序列化,比如:through reference chain:指的就是这个参数的类型有问题,这里我这个 data 是一个 String 类型,但是三方返回的格式是这样的:{laoliu:xxxx}原创 2023-06-03 15:46:09 · 13853 阅读 · 2 评论 -
使用 Lombok 的 @Accessors(chain=true) 的注意事项
在我们的实体类或者对象中加入了该注解设置 chain=true,这样我们就可以进行链条式调用参数了。生成setter方法返回this(也就是返回的是对象),代替了默认的返回 void// 生成的setter方法如下,方法体略 public User setId(Integer id) {//开起chain=true后可以使用链式的set User user = new User() . setAge(31) . setName("pollyduan");原创 2023-04-24 00:54:56 · 2959 阅读 · 1 评论 -
Mapstruct的具体介绍与使用
mapstruct是一种实体类映射框架,能够通过Java注解将一个实体类的属性安全地赋值给另一个实体类。有了mapstruct,只需要定义一个映射器接口,声明需要映射的方法,在编译过程中,mapstruct会自动生成该接口的实现类,实现将源对象映射到目标对象的效果。在实体类下面创建即可,方便查找。原创 2023-01-12 21:40:09 · 30012 阅读 · 6 评论 -
IDEA:优雅地查看打包后的 jar包代码信息
有时候我们在 IDEA 中将我们项目打包后的代码部署到生产环境中,但是发现始终有错误信息提示。这时我们想要验证一下我们书写的代码是否被打包成功了,接下来我们就看看如何优雅地查看 jar 包代码。原创 2023-01-06 14:52:22 · 3965 阅读 · 0 评论 -
优雅地处理跨域问题
我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。如果小伙伴们觉得不错就一键三连吧~原创 2022-12-30 14:13:29 · 122 阅读 · 0 评论 -
正确地使用 BeanUtils.copyProperties
我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。如果小伙伴们觉得不错就一键三连吧~声明:原作者:微信公众号:JavaGuide。原创 2022-12-17 23:21:02 · 1135 阅读 · 0 评论 -
Postman:调用接口时返回 404 的排查方法
今天同事在快下班的时候问了我一个问题,场景是:他用 Postman 工具测试接口时断点能进入到 idea 中,同时也打印了 SQL查询日志,奇怪的是:Postman 中 响应体一直返回:404状态码。刚开始我第一个想到的就是:URL问题,但是断点能进去,那证明就不是于是我想了一下,后面我直接拉到 Controller 类最上面一看,嘿嘿,找到了。原来是写了一个:@Controller 注解,后来改成 @RestController 就可以了。或者在该方法上加上@ResponseBody 也可以。原创 2022-10-24 23:30:13 · 1169 阅读 · 0 评论 -
SpringBoot 优雅地对接口进行数据加解密
这日,刚撸完2两代码,正准备掏出手机摸鱼放松放松,只见老大朝我走过来,并露出一个”善意“的微笑,兴伟呀,xx项目有于安全问题,需要对接口整体进行加密处理,你这方面比较有经验,就给你安排上了哈,看这周内提测行不…,额,摸摸头上飘摇着而稀疏的长发,感觉我爱了。和产品、前端同学对外需求后,梳理了相关技术方案,经测试,响应数据和非加密版万全一致啦,还有GET部分的请求加密,以及后面加解密惨遭跨域问题,后面有空再和大家聊聊。SpringBoot 优雅地对接口进行数据加解密。原创 2022-10-24 09:16:18 · 538 阅读 · 0 评论