自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DataX:阿里开源的数据同步工具!!

DataX 是阿里云 DataWorks 数据集成 的开源版本,主要就是用于实现数据间的离线同步。DataX 致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源(即不同的数据库)间稳定高效的数据同步功能。为了解决异构数据源同步问题,DataX 将复杂的网状同步链路变成了星型数据链路,DataX 作为中间传输载体负责连接各种数据源;当需要接入一个新的数据源时,只需要将此数据源对接到 DataX,便能跟已有的数据源作为无缝数据同步。

2024-09-27 17:32:45 402

原创 高效工作,轻松摸鱼:码农求生之道!!

经常有朋友跟我吐槽说自己进公司很久了,但感觉一直都没什么成长,每次汇报的时候也不知道说什么。如果你也有这种想法,那么大概率你是没有日常总结的习惯的。我自己以前存在的一个问题是:看网课做笔记时,有时候会偷懒,我会想着多看几集一起记录。结果现实往往是,随着我看的集数越来越多、未记录笔记的集数越堆越多,我会觉得记录笔记的压力越来越大,到最后索性不记了。有没有同学也是这样?

2024-09-27 17:20:25 542

原创 try catch 应该在for循环里面还是外面?

你想想,要是你在循环里读文件,结果一不小心读到个不存在的文件,直接就抛出个异常,程序挂了,老板急得像热锅上的蚂蚁,你呢?如果你每个文件的读取都有可能抛出异常,并且你不想让整个循环因为一个文件的问题而停下,那你可以把它放在里面。你得是个灵活的小老油条,遇事儿多想想,别一味追求“面试官心中完美”的答案。当然,放在里面的缺点也是显而易见的,重复代码多了,性能也受影响。所以,try catch 放在循环外面,能让你统一处理异常,就像当大老板来视察时,你不可能每次都在桌子上找个小抄,得给他个大报告,对吧?

2024-09-26 20:24:54 221

原创 BigDecimal,慎用!

首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为。在需要精确的小数计算时再使用BigDecimal,BigDecimal的性能比double和float差,在处理庞大,复杂的运算时尤为明显。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。BigDecimal都是不可变的(immutable)的, 在进行每一次四则运算时,都会产生一个新的对象 ,所以在做加减乘除运算时要记得要保存操作后的值。

2024-09-26 20:15:21 612

原创 ShellCheck:程序员必备Shell脚本项目!

ShellCheck是一个开源的静态分析工具,专门给shell脚本号号脉,找出其中的问题,比如语法错误、不规范的编码习惯、甚至是安全漏洞。它不仅支持Bash,还支持Sh、Dash、Ksh等等。你可以用它来检查代码,也可以集成到CI/CD流水线中,甚至可以在编辑器中直接用。它就像一位严格的老师,让我们的脚本远离错误和不良习惯。主要的功能特色有:多shell支持:不管是 Bash 还是其他 shell 脚本,它都能帮你检查。静态分析:不用运行脚本,它就能帮你抓出隐藏在角落里的小问题。

2024-09-25 22:29:04 331

原创 JD-hotkey:京东开源后台中间件!

然后对这些热数据、热用户等,推送到该应用部署的所有机器 JVM 内存中,以大幅减轻对后端数据存储层的冲击,并可以由客户端决定如何使用这些热 key(譬如对热商品做本地缓存、对热用户进行拒绝访问、对热接口进行熔断或返回默认值)。该框架没有依赖于任何定制化的组件,与 redis 更是毫无关系,核心就是靠 netty 连接,client 端送出待测 key,然后由各个 worker 完成分布式计算,算出热 key 后,就直接推送到 client 端,非常轻量级。扫码回复【酒店】可免费领取酒店管理系统源码。

2024-09-25 22:21:40 937

原创 后台管理系统开箱即用的组件库!!【送源码】

今天给大家推荐几款的后台管理系统开箱即用的组件库,基于ElementUI二次封装,开发必备。

2024-09-24 22:23:10 300

原创 @Transactional 的注解问题

