• 2024-07-05震惊,程序运行一半就不运行了
    近期,我们的项目在生产环境中运行时频繁出现一个难以理解的Bug。这个问题颇为有趣,因此我决定在此记录下整个排查过程。首先,让我模拟一下出问题的代码:XController.java@ResourceprivateXServicexService;@GetMapping("/method1")publicvoidmethod1(){System.out.printl
  • 2024-01-27可重入锁的含义及解决的问题
    可重入锁顾名思义可以重复利用的锁,但不是任何方法都能重复使用,而是最初占有锁的方法调用的方法,即是调用方法与被调方法可以同时占用同一把锁。下面从三个角度来说明:1.被调方法没有加锁publicclassLockTest{privatestaticfinalObjectobj=newObject();publicv
  • 2023-12-18SpringBoot 2项目中,serviceA的方法中调用了serviceB的方法能触发事务吗
    需求描述在一个SpringBoot2.x项目中,有一个需求是在serviceA的method1方法中执行两个数据库操作,并在其中的某一步调用了serviceB的method2,而method2也包含了数据库操作。如果在这个过程中发生了异常,希望能够确保所有的数据库操作都能够回滚,以保持数据的一致性。该如何在代码中实现
  • 2023-09-21c++ 引用
     引用最大的价值是避免复制 #include<iostream>usingnamespacestd;voidmethod2(int&param){param=param+1;cout<<"method2inner:"<<param<<endl;//method2inner:2}voidmethod1(intparam){param=pa
  • 2023-08-15分布式事务的华丽进化 | 京东物流技术团队
    说到分布式事务,大家并不陌生。在实际工作中,用得比较多的还是柔性分布式事务,今天主要把在工作中运用到的几种柔性分布式事务的场景及实现方式做一个简单介绍,也可以看做是柔性分布式事务的一个演进过程。一、调用方保证这种方式适合业务内自己使用,当方法内的任务一个逻辑发生异常时,整
  • 2023-08-15分布式事务的华丽进化
    说到分布式事务,大家并不陌生。在实际工作中,用得比较多的还是柔性分布式事务,今天主要把在工作中运用到的几种柔性分布式事务的场景及实现方式做一个简单介绍,也可以看做是柔性分布式事务的一个演进过程。一、调用方保证这种方式适合业务内自己使用,当方法内的任务一个逻辑发生异常
  • 2023-07-15每日一题:SpringBoot中支持的事务类型
    以下是每种事务类型的作用、代码示例和对代码的解释:PROPAGATION_REQUIRED(默认):作用:如果当前存在事务,则方法将在该事务中运行;如果不存在事务,则创建一个新的事务。适用于大多数业务场景,确保方法在事务中执行,如果没有事务,则创建一个新的事务。代码示例:@Transactional(propagatio
  • 2023-05-05Java并发(四)----线程运行原理
    1、线程运行原理1.1栈与栈帧  JavaVirtualMachineStacks(Java虚拟机栈JVM)我们都知道JVM中由堆、栈、方法区所组成,其中栈内存是给谁用的呢?其实就是线程,每个线程启动后,虚拟机就会为其分配一块栈内存。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存
  • 2023-03-24前端设计模式——外观模式
    外观模式(FacadePattern):它提供了一个简单的接口,用于访问复杂的系统或子系统。通过外观模式,客户端可以通过一个简单的接口来访问复杂的系统,而无需了解系统内部的具体实现细
  • 2023-03-02Decorator Pattern
    装饰器模式:参考https://www.runoob.com/design-pattern/decorator-pattern.html动态地给一个对象添加一些额外的功能。装饰类和被装饰类可以独立发展,不会相互耦合,装饰模