自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

于琦海

会一点编程,懂一点体育,喜欢点音乐

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

原创 吃透Spring源码分析专题

Spring源码分析,讲述了Spring的IOC和AOP,包含事务、Bean的初始化、三级缓存等概念。同时对日常开发中的问题进行汇总,从源码角度讲解和剖析

2023-10-23 15:35:23 1468

原创 JSR-133/Java内存模型(JMM)规范

JSR-133是Java内存模型(Java Memory Model,简称JMM)的规范,旨在解决Java并发编程中的内存可见性和指令重排序等问题。JSR-133主要规定了Java程序中多线程访问共享变量时的行为,以及编译器和JIT编译器对Java程序的优化方式。具体来说,JSR-133主要做了以下几件事情:1. 确定了Java内存模型的规范,包括内存可见性、原子性、顺序性等方面。2. 规定了volatile变量的语义和使用方法,使得它们可以保证内存可见性。

2023-06-01 10:46:39 1315

原创 Langchain/LangGraph结构化输出

invoke()这样可以确保LLM始终返回有效的JSON,而不需要手动解析和验证。

2025-11-18 11:41:06 185

原创 Docker Desktop在MAC上无法强制关闭的命令清理方式

摘要:该命令序列用于强制终止Docker Desktop及其所有相关进程(包括backend、virtualization、build和extensions组件)。执行后等待3秒检查状态,发现大多数Docker进程已终止,仅剩系统级的com.docker.vmnetd网络守护进程仍在运行。如需完全清理,建议使用sudo权限终止该残余进程。整个过程实现了Docker Desktop的主程序关闭,但部分系统服务需要额外操作才能完全停止。

2025-10-14 10:12:00 501

原创 Anthropic的构建AI Agent技巧

本文总结了Anthropic关于构建AI Agent的核心观点:AI Agent是能自主执行复杂任务的系统,其关键在于处理未知路径。构建时应从小功能开始,建立反馈循环和测试机制,避免过度工程化。企业级应用(如流程自动化)比消费者应用更具潜力,建议采用渐进式开发策略。技术架构需考虑环境定义、信息持久化和多Agent协作。关键警示包括:避免系统依赖特定模型性能,2025年企业AI Agent采用将显著增长。开发者应优先识别重复任务,建立测试框架,构建适应性强的基础设施。

2025-09-28 11:22:02 526

原创 CLI命令行无法使用Claude code等工具问题

终端无法连接网络可能是由于未设置代理

2025-07-14 09:35:32 734

原创 Liunx服务器查看程序的日志命令

Linux日志查询命令介绍和使用

2023-12-21 11:17:28 1621

原创 Mybatis-Plus的分页语句流程保姆级分析(四)

mybaitsPlus的分页流程源码分析

2023-12-21 11:08:31 1202

原创 Mybatis Plus的sql语句执行分析(三)

MybatisPlus源码分析之sql语句执行过程

2023-12-12 09:36:32 1733

原创 Mybatis-Plus源码解析之MybatisPlusAutoConfiguration(二)

mybatis-plus源码解析MybatisPlusAutoConfiguration

2023-12-12 09:33:51 2751

原创 Mybatis-Plus源码解析之@MapperScan(一)

Mybatis-plus之MapperScan源码解析

2023-12-11 11:21:40 3156

原创 Nginx访问FTP服务器文件的时效性/安全校验

nginx对接口返回进行验证和特殊处理

2023-12-11 11:18:06 1936

原创 Spring事务之AOP导致事务失效问题

SpringAOP导致事务失效问题解决

2023-11-14 09:10:33 1697

原创 Spring事务之@EnableTransactionManagement

@EnableTransactionManagement源码解析,本文主要介绍注解是怎么开启事务的。

2023-11-13 15:31:05 10779

原创 Spring定时任务@Scheduled为什么会让切面失效

Spring自带的定时任务让AOP失效的解决方案

2023-11-13 15:25:26 857

原创 Mac-Java开发环境安装(JDK和Maven)

macOS安装MacOS安装MacPro安装JDK、安装Maven。解决重启terminal无法生效问题,解决maven不走私服的问题。

2023-11-01 16:06:37 7038 1

