自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nextera的博客

点点滴滴,日月星辰

  • 博客(51)
  • 收藏
  • 关注

原创 别再堆 if-else 了!Flowable 工作流引擎,让你彻底告别手写审批流的烦恼

简单来说,Flowable 是从 Activiti “分支”出来的一个项目,而且是由 Activiti 的核心开发者们创建和维护的。你可以把它们想象成两兄弟,Activiti 是哥哥,Flowable 是弟弟。在发展的过程中,弟弟 Flowable 显然更有活力,社区更活跃,功能迭代也更快,尤其是在与 Spring Boot 等现代技术栈的整合上,表现得更为出色。Flowable 的功能远不止于此,它还支持并行网关、子流程、动态流程等等强大的功能。

2025-08-07 06:52:09 1313

原创 从“跑批”到“智能调度”,Spring Batch 核心与实战深度解析

默认情况下,只要你引入了 Spring Batch 的依赖,并且配置了数据源(DataSource),这个机制就自动生效了。你会惊奇地发现,它不会从 "Item 1" 开始打印,而是会跳过已经成功处理的部分,从失败的那个 chunk 开始重试。记住,Spring Batch 不是一个简单的“for 循环”,它是一个工业级的、健壮的、功能完备的批处理解决方案。掌握了它,无论是处理日常的数据报表,还是进行大规模的数据迁移,你都能游刃有余,成为团队里那个“靠谱”的仔。:这是第一步,也是最重要的一步。

2025-08-06 08:12:31 1061

原创 别再造轮子了:用 Spring Batch 构建企业级批处理作业的终极指南

Spring Batch 远不止是一个工具,它是一种经过千锤百炼的批处理编程思想和最佳实践的集合。将开发者从繁琐的底层技术细节中解放出来,专注于实现核心业务价值。当你面临海量数据处理需求时,请抵制住从头编写while循环和手动管理线程的诱惑。拥抱 Spring Batch,你将获得一个更稳定、更健壮、更易于维护和扩展的企业级解决方案。

2025-08-05 06:30:47 1138

原创 DeepSeek-Coder-V2:开源代码智能新标杆,比肩GPT-4 Turbo,上下文长度飙升至128K!

近年来,代码人工智能领域取得了显著进展,但闭源模型如GPT-4 Turbo、Claude 3 Opus和Gemini 1.5 Pro一直占据着领先地位。如今,DeepSeek-AI自豪地推出了,一个强大的开源混合专家 (MoE) 代码语言模型,旨在弥补这一差距,甚至在特定任务中超越这些顶尖闭源模型。DeepSeek-Coder-V2不仅在性能上实现了重大突破,还以其开源特性和强大的功能组合,为开发者和研究者社区带来了前所未有的机遇。

2025-08-04 11:06:05 1044

原创 我把140GB的互联网塞进大脑后,才知道这些秘密……

从一个只会预测下一个词的“傻瓜”,到能够调用工具、深度思考、甚至可能实现自我提升的“新物种” ,AI的进化速度超乎想象。它既是我们的超级助手,也是一个充满未知和挑战的新领域。看完这些,你还觉得AI只是个简单的聊天工具吗?不,一个全新的“操作系统”时代已经来临,而我们每个人,都是这个时代的亲历者。

2025-08-03 06:48:09 745

原创 别再写“又臭又长”的 if-else 了!LiteFlow 给你的项目来点魔力

怎么样,LiteFlow 是不是有点东西?它把我们从繁琐的流程代码中解放出来,让我们更专注于业务逻辑本身。通过结合 Nacos 等配置中心,更是实现了动态、可观测、可编排的“代码魔法”。如果你还在被if-else搞得头皮发麻,不妨试试 LiteFlow,它绝对能让你的项目焕然一新,也能让你在团队里脱颖而出。赶紧动手试试吧!

2025-08-02 08:58:13 1099

原创 一个月玩转 PyTorch:从 Tensor 到模型部署的 30 天全攻略

学习 CNN 的核心组件:卷积层(Convolutional Layer)、池化层(Pooling Layer)和通道(Channels)。: 将模型、损失函数和优化器组合在一起,形成一个完整的训练流程:前向传播 -> 计算损失 -> 清零梯度 -> 反向传播 -> 更新参数。: TensorBoard 是一个强大的可视化工具,可以用来监控训练过程中的损失、准确率、网络图、图像等。: 将前一天的理论应用于实践,例如,在一个小型的自定义花卉或动物数据集上微调一个预训练的 ResNet。

