![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
开发工具
文章平均质量分 91
开发工具
小沈同学呀
JAVA程序猿一枚,擅长分布式微服务、高并发、多线程等常规架构。记录成为架构师之路的点滴,分享工作中的各种疑难杂症。
展开
-
【实战】Spring Boot 嵌套事务REQUIRES_NEW与NESTED在项目中的运用
通过使用REQUIRES_NEW或者NESTED,我们可以轻松地在现有事务中创建新的事务传播机制,其中REQUIRES_NEW不受外部事务影响,NESTED则是会受到外部事务影响。所以,在实际的开发中我们也需要注意嵌套事务的局限性和潜在的性能问题,以确保应用程序的高效运行。原创 2024-08-27 16:05:45 · 835 阅读 · 1 评论 -
探索Java Stream API:高效处理集合的利器
Java Stream API以其简洁的语法和强大的功能,为Java集合处理带来了全新的体验。通过Stream API,我们可以以声明式的方式处理数据集合,使代码更加简洁、易于理解和维护。同时,结合Lambda表达式和函数式接口,Stream API还能轻松实现复杂的数据转换和聚合逻辑。然而,在使用Stream API时,我们也需要注意其生命周期、并行与串行的选择以及与其他Java特性的结合使用,以充分发挥其优势。原创 2024-08-15 18:07:40 · 1016 阅读 · 1 评论 -
【实战】Spring Security Oauth2自定义授权模式接入手机验证
Oauth2自定义认证模式还是比较简单,直接自定义认证令牌、自定义授权模式、自定义实际认证者、然后将自定义的授权模式和认证者交给Oauth2。最后,我们在资源配置中可以配置受限资源和免登录资源,以及token储存方式、用户加载方式等等即可。原创 2024-08-09 16:42:34 · 1093 阅读 · 2 评论 -
【实战】Spring Cloud Stream3.0 整合RocketMq
使用Spring Cloud Stream来进行整合RocketMq。如果我们有在一个项目中需要引入多个MQ的需求,用Spring Cloud Stream简直不要太好。当然,我们是直接使用Spring Cloud Stream3.0,不再像之前低版本那样需要引入通道类进行指定,3.0版本可用直接字配置文件进行粘接绑定信道。原创 2024-07-23 16:07:17 · 1550 阅读 · 4 评论 -
飞书开放平台自建网页应用登录与免登录
最近接收到了一个系统接入飞书的需求,大概就是当前系统只有账户密码登录,需要接入飞书扫码登录,另外还可以在飞书里面点击应用直接实现系统用户免登录。解析一下这个需求就是在浏览器端使用飞书扫码授权完成登录验证,同时需要提供飞书内部应用直接免登功能。哈哈,我调研了一些时间后将飞书网页应用登录与免登录接入了我们系统。现在就主要的接入点分享备注,以备二次查阅。原创 2024-07-16 17:26:52 · 1529 阅读 · 2 评论 -
【实战】EasyExcel实现百万级数据导入导出
最近接到一个百万级excel数据导入导出的需求,大概就是我们在进行公众号API群发的时候,需要支持500w以上的openid进行群发,并且可以提供发送openid数据的导出功能。可能有的同学会说,这么大的数据量发送为啥不用标签发送呢。哈哈,标签发送需要提前打标签微信限制50个一批,我们开10个线程也是需要3个小时左右才能打完,这样肯定不能满足客户需求。如果用openid群发就不一样了,微信支持10000个每批,基本上我开5个线程同时发送差不多几分钟搞定。所以,问题就来到了百万级excel数据的导入与导出啦。原创 2024-07-02 15:25:22 · 2927 阅读 · 2 评论 -
【实战】kafka3.X kraft模式集群搭建
相信很多同学都用过Kafka2.0吧,其中需要zookepper集群来做元数据管理和集群选举,大大增加了运维成本,而且也很是影响Kafka性能。言归正传今天我们就分享一期Kafka3.x Kraft模式集群搭建,简直不要太爽。原创 2024-06-06 18:12:12 · 1196 阅读 · 1 评论 -
使用高性能NIO框架netty实现IM集群对聊方案
netty支持websocket通讯协议,那么我们就可以用它来实现websoket,实现后端服务主动向前端推送消息的功能。比如AB用户分别注册到websoket后台,A用户向B用户发送消息,后端接收到A用户消息后判断消息接收者是B用户,然后后端逻辑直接调用B用户websoket连接进行推送即可。原创 2024-05-27 17:00:07 · 1022 阅读 · 2 评论 -
【实战】SpringBoot整合Websocket、Redis实现Websocket集群负载均衡
因为有websocket的存在,使得前后的主动交互变得容易和低成本。其实在JAVA领域用SpringBoot框架集成Websoket还是很简单的,今天我们重点不是集成而是通过Redis的发布订阅实现Websocket集群通信,当然有条件的也可以用MQ代替。原创 2024-05-18 12:46:14 · 1984 阅读 · 4 评论 -
Spring Boot框架强大的事件驱动模型(ApplicationEvent)
SpringBoot框架提供了强大的事件驱动模型(ApplicationEvent),允许应用程序组件之间通过发布和监听事件来进行松耦合的通信。在实际的生产场景中,我们可以使用事件进行缓存、邮件、日志解耦,从而提高系统性能。原创 2024-04-25 17:29:56 · 1368 阅读 · 5 评论 -
Java编程使用CGLIB动态代理介绍与实战演示
以上就是一个完整的Java CGLIB动态代理实例。通过这个例子,可以看到我们成功地对ActionUserDataServiceImpl 类进行了代理,代理过程中插入了额外的前后置处理逻辑,而无需修改原有类的代码。在实际使用时,我们应根据项目需求和目标类特性选择合适的代理方案,不仅仅限制于CGLIB,如果有实现接口的类用JDK也可,这样才能达到事半功倍的效果。原创 2024-04-03 17:08:33 · 1309 阅读 · 3 评论 -
Java编程JDK动态代理概述与实战演示
Java JDK动态代理实例,展示了如何利用JDK提供的动态代理机制为已有接口实现添加额外行为(如日志记录、权限检查、缓存等)。在这个例子中,LogInvocationHandler添加了方法调用的前后日志记录功能。当通过代理对象调用add()方法时,实际上会触发invoke()方法,在执行目标方法之前打印方法调用信息,执行之后记录方法执行耗时。原创 2024-04-19 16:12:24 · 735 阅读 · 2 评论 -
微信公众号第三方平台-公众号扫码授权接入代运营
根据公众号第三方平台开发流程可开发出一套可管理公众号/小程序的服务,服务可以直接部署在微信生态作为服务商。只要公众号/小程序理员用个人微信扫码进行授权,我们则可以拿到相关的业务接口权限,从而帮助商家实现代运营。原创 2024-04-11 18:17:34 · 2170 阅读 · 6 评论 -
【实战】springboot整合swagger及knife4j
一个好的API文档不仅仅能够提供给测试人员编写测试用例,也能够直接给前端使用查阅,可以避免很多在系统集成过程中的问题。这不,最近在整合架构的时候留意到了swagger和knife4j。本身swagger提供的web界面可以很好的调试和查阅,现在加上knife4j的API文档自动生成功能,简直不要太好。那么,今天就分享一期springboot整合swagger及knife4j吧!各位大大敬请鉴赏。原创 2024-03-28 17:05:22 · 1895 阅读 · 6 评论 -
【实战】VMware17虚拟机以及Centos7详细安装教程
很早之前就想分享一期关于虚拟机的博文,苦恼的是一直没有找到机会。这不最近我个人的阿里云服务器到期了,自己又不想续费,主要是太贵了。那么,现在就在本地电脑上安装个VMware17虚拟机吧,然后再安装一个Centos7系统,这不又可以愉快的玩耍了。打开VMware虚拟机,「文件 → 新建虚拟机 → 自定义 → 下一步」。自定义硬件 → 移除 「USB控制器、声卡」(这样可以让虚拟器启动的快一点)。至此,虚拟机中的硬件已经搭建完成。原创 2024-03-15 15:36:31 · 7636 阅读 · 1 评论 -
【实战】阿里智能编码助手通义灵码
阿里智能编码助手通义灵码提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力。在实际的开发过程中对我们代码质量和异常排查也有着良好的支持,可以大大节省编码时间。原创 2024-02-04 16:35:16 · 3893 阅读 · 4 评论 -
【实战】SpringBoot自定义 starter及使用
Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。原创 2024-01-20 17:05:07 · 1760 阅读 · 2 评论 -
【福利】百度内容审核平台实战
百度内容审核平台主要针对图像、文本、音视频、直播等多媒体内容,提供全方位的审核能力,覆盖涉黄、违禁、广告、恶心不适等丰富的审核维度,为业务健康发展保驾护航。相比于阿里、腾讯的内容审核接口百度的接口可以免费试用365天,而且提供完整的SDK,调用简单快捷。原创 2024-01-11 17:07:45 · 1341 阅读 · 7 评论 -
基于人工智能的数据库工具Chat2DB使用
Chat2DB 是一款有开源免费的多数据库客户端工具,集成了AIGC 生成式人工智能。其主要功能包括自然语言转sql、优化sql、转化sql、解释sql等功能,是一个真正意义上减轻劳动和提高效率的一款大模型数据库客户端工具。原创 2024-01-03 11:59:25 · 2268 阅读 · 2 评论 -
【神器】wakatime代码时间追踪工具
wakatime就是一个IDE插件,一个代码时间追踪工具。可自动获取码编码时长和度量指标,以产生很多的coding图形报表。这些指标图形可以为开发者统计coding信息,比如项目coding时长,修改了哪些文件,使用了什么语言等等。原创 2023-12-19 09:34:11 · 2267 阅读 · 8 评论 -
snakeyaml编辑yaml文件并覆盖注释
snakeyaml编辑yaml文件并覆盖注释还是比较简单,大致就是在操作yaml文件之前对注释进行缓存,操作文件时先将yaml转为map,然后配置数据写入并转换成yaml文件,最后再将注释覆盖在yaml上即可。原创 2023-12-08 17:43:13 · 1832 阅读 · 6 评论 -
解决dom4j新增xml节点自动加上xmlns=““的问题
dom4j操作xml还是比较简单,有很多的api可用,需要注意在进行pom.xml操作需要保证父子的xmlns一致。原创 2023-12-02 10:55:01 · 846 阅读 · 5 评论 -
Mybatis @MapKey注解返回指定Map源码解析与用例
Mybatis框架是Java后端常用的持久层框架,其中的@MapKey注解可以直接返回指定类型的Map。其核心原理就是对数据集合循环处理将指定字段作为key,数据作为value直接返回一个Map让我们直接使用以完成特定的业务功能。原创 2023-10-27 10:57:34 · 4810 阅读 · 7 评论 -
小程序canvas层级过高真机遮挡组件的解决办法
使用cover-view组件,cover-view组件是覆盖在原生组件之上的文本视图,虽然有一定的使用限制但是我们的按钮button刚刚好在范围之内。原创 2023-10-18 10:29:01 · 2439 阅读 · 7 评论 -
【分布式云储存】Springboot微服务接入MinIO实现文件服务
Springboot微服务接入MinIO实现文件服务较为简单,我们只要按照官方文档引入依赖调用即可。值得注意的是我们根据需求选择接入ssl兼容方案和静态资源预览功能。当然,minio的private\custom\public可以完全实现我们各种需求,可以完全替代市场上付费和笨重的分布式服务。原创 2023-09-27 10:41:02 · 2508 阅读 · 5 评论 -
【分布式云储存】高性能云存储MinIO简介与Docker部署集群
MinIO 提供高性能、与S3 兼容的对象存储系统,让你自己能够构建自己的私有云储存服务。MinIO原生支持 Kubernetes,它可用于每个独立的公共云、每个 Kubernetes 发行版、私有云和边缘的对象存储套件。MinIO是软件定义的,不需要购买其他任何硬件,在 GNU AGPL v3 下是 100% 开源的。原创 2023-09-20 10:43:32 · 2066 阅读 · 16 评论 -
Java class 文件安全加密工具对比与ClassFinal实战
非常重要的项目推荐使用XJar可以完全隐藏Class文件内容,但是需要额外的go环境支持,也可以保守选择ClassFinal直接无侵入达到隐藏方法体和配置文件内容的目的。原创 2023-09-13 11:14:05 · 4148 阅读 · 19 评论 -
Windows系统GIT安装与GitHub远程仓库
Windows系统GIT安装与GitHub远程仓库原创 2023-03-28 15:58:02 · 721 阅读 · 5 评论 -
JDK20又来了!你还在用JDK8么?
JDK20在19的基础上更新了结构化并发、记录模式、部函数和内存API等,也加入了一些新的特性。但是本版本官方只短期支持6个月,下个稳定版本JDK21会在今年9月发布。原创 2023-04-04 10:52:35 · 8218 阅读 · 21 评论