Spring-事务基础与原理 Spring 事务的核心原理是通过AOP (面向切面编程) 在方法执行前后进行拦截,并在拦截器中实现事务的开启、提交或回滚。具体来说,Spring 事务基于 PlatformTransactionManager 接口和 TransactionInterceptor 类来管理事务。 2025-06-11 spring #spring #spring-boot #AOP #事务
Spring-AOP基础与原理 Spring AOP(面向切面编程)是 Spring 框架中用于实现横切关注点分离的重要模块,它允许开发者将诸如日志记录、事务管理等通用功能从业务逻辑中分离出来。 Spring AOP 主要通过动态代理技术来实现。当一个 Bean 被标记为需要应用 AOP 切面时,Spring 会为其创建一个代理对象而不是直接使用目标对象。这个代理对象可以是 JDK 动态代理或 CGLIB 代理,取决于被代理的目 2025-06-11 动态代理 #动态代理 #spring #spring-boot #AOP
Spring-IOC基础与原理 Spring的IOC(Inversion of Control,控制反转) 通过工厂模式加上反射机制来实现,这种设计模式允许开发者定义对象间的依赖关系,并由Spring容器在运行时自动注入这些依赖,而不是在代码中硬编码创建对象的过程。 控制反转(IoC) 就是把创建和管理 bean 的过程转移给了第三方,在Spring中就是 Spring IoC Container。对于 IoC 来说,最重要的就 2025-06-11 spring #spring #spring-boot #IOC
Spring-data-jpa拦截器 在Spring Data JPA中,拦截器机制通常用于在执行某些数据库操作之前或之后进行一些处理。对于实体级别的拦截可以通过使用JPA的生命周期回调方法或者通过AOP来实现,常见的是使用Spring Data提供的Repository监听器或通过自定义的EntityListener来实现类似拦截器的功能。对于Session级别的拦截可以实现 2025-06-11 spring #spring #spring-boot #spring-data #JPA
Spring-data-jpa动态条件查询简化 动态查询是一个非常常见的需求,Spring Data JPA 提供了一套强大的工具集,包括 Specification、CriteriaBuilder 和 Predicate,可以帮助我们构建复杂的动态查询。 Specification:Specification 是 Spring Data JPA 提供的一个接口,用于构建 JPA Criteria 查询。它通常与 CriteriaBuilde 2025-06-11 spring #spring #spring-boot #spring-data #JPA
java日志基础 参考: SLF4J user manual The logback manual Log4j2 manual 日志在我们项目生命中非常重要的,不管是开发过程中还是线上问题排查都能够提供有效的信息,进而提高解决问题的效率。java生态中有许多的日志框架实现,主流的实现思想:日志门面 + 具体实现,基于此思想能够降低我们切换实现框架的成本。在日常开发中,主流的日志打印实践:SLF4J + LOG 2025-06-11 Java #Java #log
MDC-线程池透传traceId Java开发中都是使用日志门面+日志实现的方式打印日志。日志门面主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由具体的日志实现框架。使用logback在多线程环境下MDC会丢失父线程的上下文。 2025-06-10 Java #Java #并发 #线程池 #log
RateLimiter算法与使用 服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,至少确保服务不会奔溃。常见的服务降级实现方式有:开关降级、限流降级、熔断降级。 基础限流算法 令牌桶算法(Token Bucket) 漏桶算法(Leaky Bucket) 滑动窗口算法(Sliding Window) 计数器算法(Fixed Window Counter) 2025-06-10 微服务 #微服务 #高可用
java反射与动态代理 Java中的反射(Reflection)和动态代理(Dynamic Proxy)是两个强大的特性,它们在处理对象、类和方法时提供了高度的灵活性。 反射主要用于需要在运行时检查或反射关于类、接口、字段和方法信息的场景; 动态代理则更适用于需要在不修改原始代码的情况下增加额外处理逻辑的情况,如拦截方法调用以添加日志记录或安全控制等。 2025-06-10 Java #Java #动态代理
Spring-data-jpa基础 Java Persistence API(JPA) 是 Java 的 ORM 框架标准,它为管理关系数据提供了一个标准、基于面向对象的API,开发者可以用极简的代码即可实现对数据的访问和操作。JPA维护了一个 Persistence Context (持久化上下文),在持久化上下文中维护实体的生命周期。主要包含三个方面的内容: ORM元数据。JPA支持annotion或xml两种形式描述对象-关 2025-06-10 spring #spring #spring-boot #spring-data #JPA #ORM