原创 Spring@Lazy是如何解决构造函数循环依赖问题

Spring@Lazy是如何解决构造函数循环依赖问题

2023-10-30 12:41:15 1330

原创 SpringAOP源码解析之TargetSource(四)

在Spring框架中,TargetSource是一个接口,用于封装获取目标对象(也就是被代理的对象)的逻辑。它的主要作用是提供代理对象使用的目标对象,并且允许在运行时动态地切换目标对象。TargetSource在Spring的AOP(面向切面编程)中非常重要,它定义了代理对象的目标是谁以及在何时获取目标对象。具体来说,TargetSource接口定义了以下两个方法:getTarget():这个方法用于获取目标对象。

2023-10-26 10:30:45 852

原创 SpringAOP源码解析之advice执行顺序(三)

SpringAOP通知的执行顺序,Advice执行顺序,切点Aspect的排序。

2023-10-26 10:29:12 781

原创 SpringAOP源码解析之advice构建排序(二)

SpringAOP中Aspect类中Advice的排序过程源码分析

2023-10-25 09:08:55 557 1

原创 SpringAOP源码解析之基础设施注册(一)

SpringAOP的开始,从@Import(AspectJAutoProxyRegistrar.class)开始,本章主要讲解SpringAOP和AspectJ的区别,以及源码中SpringAOP是如何注册核心类

2023-10-25 09:05:38 390

原创 Spring实例化源码解析之循环依赖CircularReference(十三)

在Spring中是默认支持循环依赖的,至于怎么解决的循环依赖问题,就是本章要探讨的内容。包含spring实例化的详细过程

2023-10-24 09:09:01 745 2

原创 Spring实例化源码解析之Bean的实例化(十二)

本章开始分析finishBeanFactoryInitialization(beanFactory)方法,直译过来就是完成Bean工厂的初始化,这中间就是非lazy单例Bean的实例化流程。ConversionService在第十章已经提前分析了。重点就是最后一句,我们的bean实例化分析就从这里开始。本章主要是实例化流程的分析,不会太深入到细节// ConversionService(转换服务)在spring框架中用于处理类型转换的任务。它提供了一种统一的方式来执行各种类型之间的转换操作,

2023-10-24 09:04:57 346

原创 Spring实例化源码解析之FactoryBean(十一)

FactoryBean其实在registerBeanPostProcessors期间就被实例化了,关于FactoryBean的作用和用法在这篇文章已经有了讲解,本章主要分析FactoryBean的实例化流程。

2023-10-23 15:38:14 239

原创 Spring实例化源码解析之ConversionService(十)

ConversionService(转换服务)是Spring框架中的一个核心接口,用于在不同类型之间进行转换和格式化操作。它提供了一种统一的方式来处理对象之间的类型转换,以及将数据从一种表示形式转换为另一种表示形式

2023-10-10 16:17:28 947

原创 冒泡排序/鸡尾酒排序

冒泡排序是一种简单的排序算法,它通过多次交换相邻元素的位置来实现排序。鸡尾酒排序的基本思想是从序列的起始位置开始,通过比较相邻元素的大小并交换它们的位置,将较大的元素逐渐“冒泡”到序列的末尾。

2023-10-10 16:15:10 868 1

原创 seata分布式事务理论概述

分布式事务产生的原因:数据库分库分表应用的SOA化。就是业务的服务化(面向服务架构)分布式事务的解决方案:1、两阶段提交协议2PC这里的两阶段提交和redolog binlog的两阶段提交不是一个东西,redo log和bin log的两阶段提交保证的是什么?第一阶段:表决阶段,所有的参与者(本地资源管理器)都将本事务能否成功的信息反馈给协调者(事务协调器)第二阶段:执行阶段,协调者根据所有参与者的反馈,通知所有的参与者,步调一致地在所有分支上提交或者回滚这里衍生出两个角色:协调者和参与者。

2023-10-09 15:59:33 194

原创 LENGTH() vs CHAR_LENGTH()

在Oracle和MySQL数据库中,计算字符串长度的函数有一些区别。以下是CHAR_LENGTH、LENGTH以及其他常见的计算长度函数在Oracle和MySQL中的区别和示例

