前置知识 事务的执行步骤如下: 获取事务管理器 创建事务 执行目标方法 捕捉异常,如果出现异常进行回滚 提交事务 public abstract class TransactionAspectSupport implements BeanFactoryAware, InitializingBean { @Nullable protected Object…
事务的回滚 如果获取事务属性不为空,并且抛出的异常是RuntimeException或者Error类型,调用事务管理器中的rollback方法进行回滚 如果事务属性为空或者抛出的异常不是RuntimeException,也不是Error,将继续提交事务 public abstract class TransactionAspectSupport…
在使用事务的时候需要添加@EnableTransactionManagement注解来开启事务,那么就从@EnableTransactionManagement入手查看一下事务的执行原理。 @EnableTransactionManagement Spring事务底层是通过AOP来完成的,而Spring AOP基于动态代理实现…
以下内容基于 Spring6.0.4。 这个其实是一个特别高频的面试题,也一直很想和大家仔细来聊一聊这个话题,网上关于这块的文章很多,但是我一直觉得要把这个问题讲清楚还有点难度,今天我来试一试,看能不能和小伙伴们把这个问题梳理清楚。 1. 循环依赖 1.1 什么是循环依赖 首先,什么是循环依赖?这个其实好理解,就是两个 Bean 互相依赖,类似下面这样:…
Spring 搭建微服务的时候,比较常用的http客户端工具就是 Feign,以其声明的方式来编写 HTTP 请求。涉及到微服务请求,就一定要设置请求超时时间和熔断策略,来避免因为单一服务卡死导致的集群雪崩等灾难性事件。 具体的 Feign 和 Hystrix 如何集成,Spring 官方都有对应的 Demo,下面主要是分析一下熔断策略的配置。…
[toc] MinIO简介 MinIO是一款基于Go语言开发的高性能、分布式的对象存储系统,开源可商用。一开始就被设计为服务于私有云、公有云、混合云,因此在高可用、可扩展性、高性能方面有得天独厚的优势。 MinIO完全实现了AWS S3…
1. AOP概念与基础 与 IOC 一样,咱先回顾一下 AOP 中涉及到的概念。 1.1 AOP概述 AOP 面向切面编程,全称 Aspect Oriented Programming ,它是 OOP 的补充。OOP 关注的核心是对象,AOP 的核心是切面(Aspect)。AOP…
1. SpringFramework的基本知识 1.1 SpringFramework概述 SpringFramework 是一个开源的、松耦合的、分层的、可配置的一站式企业级 Java 开发框架,它的核心是 IOC 与 AOP ,它可以更容易的构建出企业级 Java 应用,并且它可以根据应用开发的组件需要,整合对应的技术。 1.2…
一、前言 在互联网应用开发初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示等,都是在一个系统中开发完成,最终也只是把系统和数据库部署在同一台服务器上。 但随着互联网应用的发展,业务体量逐渐增大,那么原有的系统搭建就很难支撑起现有的业务体量。因此开始陆续出现应用与数据库分离、 Nginx 反向代理、缓存组件、分组部署、RPC…
一、前端 1、前端项目采用Nginx进行部署,其中Nginx配置文件部分内容如下 nginx.conf部分内容 1 server { 2 listen 443 ssl; 3 server_name www.huskysir.cn; 4 ssl_certificate huskysir.cn_bundle.crt; 5 ssl_certificate_key…