自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决 java.sql.SQLSyntaxErrorException: Expression

【代码】解决 java.sql.SQLSyntaxErrorException: Expression。

2024-07-22 15:30:32 204

原创 vue el-table自定义排序

【代码】vue el-table自定义排序。

2024-07-22 15:23:05 39

原创 docker配置国内镜像加速器

2、搜索容器镜像服务。

2024-06-27 09:22:06 402

原创 Swarm 命令

【代码】Swarm 命令。

2024-05-30 16:39:55 121

原创 Docker-Swarm部署搭建中的问题

原因:三台工作机时间不同步。工作机加入管理机报错。

2024-05-30 11:01:07 82

原创 el-row 和el-col 样式对齐

【代码】el-row 和el-col 样式对齐。

2024-05-28 15:05:16 363

原创 常用linux命令

【代码】常用linux命令。

2024-05-10 15:25:24 112

原创 14_spring事务具体执行逻辑

上次我们写了spring事务代理的过程并未说明事务怎么样提交、回滚、和挂起的。以及spring的事务传播行为是这怎么实现的,这篇文章来详细说明。之前如果存在事务的执行逻辑。

2024-04-25 16:29:30 130

原创 13_spring传播行为总结

传播行为下面我们一个一个来进行测试:代码:1、Propagation.REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中①外部无事务,内部使用Propagation.REQUIRED并报错外部方法保存成功,内部方法回滚②外部存在事务,内部使用Propagation.REQUIRED并报错外部方法保存回滚,内部方法回滚 。两者使用同一事务外部有事务,内部加入事务并且是同一事物。外部没有事务,内部就新建一个事务。如果当前没有事务,就以非事务方式执行,如

2024-04-24 19:53:40 710

原创 12_spring@Transactional失效的场景总结及原因

若事务方法的传播行为设置不当,如设置为Propagation.NOT_SUPPORTED、Propagation.NEVER或Propagation.SUPPORTS,可能会导致事务不生效或不期望的行为。由于Spring使用JDK动态代理或CGLIB代理来实现事务管理,如果方法被final修饰,代理对象无法覆盖这些方法,导致事务注解失效。Spring使用代理模式来实现事务管理,如果事务方法不是public,代理对象无法正确地拦截方法调用,从而导致事务注解失效。②服务类没有被 Spring 管理。

2024-04-24 14:39:38 309

原创 11_spring事务源码解析

@EnableTransactionManagement注解的具体实现。以及怎么使用aop来实现事务的。其实主要是后置处理器实现事务在什么时候执行。切面类实现事务增强的具体逻辑。

2024-04-21 17:00:27 857

原创 docker启动mysql8+

【代码】docker启动mysql8+

2024-04-20 18:17:53 108 1

原创 ubuntu20 卸载安装mysql8

卸载: sudo apt-get autoremove --purge mysql-server-8.0(这里版本对应即可)再次查看MySQL的剩余依赖项: dpkg --list|grep mysql(这里一般就没有输出了,如果有执行下一步)继续删除剩余依赖项,如:sudo apt-get autoremove --purge mysql-apt-config。卸载: sudo apt-get remove mysql-common。查看MySQL依赖 : dpkg --list|grep mysql。

2024-04-17 17:30:21 213

原创 10_aop详细执行流程及通知的执行

之前介绍了aop的代理对象的生成,本次将从源码介绍方法执行时切面类的通知是怎么执行的。我们将使用后置通知来看方法的执行。其他通知同理。

2024-04-16 17:10:55 237

原创 09_浅谈BeanFactory和ApplicationContext的区别

ApplicationContext 是BeanFactory 的一个子接口,它扩展了BeanFactory 的功能,提供了更多的企业级功能。与BeanFactory 不同,ApplicationContext 在容器启动时就会预先实例化所有的Bean。ApplicationContext 会在启动容器是就将所有bean进行实例化和注入bean之间的关系。③性能: 由于 ApplicationContext 预先实例化所有的Bean,因此在启动时可能会有一些性能开销。①加载Bean的配置信息。

2024-04-10 11:09:33 574 1

原创 08_循环依赖中使用aop以及三级缓存使用

如果在实例化A之后就进行代理,这样违背了Spring设计的原则,Spring在设计之初就是通过AnnotationAwareAspectJAutoProxyCreator这个后置处理器来在Bean生命周期的最后一步来完成AOP代理,而不是在实例化后就立马进行AOP代理。在A的初始化后 AbstractAutoProxyCreator这个后置处理器中就不再进行A的代理,而是直接使用生成好的代理进行返回。从源码看,spring是在B填充属性A时,A的单例工厂进行了A实例的代理对象的生成。

