自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

于琦海

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

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

原创 吃透Spring源码分析专题

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

2023-10-23 15:35:23 1195

原创 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 857

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

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

2023-12-21 11:17:28 1264

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

mybaitsPlus的分页流程源码分析

2023-12-21 11:08:31 897

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

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

2023-12-12 09:36:32 1294

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

mybatis-plus源码解析MybatisPlusAutoConfiguration

2023-12-12 09:33:51 1734

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

Mybatis-plus之MapperScan源码解析

2023-12-11 11:21:40 1842

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

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

2023-12-11 11:18:06 1679

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

SpringAOP导致事务失效问题解决

2023-11-14 09:10:33 916

原创 Spring事务之@EnableTransactionManagement

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

2023-11-13 15:31:05 5943

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

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

2023-11-13 15:25:26 418

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

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

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

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

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

2023-10-30 12:41:15 988

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

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

2023-10-26 10:30:45 429

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

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

2023-10-26 10:29:12 583

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

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

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

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

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

2023-10-25 09:05:38 210

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

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

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

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

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

2023-10-24 09:04:57 202

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

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

2023-10-23 15:38:14 117

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

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

2023-10-10 16:17:28 483

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

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

2023-10-10 16:15:10 710 1

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

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

2023-10-09 15:59:33 117

原创 LENGTH() vs CHAR_LENGTH()

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

2023-10-09 15:50:04 442

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

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

2023-10-08 15:00:23 326

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

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

2023-10-08 12:35:34 210

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

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

2023-10-07 15:32:35 556

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

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

2023-10-07 12:01:53 510

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

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

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

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

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

2023-09-27 15:57:38 134

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

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

2023-09-25 11:41:45 445

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

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

2023-09-22 14:03:28 371

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

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

2023-09-20 11:26:45 1877

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

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

2023-09-19 16:26:44 245

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

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

2023-09-15 16:14:34 351

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

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

2023-09-13 17:14:31 615

原创 ASM字节码插桩探索

ASM字节码插桩实战,通过ASM实现Spring的aop功能,ASM的优缺点以及ASM的核心API,解决agent报错java.lang.IllegalArgumentException at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown Source) at org.objectweb.asm.ClassReader.(Unknown

2023-09-12 16:32:58 283

原创 logback/log4j基本配置和标签详解

logback.xml基本配置,root标签appender-ref标签的用法,如何将日志输出到指定目录中

2023-09-08 15:02:31 1203

原创 Mysql中group by 使用中发现的问题

请确保在 GROUP BY 查询中正确使用聚合函数,并且 GROUP BY 子句中的字段与 SELECT 子句中的字段一致。这样可以确保结果集按照预期进行分组,并避免某个字段一直变化的问题。

2023-09-05 16:51:05 935

原创 ThreadLocal内存泄漏

内存泄漏指的是,当某一个对象不再有用的时候,占用的内存却不能被回收,这就叫作内存泄漏。因为通常情况下,如果一个对象不再有用,那么我们的垃圾回收器 GC,就应该把这部分内存给清理掉。这样的话,就可以让这部分内存后续重新分配到其他的地方去使用;否则,如果对象没有用,但一直不能被回收,这样的垃圾对象如果积累的越来越多,则会导致我们可用的内存越来越少,最后发生内存不够用的 OOM 错误。

2023-09-05 11:43:43 106

空空如也

空空如也

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

TA关注的人

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