针对不同业务定制异常类型是比较常见的做法,@Transactional 注解的 rollbackFor 参数支持自定义的异常,但我们往往习惯于将这些自定义异常继承自 RuntimeException。那么这就出现和上边同样的问题,事务的范围不足,许多异常类型仍然无法触发事务回滚。try {想要解决这个问题,可以在 catch 中主动抛出我们自定义的异常。try {上面的关于 @Transactional 注解的使用注意事项是我在代码审查和搜集网络观点后整理出的。

2024-09-24 22:20:42 721

原创 WebSocket 在SpringBoot 的 3 种集成方式!!

和WebMVC中的WebSocketClient一样,Reactive包中的WebSocketClient也有很多实现类,比如ReactorNettyWebSocketClient,JettyWebSocketClient,UndertowWebSocketClient,TomcatWebSocketClient等等,也是需要大家基于自身项目的容器使用不同的实现类。@OnOpen用来标记对应的方法作为客户端连接上来之后的回调,Session就相当于和客户端的连接啦,我们可以把它缓存起来用于发送消息;

2024-09-24 22:17:41 919

原创 为什么数据库连接很消耗资源?

在本文的测试中,只用了 5 行代码来建立连接,但是并没有通过该连接去执行任何操作,所以在程序执行完毕之后,连接不是通过 Connection.close() 关闭的,而是由于程序执行完毕,导致进程终止,造成与数据库的连接异常关闭,所以最后会出现 TCP 的 RST 报文。在这个最简单的代码中,没有设置任何额外的连接属性,所以在设置属性上占用的时间可以认为是最少的(其实,虽然我们没有设置任何属性,但是驱动仍然设置了字符集、事务自动提交等,这取决于具体的驱动实现),所以整个连接所使用的时间可以认为是最少的。

2024-09-23 17:56:55 761

原创 代码中 isEmpty 和 isBlank 的区别

也许你两个都不知道,也许你除了isEmptyisNotEmptyisNotBlankisBlank外,并不知道还有isAnyEmptyisAnyBlank的存在, come on ,让我们一起来探索这个工具类。

2024-09-22 17:54:09 372

原创 MapStruct 的进阶用法!!

总的来说, MapStruct 是一个强大且灵活的映射框架,很好的解决有关对象转换的问题,实现了代码的简洁和性能的兼顾。但有时候设置为 null 可能不符合我们的需求,比如 target 中有个 List ids,我们希望如果 source 中ids 为 null 时,target 的 ids 设置为空 list。通过在编译时生成映射代码,MapStruct 提供了类型安全的映射,并能在编译时就发现潜在的错误。简化了 Java Beans 之间转换的代码,自动生成使用简单的赋值语句完成的映射实现。

2024-09-22 17:51:56 307

原创 高效处理NPE!!

相信不少小伙伴已经被java的NPE(Null Pointer Exception)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来尽量简化代码同时高效处理NPE(Null Pointer Exception 空指针异常)

2024-09-19 22:25:26 848

原创 Java 23 的12 个新特性!!

Java 23 来啦!和 Java 22 一样,这也是一个非 LTS(长期支持)版本,Oracle 仅提供六个月的支持。下一个长期支持版是 Java 25,预计明年 9 月份发布。Java 23 一共有 12 个新特性!有同学表示,Java 8 还没学完呢,又要学新特性?人麻了啊。。。别担心,其实改动并不大!我抽时间认真看了一下新特性,并对这些新特性做了详细的解读,希望对你有帮助!

2024-09-19 22:19:13 875

原创 JDK 21 的新功能!!

JDK 21 其实很早之前就发了,具体时间是 2023 年 9 月 19 日,是继之前的 LTS 版本 JDK 17 之后最新的长期支持 (LTS) 版本。以下是 JDK 21 的新功能列表:虚拟线程序列集合记录模式字符串模板(预览)未命名模式和变量(预览)未命名类和实例主要方法(预览)作用域值(预览)结构化并发(预览)从 Java 代码的角度来看,虚拟线程感觉就像普通线程,但它们没有 1:1 映射到操作系统/平台线程。它是从虚拟线程到载体线程进而到操作系统线程的M:N映射。

2024-09-18 22:26:33 763

原创 Stack Overflow 2023 年开发者调查报告!

在使用或计划使用 AI 工具的人中,只有不到 3% 高度信任它们的准确性,而有两倍多的人(大约 6%)非常不信任。ChatGPT 是最受欢迎的 AI 搜索工具,被 83% 的受访者使用,其次是 Bing AI (20%)、WolframAlpha (13%) 和 Google Bard AI (10%)。GitHub Copilot 是最受欢迎的 AI 开发工具,被 55% 的受访者使用,其次是 Tabnine (13%) 和 AWS CodeWhisperer (5%)。

2024-09-18 22:24:48 1113

原创 Kafka 消息丢失如何处理?

监控是最基础的保障手段。很多时候,消息丢失的“锅”其实是消费者自己在消费时出了问题,明明没处理完却偷偷提交了 offset,让 Kafka 以为消息已经处理完毕了。最常见的是消费者拉取了消息,但是业务处理失败,或者消费后没有提交 offset,导致消息“看似”消费了,实际根本没处理。面试官顿时一愣,沉默了片刻后,可能有点不耐烦,说道:“这个你不用管,反正现在发现消息丢失了,你就说如何处理。这个方式虽然不能彻底避免消息丢失,但能保证消息不会轻易丢失,特别是一些重要业务场景中,消息的可靠性至关重要。

2024-09-15 17:50:36 1125

原创 异步请求提高吞吐量

Servlet 3.0之前:每一次Http请求都由一个线程从头到尾处理。Servlet 3.0之后,提供了异步处理请求:可以先释放容器分配给请求的线程与相关资源,减轻系统负担,从而增加服务的吞吐量。在springboot应用中,可以有4种方式实现异步接口(至于SseEmitter,不在本文介绍内,之后新写文章介绍):Callable第一中是Servlet层级的,比较原生的方式,本文不对此介绍(一般都不使用它,太麻烦了)。本文着重介绍后面三种方式。

2024-09-15 17:47:37 893

原创 Lombok 中的那些整活儿骚操作!!

有的方法看看就好,知道可以这么用,但是否应用到实际开发中,那就仁者见仁,智者见智了。一万个读者就会有一万个哈姆雷特,希望这篇文章能够给您带来一些思考。耐心看完,你一定会有所收获。

2024-09-13 17:54:11 402

原创 腾讯自研的 Git 客户端!!【送源码】

UGit 是一款为腾讯内部研发环境特点而定制的 Git 客户端,旨在提高开发效率和团队协作的流畅性。UGit 支持 macOS 10.11+、Apple Silicon 和 Win64 位系统。

2024-09-13 17:42:36 1312

原创 终端文件管理神器 !!!【送源码】

nnn是一款专为命令行爱好者打造的高效终端文件管理器。它以其超小的体积、几乎零配置的要求以及卓越的速度表现而著称。nnn不仅适用于Linux、macOS、BSD等操作系统,还能够在诸如树莓派、Android上的Termux、WSL、Cygwin等多个平台运行。它遵循POSIX标准,代码风格与Linux内核一致,确保了高质量的同时也为用户提供了丰富的功能和良好的用户体验。

2024-09-12 22:16:18 349

原创 这款神器,运维绝杀 !!! 【送源码】

CrowdSec 是一款开源的、基于社区协作的网络安全防护工具,它通过分析和共享IP信誉数据来对抗恶意行为。该软件不仅支持IPv6,而且相较于传统的Python实现,其采用Go语言编写,运行速度提升了60倍。CrowdSec 利用Grok模式解析日志,并通过YAML场景识别异常行为,为现代云服务、容器和虚拟机环境提供了有效的安全解决方案。

2024-09-12 22:11:10 532

原创 Reduce:一款开源的短网址平台!!【送源码】

今天给大家介绍一款开源的短网址平台,Coody Framework首秀,自写IOC、MVC、ORM、TASK、JSON、DB连接池、服务器。百毫秒启动,全项目仅2.5M(低配服可运行)。前端采用Amaze UI,后端采用Coody Framework MVC,数据库采用H2DB。

2024-09-11 22:28:22 252

原创 jcasbin:替代shiro的权限框架!!【送源码】

作为一名后台开发人员,权限这个名词应该算是特别熟悉的了。就算是java里的类也有 public、private 等“权限”之分。之前项目里一直使用shiro作为权限管理的框架。说实话,shiro的确挺强大的,但是它也有很多不好的地方。shiro默认的登录地址还是login.jsp,前后端分离模式使用shiro还要重写好多类;手机端存储用户信息、保持登录状态等等,对shiro来说也是一个难题。在分布式项目里,比如电商项目,其实不太需要明确的权限划分,说白了,我认为没必要做太麻烦的权限管理,一切从简。

2024-09-11 22:23:37 522

原创 Foliate:沉浸式阅读!!!【送源码】

Foliate 是一款开源的电子书阅读器,专为现代操作系统设计,提供了优雅且实用的阅读体验。它支持多种电子书格式,包括 EPUB、Mobipocket、Kindle、FB2、CBZ 和 PDF,让用户能够以分页或滚动模式阅读。Foliate 允许用户自定义字体、间距、边距和颜色方案,以适应个人的阅读偏好。此外,它还具备自动隐藏窗口控件的功能,以减少阅读时的干扰。

2024-09-10 22:22:12 293

原创 Supervision:你的可复用计算机视觉工具箱!!

② 数据处理:无论你需要从硬盘加载数据集,还是在图像或视频上绘制检测结果,或者将标签从一种格式转换为另一种格式,Supervision 都能帮你轻松搞定。你可以从本地加载数据集,也支持对你的数据集进行分割、合并等等。③ 数据集工具:Supervision 提供了一套工具,允许你在支持的格式中加载、分割、合并和保存数据集。推荐一个计算机视觉的工具箱,使用它你可以在你电脑上实现人体跟踪、分割、检测等一系列计算机视觉的场景。扫码回复【酒店】可免费领取酒店管理系统源码。

2024-09-10 22:18:56 307

原创 MaxK B:基于 LLM 大语言模型的知识库问答系统!【送源码】

通过 Docker 容器技术,用户可以快速启动并运行 MaxKB,实现知识库的快速构建和部署。此外,MaxKB 支持零编码快速嵌入到第三方业务系统,无论是内网环境还是云平台,都能轻松应对。MaxK B是一个基于 LLM 大语言模型的知识库问答系统,正是为了解决这一挑战而生。推荐一个基于大模型的企业级知识库问答系统,支持管理企业知识库、对话问答、RAG 等功能。企业知识管理的智能化革新在数字化时代,知识管理对于企业的重要性不言而喻。MaxKB 不仅仅是一个问答系统,它是企业知识管理的智能化助手。

2024-09-09 17:52:08 288

原创 减少 try...catch,定义全局统一异常处理器!【送源码】

软件开发springboot项目过程中,不可避免的需要处理各种异常,spring mvc 架构中各层会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。这样就需要定义个全局统一异常处理器,以便业务层再也不必处理异常。可以灵活的根据自己的业务异常进行更细粒度的扩展。扫码回复【酒店】可免费领取酒店管理系统源码。代码复制到项目中通过简单的配置即可实现。

2024-09-09 17:43:48 574

原创 解决SpringBoot 接口恶意刷新和暴力请求!!

代码中redis的使用的是分布式锁的形式,这样可以最大程度保证线程安全和功能的实现效果。代码中设置的是1S内同一个接口通过同一个ip访问5次,就将该ip禁用1个小时,根据自己项目需求可以自己适当修改,实现自己想要的功能;在实际项目使用中,必须要考虑服务的安全性,当服务部署到互联网以后,就要考虑服务被恶意请求和暴力攻击的情况,下面的教程,通过。在一定时间内访问的次数来将ip禁用,可以根据自己的需求进行相应的修改,来打打自己的目的;扫码回复【酒店】可免费领取酒店管理系统源码。最后将上面自定义的拦截器通过。

2024-09-08 14:25:06 376

原创 JWT和Session结合模式中的作用

即使JWT是无状态的,但在某些应用场景中,仅依赖JWT可能存在一些安全问题,例如Token的泄露或滥用。Session可以作为一个额外的安全层,确保Token即使有效,也必须在服务器的Session管理器中存在对应的会话。如果用户选择了“记住我”选项,Session可以记录这个状态,并在JWT过期后,通过Session来决定是否允许继续使用旧的Token。在某些场景下,追踪用户状态是必要的,例如监控用户的活跃度、登录历史等,这些信息可以通过Session进行管理。

2024-09-08 14:22:13 441

原创 Ollama—87.4k star 的开源大模型服务框架!!

Ollama 是一个开源的大语言模型(LLM)服务工具,它允许用户在本地环境快速实验、管理和部署大型语言模型。它支持多种流行的开源大型语言模型,如 Llama 3.1、Phi 3、Mistral、Gemma 2 等,并且可以通过命令行界面轻松下载、运行和管理这些模型。Ollama 的出现是为了降低使用大型语言模型的门槛,是让大型语言模型更加普及和易于访问。Ollama 是一个功能强大且易于使用的工具,它为本地部署和运行大型语言模型提供了一个简单而有效的方法。

2024-09-06 17:31:04 729

原创 MySQL 用哪种类型来存储日期时间呢?【送源码】

timestamp 记录经常变化的更新 / 创建 / 发布 / 日志时间 / 购买时间 / 登录时间 / 注册时间等,并且是近来的时间,够用,时区自动处理,比如说做海外购或者业务可能拓展到海外datetime 记录固定时间如服务器执行计划任务时间 / 健身锻炼计划时间等,在任何时区都是需要一个固定的时间要做某个事情。超出 timestamp 的时间,如果需要时区必须记得时区处理UNIX timestamps 使用起来并不是很方便,至于说比较取范围什么的,timestamp 和 datetime 都能干。

2024-09-06 17:05:17 849

原创 isEmpty 和 isBlank 的区别【送源码】

是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致。可以参考官方的文档,里面有详细的描述,有些方法还是很好用的.是否有一个为空,只有一个为空,就为true.是否真的不为空,不是空格或者空值 ,相当于。扫码回复【酒店】可免费领取酒店管理系统源码。, 必须所有的值都不为空才返回true。是否包含任何真空值(包含空格或空值)是否为真空值(空格或者空值)是否全部都不包含空值或空格。

2024-09-06 16:13:09 556

原创 又一个新的开源AI项目!!【送源码】

好家伙,国内大模型发展太猛了!旗舰端侧模型面壁「小刚炮」系列进化为全新 MiniCPM 3.0 基座模型,再次以小博大,以 4B 参数,带来超越 GPT-3.5 的性能,强得不像端侧模型。并且,量化后仅 2GB 内存,手机端都能跑!这还是一款瑞士军刀般全面开挂的基座模型,一口气带来:无限长文本,榜单性能超越 Kimi,超长文本也不崩;性能比肩 GPT-4o 的端侧最强 Function Calling;超强 RAG 外挂三件套,中文检索第一、生成超 Llama3-8B。🔗🔗。

2024-09-06 15:42:49 519

原创 面试官:谈谈你对 IoC 和 AOP 的理解!

IoC (Inversion of Control )即控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。例如:现有类 A 依赖于类 B传统的开发方式:往往是在类 A 中手动通过 new 关键字来 new 一个 B 的对象出来使用 IoC 思想的开发方式:不通过 new 关键字来创建对象,而是通过 IoC 容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面去取即可。

2024-09-04 22:27:43 1261

原创 JSON Hero:视图查看更简单!!【送源码】

是一个简单实用的 JSON 工具,通过简洁美观的 UI 及增强的额外功能,使得阅读和理解 JSON 文档变得更容易、直观。支持多种视图以便查看 JSON:列视图、树视图、JSON 视图等 列视图是受 macOS Finder 启发创建的一种浏览 JSON 文档的新方法。项目地址:https://github.com/jsonhero-io/jsonhero-webnpm start。

2024-09-04 22:04:11 178

原创 Explorer++:轻量级高效文件管理器!!

Explorer++ 是一款专为Windows操作系统设计的轻量级且高效的文件管理器。作为Windows资源管理器的强大替代方案,它提供了丰富的特性和优化的用户体验,使得文件管理和组织变得更加便捷高效。无论是专业用户还是普通用户,都能从中受益,享受到更加流畅的文件操作体验。

2024-09-03 21:30:05 406

原创 Apache Kafka UI :一款功能丰富且美观的 Kafka 开源管理平台!!【送源码】

对数据使用现成的 Serde。

2024-09-03 21:24:44 737

原创 SnailJob:分布式环境设计的任务调度与重试平台!【送源码】

SnailJob是一个为分布式环境设计的任务调度与重试平台,特点包括高灵活性、可靠性和效率。它采用分区模式实现核心功能,提供高度的可伸缩性和容错能力。同时,SnailJob具备完善的权限管理、强大的告警监控功能,并提供了用户友好的界面交互,确保了操作的简便性和系统的安全性。SnailJob通过其灵活高效的任务调度和重试机制,确保了业务的连续性和稳定性,同时高度可伸缩的分区模式支持了系统的容错性和扩展性。完善的权限管理和强大的告警监控保障了系统的安全性和可靠性,而友好的用户界面大大提升了操作的便捷性。

2024-09-02 17:57:26 551

原创 低代码为什么遭程序员嫌弃?

有时候,低代码平台难以适应特殊的业务需求或复杂的逻辑流程,使得开发过程困难且受限。此外,对于特定的业务需求,低代码平台可能无法提供足够的灵活性和可扩展性。低代码平台通常适用于简单和快速开发的场景,但对于复杂的项目或需要大量定制的项目来说,这种平台可能无法满足需求。对于已经熟悉传统编程语言和开发环境的程序员来说,学习新的低代码工具可能需要投入额外的时间和精力。低代码平台有优势也有劣势,具体能否在企业中应用,要看具体的场景,个人觉得在一些简单的场景中使用低代码平台也是不错的选择。低代码不是什么新鲜事物,

2024-09-02 17:53:00 582 1

空空如也

空空如也

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

TA关注的人

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