2024-04-09 11:30:07 398

原创 git拉取springboot源码文件名称过长问题

Git 可以创建 4096 长度的文件名,然而在 windows系统上 最多是260。所以在克隆项目的时候可能会出现上面的Filename too long报错。从 GitHub 克隆Springboot项目下发出现了错误。git拉取springboot代码名称过长。

2024-04-07 10:31:40 207

原创 07_spring对于单例bean的aop代理实现

当A、B两个类发生循环引用时,在A完成实例化后,就使用实例化后的对象去创建一个对象工厂,并添加到三级缓存中,如果A被AOP代理,那么通过这个工厂获取到的就是A代理后的对象,如果A没有被AOP代理,那么这个工厂获取到的就是A实例化的对象。当A进行属性注入时,会去创建B,同时B又依赖了A,所以创建B的同时又会去调用getBean(a)来获取需要的依赖,此时的getBean(a)会从缓存中获取,第一步,先获取到三级缓存中的工厂;当B创建完后,会将B再注入到A中,此时A再完成它的整个生命周期。至此,循环依赖结束!

2024-03-27 17:48:43 190 1

原创 06_spring源码循环依赖的解决方式

什么是循环依赖:简单来说就是在spring容器中A类引用B类,B类引用A类,从而引起循环调用。直接获取b实例 报错原因是 A类没办法进行set注入,那么不会再填充属性是进行实例化。如果B类中也是set注入则下面代码不会报错。

2024-03-27 15:05:42 391

原创 05_spring中bean的生命周期源码

initializeBean(beanName, exposedObject, mbd)方法。Bean 实例创建时序图。spring 核心源码。

2024-03-26 16:20:51 227

原创 04_根据代码浅入spring Bean的生命周期

user 实现 InitializingBean DisposableBean 和自定义 initMethod、destroyMethod。③实现BeanPostProcessor。

2024-03-26 10:52:41 348

原创 01_el-table遍历一维数组

【代码】01_el-table遍历一维数组。

2024-03-25 16:24:36 199

原创 maven 将jar包打到本地仓库

【代码】maven 将jar包打到本地仓库。

2024-03-24 14:30:47 439 1

原创 03_解析spring自定义标签BeanDefinition封装

执行NameSpaceHandler 的parse方法 实现类是 NamespaceHandlerSupport。调用BeanDefinitionParser的parse方法 子类就是NameSpacehandler中用到的类。解析自定义标签时调用BeanDefinitionParser接口的实现类。实现BeanDefinitionParser接口。类似于:mvc相关标签、aop相关标签。什么是spring自定义标签。

2024-03-22 17:47:12 126 1

原创 02_spring解析xml封装配置

Bean 实例创建时序图。

2024-03-22 14:28:52 206 1

原创 01_spring-framework源码环境搭建

1、下载spring-framework源码。5、build spring源码。2、下载gradle.zip。7、找一个test类成功启动。6、修改为idea执行。

2024-03-21 17:13:01 167 1

原创 vue常见错误

1、vue报错this command with --force or --legacy-peer-deps。

2024-02-01 14:18:02 375 1

原创 转载ubuntu 中文乱码

转载ubuntu 中文乱码 http://t.csdn.cn/OGJWR。

2023-07-28 17:39:09 48 1

原创 PropertyDescriptor的使用,反射的简洁使用

JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。这些信息储存在类的私有变量中,通过set()、get()获得。Java JDK中提供了一套API用来访问某个属性的getter/setter方法,这就是内省。二、PropertyDescriptor。一、软件包 java.beans。

2023-07-18 14:38:06 177 1

原创 mysql 面试题

【代码】mysql 面试题。

2023-07-04 14:14:36 45

原创 js 对数组进行处理的一些方法

【代码】js 对数组进行处理的一些方法。

2023-06-14 14:14:09 37

原创 vite编译启动Vue3项目

当您看到控制台输出 “Server running at:” 时,您的 Vite 服务器就已经成功启动了。首先,确保您已经安装了最新版本的 Node.js。您现在已经成功地在 Vite 中编译和启动了您的 Vue 3 项目!然后,打开终端并进入您的 Vue 3 项目目录。

2023-06-13 09:19:59 1871 1

原创 java 执行shell脚本 选项--headless 失效问题

java 执行shell脚本 选项–headless 失效问题。

2023-05-16 16:19:13 126

空空如也

空空如也

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

TA关注的人

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