
朝花夕拾篇
文章平均质量分 76
智_永无止境
来和大家一起学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
吊打面试官系列:BeanFactory和FactoryBean的区别
面试造火箭,入职拧螺丝。这是候选人的进入职场的切身感受。坦白来讲,日常业务开发中根本没有什么用。但是如果涉及架构、脚手架、开发封装或者源码理解,却是大有用处。今天,我们来看一个高频面试题:`BeanFactory`和`FactoryBean`的区别。原创 2025-06-11 09:06:25 · 749 阅读 · 0 评论 -
吊打面试官系列:Spring为什么不推荐使用字段注入?
在开发过程中,肯定会使用依赖注入。大多数情况下会通过`@Autowired`注解作用在字段上,从而将`Bean`注入进来。但是`Spring`官网并没有推荐使用这种方式。包括我们常用的开发工具Idea,也会有警告提示。这是为什么呢?原创 2025-06-09 10:26:45 · 518 阅读 · 0 评论 -
揭秘自定义注解,背后的面向切面编程(AOP)的艺术
Target(ElementType.METHOD) // 注解用在方法上@Retention(RetentionPolicy.RUNTIME) // 运行时保留/*** 操作名称**//*** 内容**//*** 备注**/用来标记切点位置。@Aspect@Component/*** @Description: 切点**/try {// 封装日志信息// 请求参数// 异常信息// 操作// 内容// 备注// 插入日志信息。原创 2025-06-05 09:15:09 · 239 阅读 · 0 评论 -
解密Spring事务底层:你的@Transactional真的安全吗?
声明式事务的使用虽然入门简单,一个简单的注解就可以开启事务。但是`@Transactional`的属性影响着事务的控制,事务的声明也是有条件的,稍不注意就可能导致事务失效。我们一起来深入了解一下吧!原创 2025-05-30 09:20:35 · 275 阅读 · 0 评论 -
你还在用JDK8么?给你一个升级JDK17的理由,赶快升级!
JDK自从被Oracle收购以后,那升级的速度和手机更新换代一样快,2025 年 3 月 18 日不是才发布了JDK24么。这速度真的是让开发者来不及追赶,上一个版本还没有完全弄明白,下一个版本就已经发布了。我们一起看看JDK17里面都有什么可用原创 2025-05-13 09:30:44 · 1041 阅读 · 0 评论 -
Spring MVC父子容器背后的顺序关系
Spring的父子容器主要出现在Spring MVC时代,随着Spring Boot这位行业颠覆者的问世,以其简单的配置,快速搭建Web项目的能力,迅速取代Spring MVC的江湖地位。原创 2025-05-12 15:57:02 · 797 阅读 · 0 评论 -
惊!未实现Serializable竟让第三方接口回调全军覆没
序列化问题看似一个小小的问题,平时可能不注意,自己开发的时候要不要实`java.io.Serializable,心里可能都没有谱。一旦发生线上故障,那就是大问题。原创 2025-04-25 13:06:45 · 431 阅读 · 0 评论 -
SSE(Server-Sent Events)替代WebSocket实现直播间实时评论功能
SSE是一种用于实现服务器向客户端实时单向推送数据的Web技术。基于HTTP协议,允许[服务器](https://so.csdn.net/so/search?q=服务器&spm=1001.2101.3001.7020)将数据以事件流(Event Stream)的形式发送给客户端。客户端通过建立持久的HTTP连接,并监听事件流,可以实时接收服务器推送的数据原创 2025-04-25 09:30:26 · 1217 阅读 · 0 评论 -
基于WebSocket模拟直播间评论的实现
之前探索了一下直播间实时评论的的背后技术,这一节,我们将选用最经典WebSocket的模拟这一功能的实现。WebSocket可以基于`Netty`实现,也可以基于Springboot实现。原创 2025-04-23 10:13:56 · 727 阅读 · 0 评论 -
短信被截断?5分钟用Java打造企业级短链服务
最近做了一个项目,用户提交资料以后,审核完成后,需要短信通知用户,引导用户点击链接查看结果。简单的以为就是放一个链接就好了,结果再设计评审的时候,有老司机提出来:链接太长会被短信分成两条发送,需要用到短链接。通过短链接技术,企业不仅能解决基础的技术限制问题,更能深度挖掘数据价值、优化用户体验,最终实现降本增效与业务增长的双重目标。哈希值的的好处就是同一个链接生成的短码是相同的,哈希存在哈希冲突,不同的链接可能会生成相同的短码。其中短码的生成,可以自定义生成,也可以通过编码算法将原始链接转化成短码。原创 2025-04-18 14:41:36 · 1099 阅读 · 0 评论 -
京东外卖,探索「距离最近」排序背后的秘密
地理位置(`Geolocation`)距离的不再是简单的距离比较,而是实时的经纬度的计算。因为你在不同的地方,商家离你的位置都是变化的原创 2025-04-18 09:54:01 · 858 阅读 · 0 评论 -
邮件通知,引发的线上的S级故障
好的架构设计,报警通知必不可少。但是报警用不好,也会造成线上的S级故障。故障的等级各公司的定义标准不一样,总之S级故障在我们公司就是最高级别的故障,需要放下手头所有的事情,全力解决问题。这类故障类似的阿里的P0级故障。原创 2025-04-16 13:56:02 · 646 阅读 · 0 评论 -
3ms找出微信「共同好友」,揭秘其背后的技术推手
在微信里,关注了某个公众号或者进了某个群,经常会显示你有几个共同的朋友。这种功能是怎样实现的呢原创 2025-04-07 15:02:45 · 640 阅读 · 0 评论 -
完蛋,被扣工资了,都是JSON惹的祸
JSON是一种轻量级的数据交换格式,基于ECMAScript的一个子集设计,采用完全独立于编程语言的文本格式来表示数据。它易于人类阅读和编写,同时也便于机器解析和生成,这使得JSON在数据交换中具有高效性。原创 2025-03-25 15:58:21 · 409 阅读 · 0 评论 -
从 「WHERE 1=1」到架构规范:SQL动态查询的陷阱、性能黑洞与实战破局
SQL动态查询的陷阱优化,看似是简化逻辑的“技巧”,实则是隐藏技术债务的冰山一角。与其争论其利弊,不如推动团队采用更优雅的解决方案,从根源上规避问题。SQL注入漏洞:若未使用预编译(PreparedStatement),直接拼接用户输入原创 2025-03-19 11:24:01 · 569 阅读 · 0 评论 -
从配置文件到高薪Offer:「配置即薪资」进阶指南
在技术这个竞技场领域中,大环境竞争日益激烈,每一行配置代码都在为你的身价加码。从Properties到云原生配置中心,每个技术层级的跨越都对应着薪资的指数级增长。原创 2025-03-19 09:38:24 · 801 阅读 · 0 评论 -
当 DeepSeek 可以写代码时,程序员的终点是「被淘汰」还是「进化」
一场「有限游戏」向「无限游戏」的跃迁DeepSeek 替代程序员的命题,本质是“工具理性”与“人类主体性”的对抗。若将编程视为“写代码的有限游戏”,人类终将败北;但若将其升维为“用技术解决复杂问题的无限游戏”,程序员将永远是不可替代的“规则制定者”。未来的赢家,不是与 AI 赛跑的人,而是骑着 AI 飞翔的人。原创 2025-03-17 17:47:57 · 842 阅读 · 0 评论 -
手握宝刀屠龙Deepseek,分析线上故障
平时遇到故障或线上问题,无法快速定位问题,一堆报错信息,百度、谷歌、Bing等一通搜索找到类似的问题,然后通过搜索的结果逐步尝试找到解决方案。这些Deepseek都可以帮我们实现原创 2025-03-17 15:25:22 · 533 阅读 · 0 评论 -
程序员如何用代码思维玩转公众号排版?
公众号依托微信的用户的体量,不少爱好写作、文字记录的用户选择了此赛道。而自己写的时候,各种困难,行间距时宽时窄,对齐混乱,将好像在和自己作对似的,一言难尽。在人人都是自媒体的时代,抖音、快手、小红书、知乎、公众号、视频号等大爆炸的平台下,自媒体人各自选择了自己的赛道或者并驾齐驱,有一些大V已经年过百万或是财务自由了。下面我们就站在巨人的肩膀人直接使用开源的代码【WeChat Markdown Editor】,订制自己的公众号模板。好好的代码块,复制到公众号里,可读性就变的好差,无疑是技术人的恶梦。原创 2025-03-13 13:14:58 · 913 阅读 · 0 评论 -
Redis7系列:Redis Search 吊打 ElasticSearch
百万数据级搜索的王炸产品原创 2025-03-12 16:20:01 · 785 阅读 · 0 评论 -
Redis7系列: 用 1% 的内存解决 99% 的难题
在数据指数级增长的今天,Bloom Filter 和 HyperLogLog 展示了 「以空间换时间,以概率换资源」的哲学。它们不是银弹,但在特定场景下能实现传统技术无法企及的数量级突破。「是否能用概率换精度?答案或许就在这两个 Redis 黑科技中。END。原创 2025-03-11 17:47:37 · 784 阅读 · 0 评论 -
Redis7系列:设置开机自启
开启自启原创 2025-03-10 18:50:51 · 507 阅读 · 0 评论 -
Redis7系列:Redis Stream 全面解析
Redis Stream 是 Redis 5.0 引入的持久化消息队列数据结构原创 2025-03-10 16:19:50 · 1066 阅读 · 0 评论 -
Docker:颠覆开发与部署的革命性容器技术
你是否还在为「环境不一致」而抓狂?是否因「依赖冲突」而深夜加班?有没有想过像发送快递一样轻松部署应用?Docker,它用「容器化」技术将代码、环境、配置一键打包,让开发、测试、生产环境实现「零差异」同步,彻底告别「在我电脑上是好的」这种魔咒!原创 2025-03-07 17:51:02 · 375 阅读 · 0 评论 -
Redis7系列:Redis GEO解锁百万级地理位置数据的超能力
空间数据洪流时代,Redis GEO就像程序世界的空间折叠器。当其他数据库还在解析复杂GIS函数时,Redis已用一行命令为你打开虫洞——这才是真正为高并发而生的位置智能!原创 2025-03-06 17:57:31 · 1064 阅读 · 0 评论 -
Redis7系列:RedisJSON使用文档
RedisJSON 是 Redis 的扩展模块,支持原生 JSON 数据格式的存储和操作,提供高效的 JSON 路径查询语法(类似JSONPath)。原创 2025-03-06 10:55:48 · 630 阅读 · 0 评论 -
Redis7系列:Redis对决RedisStack
Redis 是一个开源的内存数据库,以高性能、低延迟著称,支持基础数据结构(如字符串、哈希、列表、集合、有序集合等),常用于缓存、消息队列、实时数据处理等场景。Redis Stack 是 Redis 的扩展版本,整合了 Redis 核心数据库与多个高级功能模块(如全文搜索、JSON 文档存储、图数据库、时间序列等),提供“一站式”解决方案,简化了复杂数据场景的开发。原创 2025-03-05 19:38:17 · 1472 阅读 · 0 评论 -
像调用接口一样调用第三方API
声明式与编程式双修,让天下没有难以发送的 HTTP请求。原创 2025-03-04 10:45:04 · 938 阅读 · 0 评论 -
线上追踪神器Arthas
Arthas阿里开源的Java诊断工具,支持动态追踪、实时监控、热更新等特性。通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。原创 2025-02-27 15:12:19 · 771 阅读 · 0 评论 -
Markdown文档神器Typora配置图床
为你的Markdown文档神器Typora配置图床,实现图片的自动上传,横跨所有写作平台,从此图片不丢失。原创 2025-02-26 18:36:34 · 362 阅读 · 0 评论 -
基于Netty的websocket的简单介绍
WebSocket」是一种在单个TCP连接上进行全双工通信的协议。「WebSocket」使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在「WebSocket API」中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。TCP连接是一种可靠的、面向连接的网络通信协议。它通过三次握手建立连接,然后通过数据包的传输和确认来保证数据的可靠性和顺序性。原创 2024-05-06 16:23:13 · 1667 阅读 · 5 评论 -
Sprinboot聚合项目归荑
在创建springboot项目时,都会有一个Main方法。如果将Springboot项目设计成聚合项目时,我们是不是要把所有的子项目都按照Springboot的方式创建呢?如果是会出现什么问题,以及我们怎么解决呢?如果我们使用maven项目+Springboot项目混合使用,会有什么问题呢?这些都是今天我们要探讨的问题。原创 2023-04-19 15:52:06 · 846 阅读 · 0 评论 -
TreeMap根据value排序遇到的问题及分析
1、前言针对集合排序,我们通常都会借助具有排序功能的集合,来处理我们的数据。比如ArrayList,TreeMap等。但是使用不同的排序工具,可能会遇到不同的问题。2、案例分析2.1 需求:根据HashMap中的数据,按照value排序。例如:/*排序之前的结果: key:value = a:3 key:value = b:5 key:value = c:1 key:value = d:4 key:value = e:2要求输出结果为: key:value = c:1.原创 2021-08-18 17:21:35 · 1462 阅读 · 0 评论 -
springboot集成webSocket实现网络实时通讯
1、前言 在很多业务场景中,对实时数据要求比较高,我们就不能采用轮训拉取的方式来获取数据了。就可以采用websocket的长链接的形式,实时有服务端或者客户端推送数据,已达到数据的实时展示。2、websocket简介SpringBoot官方推荐的基于STOMP实现,STOMP:即Simple Text Orientated Messaging Protocol,它是一个简单的文本消息传输协议,属于 WebSocket 的子协议, 提供了一个可互操作的连接格式,允许STOMP客户端与任意...原创 2020-08-04 16:37:46 · 3619 阅读 · 1 评论 -
IntelliJ IDEA的基本配置以及插件
1、前言终于放弃Eclipse,拥抱Idea了。idea的提示更友好一下,但是代码检查非常严格。同样的代码在eclipse上能跑起来,在idea上可能就会多一写编译的处理。可能是因为是新手,所以使用的时候有点障碍。对于新的开发工具,还是要尝试去玩玩的。这里记录下一些基础的配置,方便我们开发的使用。2、Eclipse 和Idea 的区别 不管哪一种软件,对于我们来说都是服...原创 2020-03-11 18:09:50 · 1214 阅读 · 2 评论 -
Springboot集成aop的简单使用
1、前言 之前看到别人写的代码,没有设置任何东西,发现结果值变化了。比如,插入和修改数据的时候经常记录操作人的信息。不用设值,入库就会有操作人的信息。还有其他一些日志、监控等。这都是采用了aop切面的方式。2、依赖引入<!-- 切面 --><dependency> <groupId>org.springframework.boot&...原创 2019-11-08 10:01:21 · 717 阅读 · 0 评论 -
springboot集成Mail邮件,发送邮件
1、前言 企业中,需要我们对一些数据进行监控,或者将数据导出发给指定的人。简单的通知采用的短信的形式,但是复杂的数据导出给其他人,就会采用邮件的方式。并且这样成本比较低。Spring框架本身提供了Mail的支持,当然目前流行的springboot框架对邮件的支持更加友好。下面以springboot集成Mail为例。2、引入依赖<!-- 邮件 --><de...原创 2019-11-07 17:31:17 · 988 阅读 · 0 评论 -
logback的简单使用
1、前言查了很多资料,都说logback的性能都要比log4j的性能要好,logback逐渐要取代log4j。今天对logback作一个简单的整理。2、logback的依赖坐标<!-- <dependency> <groupId>org.slf4j</groupId> <artifactId&...原创 2017-05-24 17:23:29 · 25383 阅读 · 0 评论 -
LOG4J打印mybatis问题
1、前言在项目调试中,常常会发现获取数据库的数据。为了找原因,是否是SQL异常,我们就需要根据执行的SQL判断是不是有问题,从而解决问题。了解了一下log4j的配置,这里记录下来。2、log4J的依赖<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.原创 2017-04-28 14:34:01 · 821 阅读 · 0 评论 -
springmvc 框架中的数据的绑定:@InitBinder&@DateTimeFormat()
1、前言表现层经常会接受页面表单的数据,springmvc框架提供了封装javaBean的功能,但是针对一些特殊的属性,则不会自动封装(比如java.util.Date类型),需要我们自行绑定。这里介绍两种解决的办法:@InitBinder&@DateTimeFormat()2、@DateTimeFormat()绑定Date类型@DateTimeFormat()实现数据的绑定比...原创 2017-04-27 17:19:31 · 2919 阅读 · 0 评论