2023-10-09 15:50:04 855

原创 Spring实例化源码解析之Custom Events下集(九)

在ApplicationContext中,事件处理通过ApplicationEvent类和ApplicationListener接口提供。如果将实现ApplicationListener接口的bean部署到上下文中,每当一个ApplicationEvent被发布到ApplicationContext时,该bean将被通知。本质上,这是标准的观察者设计模式。

2023-10-08 15:00:23 443

原创 Spring实例化源码解析之Custom Events上集(八)

在ApplicationContext中,事件处理通过ApplicationEvent类和ApplicationListener接口提供。如果将实现ApplicationListener接口的bean部署到上下文中,每当一个ApplicationEvent被发布到ApplicationContext时,该bean将被通知。本质上,这是标准的观察者设计模式。

2023-10-08 12:35:34 312

原创 Spring实例化源码解析之MessageSource(七)

initMessageSource(MessageSource)主要作用是初始化国际化文件。在Spring框架中,消息源用于提供本地化消息,例如错误消息或用户界面文本,以便支持国际化和本地化。

2023-10-07 15:32:35 850

原创 插入排序/折半插入排序

折半插入排序(Binary Insertion Sort)是一种基于插入排序的排序算法。它的思想是将待排序的序列分为已排序区和未排序区,然后逐个将未排序区的元素插入到已排序区的适当位置,使整个序列保持有序。插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

2023-10-07 12:01:53 631

原创 Spring实例化源码解析之registerBeanPostProcessors(六)

BeanPostProcessors的作用是在Bean的初始化过程中提供额外的处理逻辑。通过实现BeanPostProcessor接口并注册到Spring容器中,开发人员可以在Bean实例化后的早期和后期阶段对Bean进行修改、增强或执行其他自定义逻辑。这样可以实现很多功能,如属性注入、AOP代理、资源初始化等。

2023-10-03 23:18:48 796 2

原创 Spring实例化源码解析之ClassPathBeanDefinitionScanner(五)

ClassPathBeanDefinitionScanner类doScan方法源码解析;将一组候选的 BeanDefinition 进行处理和注册,将它们转化为完整的 BeanDefinition,并添加到 BeanFactory 中以便后续的实例化和管理。在处理过程中,会解析作用域元数据、生成唯一的 Bean 名称、处理注解定义、应用代理模式等操作,以确保注册的 BeanDefinition 符合预期的配置和行为

2023-09-27 15:57:38 268

原创 Spring实例化源码解析之ComponentScanAnnotationParser(四)

对ComponentScanAnnotationParser的parse方法的整体流程进行了分析,这个类是对@ComponentScan注解进行解析,并且将这些属性值设置到扫描器中,主要的使用还是在解析器,也就是ClassPathBeanDefinitionScanner的doScan方法

2023-09-25 11:41:45 565

原创 Spring实例化源码解析之ConfigurationClassParser(三)

ConfigurationClassParser的parse方法的源码,parse(Set configCandidates);Spring实例化源码分析

2023-09-22 14:03:28 521

原创 MDC:更好的日志记录方式

MDC(Mapped Diagnostic Context)是一种用于在日志记录过程中传递上下文信息的机制。它允许将自定义的键值对与日志记录相关联,并在日志输出时自动将这些键值对添加到日志消息中。

2023-09-20 11:26:45 2826

原创 Spring实例化源码解析之ConfigurationClassPostProcessor(二)

Spring源码分析ConfigurationClassPostProcessor源码分析ConfigurationClassPostProcessor.processConfigBeanDefinitions源码解析

2023-09-19 16:26:44 421

原创 Spring实例化源码解析之BeanFacotryPostProcessor和BeanDefinitionRegistryPostProcessor(一)

AbstractApplicationContext类的refresh方法是spring实例化流程的开始。主要是介绍invokeBeanFactoryPostProcessors(beanFactory)方法,对其内部源码进行详细分析。

2023-09-15 16:14:34 530

原创 javaagent+ASM获取方法执行时间和打印参数

ASM打印方法的执行时间,ASM获取并打印参数

2023-09-13 17:14:31 1014

空空如也

空空如也

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

TA关注的人

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