2025-08-01 07:49:57 1197

原创 告别繁琐 CSS!Tailwind CSS 20天重塑你的前端开发工作流 (React/Vue 实战版)

apply实战练习: 使用@apply创建一个.btnclass。CSS 代码 (React/Vue 使用</button>实战练习: 添加自定义品牌颜色。代码theme: {extend: {colors: {brand: {},},},},React/Vue 使用</div>

2025-07-31 07:04:30 1057

原创 告别内存泄漏:你的Rust语言30天征服计划

例如:一个简单的命令行待办事项应用、一个TCP端口扫描器、一个简单的Web服务器。再声明一个同名的可变变量,记录字符串的长度。然后遍历这个vector,将每个元素乘以2,并将结果存储在一个新的vector中。块,创建一个指向整数的裸指针,并解引用它来读取值。表达式的最后一个值若不带分号,则会作为函数的返回值。: 编写一个程序,进行一些基本的数学运算,比如整数加法和浮点数除法,并将结果打印出来。: 如果不想转移所有权,可以创建值的“引用”,这被称为“借用”。,并返回它找到的第一个单词的切片。

2025-07-30 09:21:26 1259

原创 王者风范:深入解析Erlang的并发哲学与RabbitMQ实战

模式匹配的威力在函数定义中体现得淋漓尽致。我们可以为同一个函数编写多个子句(Clause),每个子句都带有一个模式。Erlang会根据传入的参数,从上到下依次尝试匹配,并执行第一个匹配成功的子句。这个阶乘函数的例子清晰地展示了如何使用模式匹配来处理基本情况()和递归情况。when关键字则引入了卫语句(Guard),为模式匹配提供了额外的条件判断。图:函数子句的匹配过程宏通过-define指令定义。通常,我们会用宏来定义常量或者简单的函数式代码片段。run() ->?Result =?OK,?

2025-07-29 17:48:13 972

原创 别再写“面条代码”了!Spring 大神级设计模式指南

让我们来写一个简单的 AOP 切面,用于记录所有 Service 层方法的执行时间。1. 添加 AOP 依赖在pom.xml中确保有。2. 创建一个注解3. 编写切面类@Aspect@Component// 环绕通知,拦截所有标注了 @PerformanceLog 的方法// 调用原始方法4. 在业务代码中使用@Servicetry {// 模拟业务耗时现在,每次调用方法时,Spring 都会通过代理先执行的逻辑,你会在控制台看到方法的执行耗时,而。

2025-07-28 13:40:54 1214

原创 别再被骗了!揭秘MySQL中VARCHAR(N)与INT(M)的真正含义

类型存储内容占用空间 (假设纯英文)解释'test'1 (长度) + 4 (内容) = 5 字节变长,按需分配'test'1 (长度) + 4 (内容) = 5 字节变长,与相同INT(1)994 字节定长,与M无关INT(10)994 字节定长,与INT(1)相同。

2025-07-27 17:26:44 1267

原创 MySQL COUNT(*) vs COUNT(1) vs COUNT(column):世纪之争,谁才是性能之王?

COUNT(*)

2025-07-27 16:56:29 1318

原创 揭秘Spring Boot Starter 黑魔法:从 Hello World 到精通

嘿,哥们儿!日常搬砖时,是不是经常在pom.xml然后,神奇的事情发生了——MyBatis的Mapper接口能直接注入了,Knife4j的API文档界面自动就绪了。你有没有那么一瞬间,挠着头问自己:“如果你和我一样,对技术背后的“为什么”充满好奇,渴望成为团队里那个能解决棘手问题的大佬,那么,恭喜你,来对地方了。

2025-07-25 10:17:45 1352

原创 别再羡慕 Python 了!Spring AI 解析:从入门到 RAG 实战

嘿,各位 Javaers!最近一两年,AI 的浪潮席卷了整个技术圈。每当看到隔壁 Python 工程师用几行代码就调用了 GPT-4,实现了各种酷炫的 AI 功能时,你是不是也曾默默地羡慕过?一边是 Python 生态(比如 LangChain、LlamaIndex)的如火如荼,另一边是我们 Java 世界的“稳如老狗”。我们不禁要问:难道在 AI 时代,Java 真的慢了一步吗?现在Java AI 的官方神器“Spring AI”, 已来,赶紧加入吧。

2025-07-24 10:02:05 1279

原创 Spring Boot全局异常处理:一网打尽Controller层异常,@RestControllerAdvice解析

全局处理控制器异常响应体自动序列化(JSON/XML)2、异常处理优先级Controller局部处理器 > 全局处理器具体异常 > 通用异常3.最佳实践// 返回明确HTTP状态码// 使用ResponseEntity精确控制响应// 自定义响应头等复杂操作4、生产环境建议禁用敏感错误信息(spring.mvc.include-error-details)自定义错误码体系异常国际化支持So, 当再次处理错误时,应该能独挡一面了。

2025-07-23 19:05:34 538

原创 Spring 7.0 M7 重磅发布:虚拟线程、AOT 增强

正式发布!这不仅仅是一次常规的版本迭代,更是 Spring 拥抱现代化 Java、迈向更高性能并发模型的关键一步。作为 Spring 6 的继任者,Spring 7 承载了社区的巨大期望,而 M7 版本则让我们清晰地看到了未来的轮廓。

2025-07-22 08:18:39 1989

原创 别再滥用 WebSocket!Spring ResponseBodyEmitter 才是某些场景的银弹

嘿,EveryDeveopers,一提到这个,很多人的第一反应可能是:“上 WebSocket!没错,WebSocket 功能强大,提供了全双工通信,非常适合做聊天室、在线游戏这类应用。但它就像一把牛刀,你总不想用它来切水果吧?在很多“服务器到客户端”的单向推送场景中,引入 WebSocket 不仅增加了复杂性,还可能带来不必要的资源开销。那么,有没有更轻量、更原生的解决方案呢?当然有!,就是 Spring 框架为我们提供的一把锋利的“水果刀”。

2025-07-21 13:57:50 1853

原创 Missing API key * run /login, Claude code 报错

kimicc 通过设置claude 的API_URL, API_KEY, 来达到使用claude 的目的。so, 现在你就可以愉快的玩耍了。

2025-07-21 09:43:31 4575 1

原创 别再死记硬背了!来扒一扒Java动态代理与CGLIB

代理模式是一种在不修改原代码的情况下增强对象功能的设计模式。JDK动态代理是Java官方的、基于接口的实现。它要求目标类必须实现接口,通过来织入逻辑。CGLIB是一个强大的第三方库,基于继承实现。它可以代理没有实现接口的普通类,通过来织入逻辑,但无法代理final类或方法。默认使用CGLIB来实现AOP,因为它更强大、更一致。像@Cacheable等注解的背后,都是动态代理在默默付出。

2025-07-20 20:38:00 1306

原创 SpringBoot 3.0 挥别 spring.factories,拥抱云原生新纪元

假设我们正在编写一个。

2025-07-19 19:35:14 1511

原创 探秘JDK21 Integer源码:bitCount与前导零的魔法优化术

数二进制中有多少个0(比如 001010 → 返回2):数二进制中有多少个0(比如 101000 → 返回3):数二进制中(比如 101101 → 返回4)这些方法被广泛用于位运算、压缩算法、哈希计算等场景,JDK的实现堪称教科书级优化!

2025-07-18 10:00:12 1124

原创 JDK21 getChars 源码深度剖析:整数转字节的极致艺术

getChars。

2025-07-17 10:47:49 1063

原创 JDK21 Integer 源码剖析:聊聊大神们在整数上玩的那些“骚操作”

我们今天只是探索了Integer缓存高频数据,用空间换时间,这是提升性能最直接有效的手段之一。stringSize条条大路通罗马,但有些路就是快得多。要敢于用看似“笨拙”但极度高效的if-else替代复杂的数学运算。代码是冰冷的,但优秀的代码背后,是工程师对性能的极致追求和对计算机体系的深刻理解。下次当你再写下时,希望你能会心一笑,想起它背后那些默默无闻但功勋卓著的“骚操作”。有空多逛逛 JDK 源码,你会发现一个全新的、充满惊喜的世界!

2025-07-16 10:02:24 1128

原创 SpringBoot3:应对C10K并发挑战的优化指南

好了,哥们,一口气说了这么多,我们来捋一捋。开启虚拟线程:这是最核心的一步,解决了I/O阻塞的根本问题。压榨数据库连接池:用小而快的连接池,配合高效SQL,实现高周转。调优Web服务器和JVM:把基础打牢,别让它们拖后腿。代码层面优化:异步化CPU密集任务,善用缓存。画个图总结一下:性能优化没有银弹。它是一个系统工程,需要你从上到下,从配置到代码,全面地进行分析和调整。希望这篇能帮你在下一次性能挑战中,成为那个最靓的仔!开干吧!

2025-07-15 09:18:24 1103

原创 PostgreSQL(PG) 17 都来了,你还在死磕 MySQL 吗?

如果你的业务是简单的 CRUD,读多写少,MySQL 足够快也足够好。但如果你的业务涉及复杂查询、多维数据、高数据一致性要求,或者你想在数据层做更多文章,那 PostgreSQL 绝对是你的“升维”之选。

2025-07-14 07:23:50 2022

原创 Rust语言:为何它能终结“悬垂指针”的噩梦?

在过去的几十年里,软件开发者们一直在与一个幽灵般的敌人作斗争:内存安全问题。C和C++等语言为我们提供了无与伦比的性能和底层控制能力,但代价是开发者必须手动管理内存,这常常导致悬垂指针、缓冲区溢出和数据竞争等难以追踪的Bug。然而,一门名为Rust的语言正在改变这一现状。它承诺提供C++级别的性能,同时通过一套创新的编译时检查机制,从根本上杜绝这些内存错误。Rust不仅仅是一门新的编程语言,它代表了一种构建可靠、高效软件的新范式。

2025-07-13 07:48:31 919

原创 Grok4 来了, Cursor,Gemini 亚历山大

推理能力:Grok4在数学和科学推理上领先GPT-5、Gemini 2.5 Pro和Claude 4 Opus。多模态处理:其图像与文本结合能力优于GPT-5和Claude 4 Opus。速度:推理速度快于ChatGPT,提升了效率。成本:价格高于竞品,可能影响普及率。

2025-07-12 09:03:10 1099

原创 MyBatis-Flex: 优雅永不过时, 你值得拥有

想象一下 MyBatis 的灵活 + APT,揉在一起,就是 MyBatis-Flex!它的核心卖点:无 XML!无 XML!无 XML! 重要的事情说三遍!所有 SQL 动态生成都在 Java 代码里搞定,告别繁琐的 XML 配置和手写 SQL 语句(当然,复杂 SQL 想写也支持)。超灵活的 QueryWrapper: 基于 Lambda 表达式构建查询条件,链式调用,类型安全,代码即 SQL,IDE 智能提示爽歪歪。再也不用怕字段名拼错了!极致性能: APT(Annotation Processing

2025-07-11 10:04:07 1364

原创 数据才500万就顶不住了?别慌,一文带你彻底搞懂分库分表

回到最初的问题:500万数据,如何设计和查询?评估瓶颈:首先确认是“行太多”导致的性能问题,确定需要水平拆分。设计方案选好分片键:这是重中之重,选你最核心、最常用的查询ID,比如user_id。定好路由算法:对于大多数场景,是个不错的开始。预估未来数据量,把N定得大一些(如16, 32, 64)。决定分库还是分表:初期可以只分表,当数据库实例本身成为瓶颈时,再上分库。改造查询带分片键的查询:由中间件或代码逻辑自动路由到正确的表。不带分片键的查询:坚决避免全量扫描!通过建立“索引表”或引入“”来解决。

2025-07-11 07:53:25 702

原创 深入浅出 Golang:一次精神之旅

好了,我们从最基础的语法一路聊到了 Go 并发编程的精髓和强大的生态。对于初学者,Go 语法简单,学习曲线平缓,能快速上手并获得正反馈。对于专家,Go 通过 Goroutine 和 Channel 提供了一流的并发编程模型,通过接口实现了优雅的解耦和组合,是构建高性能、高可用的后端服务、微服务和云原生应用的利器。它可能没有某些语言那么多的语法糖,但它的“少即是多”哲学,让你可以专注于解决问题本身,而不是语言的复杂性。

2025-07-10 07:08:18 1238

原创 DragonLang:来,跟仓颉学两招,奇思妙想

清晰、现代的语法是门面:仓颉的let/var区分可变性、func定义函数、做类型标注,这些都是从 Rust、Swift 等现代语言里吸取的精华。咱的龙语言也“借鉴”了这点,让它看起来很专业。静态类型是安全保障:仓颉是静态类型语言,在编译时就能检查出大量的类型错误。这对于大型项目和系统级编程至关重要。咱也给龙语言加上了类型标注,就是这个道理。拥抱强大的工具链:仓颉的成功,离不开背后可能的 LLVM。它让我们不用从零开始写代码优化和多平台支持。

2025-07-09 07:13:01 945

原创 K8S继续:进阶之路 —— 升级打怪指南

前面说的 ,虽然能暴露服务,但功能比较阳春。如果你有几十个服务都想通过域名(比如 , )对外提供服务,难道要给每个服务都配一个昂贵的云厂商 LoadBalancer 吗? 就是来解决这个问题的。它不是一个服务,而是一套路由规则,工作在 HTTP/HTTPS (L7) 层。它就像一个超级智能的网关,能根据你访问的域名或 URL 路径,把流量精准地转发到不同的 上。要使用 Ingress,你通常需要先在集群里装一个 Ingress Controller(比如 或 ),它才是真正干活的那个程序。一句话总

2025-07-09 06:56:25 958

原创 来聊聊K8s:从入门到“卧槽”的奇妙漂流

在 K8s 里,我们用 YAML 文件来描述我们想要的“状态”。

2025-07-08 09:24:08 871

原创 仓颉编程语言:从入门到精通

仓颉这门语言,野心不小。它想在性能、安全、开发爽度这三个点上,找到一个完美的平衡。它吸收了过去这些年编程语言发展的精华,就是为了给未来的软件开发(特别是系统和云原生这块)打个好底子。学仓颉,不光是学个新语言,更是了解一下现在软件开发都在愁啥、有啥新招。现在上车,绝对是早期股东,一起见证它牛逼就完事儿了!

2025-07-08 08:04:56 1946 1

原创 Arthas上手指南,分分钟让你成为专家

哥们儿,当Java码农的,是不是老碰到这种让人头大的事儿:“卧槽,线上那接口咋突然卡成PPT了?快看看是不是你小子写的bug!“那个配置好像搞错了,能不重启就给我改了不?急,在线等!“有个bug绝了,只在线上才出来,日志跟个哑巴似的啥也不说,咋整?想加个日志看看?得改代码、打包、发布,一套流程下来黄花菜都凉了。重启大法好?老板的电话马上就到。这时候,你就需要一个“黑科技”神器,不用重启服务,不用改一行代码,直接在线“干”它!(阿尔萨斯) 就是这么个玩意儿,阿里大佬们搞出来的。

2025-07-07 08:14:35 1307

原创 Elasticsearch 为何如此之快?深度剖析其性能奥秘

Elasticsearch之所以能跑得这么快,那可不是随便说说的!它靠的是倒排索引这个核心数据结构,还有基于Lucene的段机制(包括它的“不变性”、刷新和合并策略)带来的准实时能力,再加上分布式架构(分片和副本)提供的横向扩展和高可用性,还有3级缓存,如页 缓存(OS)、分页请求缓存,查询缓存,这些东西加起来,才有了它今天的速度!除此之外呢,自定义路由Bulk API查询上下文和过滤上下文的区分Doc Values的应用、映射优化缓存机制。

2025-07-07 07:49:33 1542

原创 基于springboot的文件上传系统:重新定义大文件传输的可靠性边界

一个好的文件上传系统,更是一个可观测的文件上传系统。@Service// 核心业务指标.description("文件上传总数")// 注册Gauge指标.description("活跃连接数").description("总存储大小(字节)")一个文件上传系统的实现,更是对现代文件传输需求的深度思考。通过分块上传、批量处理、全栈监控和智能去重等技术手段,展示了如何构建一个真正可靠、可观测、可扩展的文件上传系统。分块上传:5MB默认分块,支持并发上传和断点续传。

2025-07-06 06:43:32 767

原创 springboot3.5 MySQL 自动装配解析

1、自动配置:DataSourceAutoConfiguration2、驱动加载: SPI(机制)

2025-07-05 09:49:48 414

原创 Relying upon circular references is discouraged and they are prohibited by default

RequiredArgsConstructor,@Lazy,避免。找出依赖关系,不要@Autowired, 通过构造注入, 或者。直接在application.properties。

2025-07-04 14:32:31 243

空空如也

空空如也

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

TA关注的人

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