![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 89
沉泽·
心中有阳,眼里有光。
展开
-
spring Aop切面的环绕通知时,如何防止切面异常影响主业务流程执行
一、前言我们在做切面编程时,可能会使用到的环绕通知@Around。示例代码如下:@Aspect@Componentpublic class MyAspect { @Around("execution(public int com.heygo.spring.aop.CalcServiceImpl.*(..))") public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {原创 2022-05-26 14:58:38 · 6604 阅读 · 0 评论 -
拦截器与过滤器的区别
文章目录 一、二者理解过滤器(Filter)拦截器(Interceptor) 二、拦截器与过滤器的区别区别: 三、拦截器与过滤器的触发时机拦截器与过滤器触发时机不一样 四、使用场景五、图解 一、二者理解 过滤器(Filter) 过滤器,是在ja...转载 2022-04-14 20:37:42 · 3888 阅读 · 1 评论 -
Spring Aop的使用和通知注解的执行顺序
一、Aop 常用注解@Before 前置通知: 目标方法之前执行@After 后置通知: 目标方法之后执行(始终执行)@AfterReturning 返回后通知: 执行方法结束前执行(异常不执行)@AfterThrowing 异常通知: 出现异常时候执行@Around 环绕通知: 环绕目标方法执行spring4和spring5的全部通知执行顺序是不同的,下面用案例说明。二、案例演示2.1 业务类创建业务接口类:CalcService/** * @InterfaceName CalS转载 2022-03-18 14:12:26 · 2113 阅读 · 0 评论 -
Spring的三级缓存解决Bean的循环依赖问题
一、前言循环依赖:就是N个类循环(嵌套)引用。通俗的讲就是N个Bean互相引用对方,最终形成闭环。用一副经典的图示可以表示成这样(A、B、C都代表对象,虚线代表引用关系):注意:其实可以N=1,也就是极限情况的循环依赖:自己依赖自己另需注意:这里指的循环引用不是方法之间的循环调用,而是对象的相互依赖关系。(方法之间循环调用若有出口也是能够正常work的)可以设想一下这个场景:如果在日常开发中我们用new对象的方式,若构造函数之间发生这种循环依赖的话,程序会在运行时一直循环调用最终导致内存溢出转载 2021-12-23 12:03:17 · 361 阅读 · 0 评论 -
Spring中 Bean 的作用域与生命周期
一、前言在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地讲,bean 就是由 IOC 容器初始化、装配及管理的对象,除此之外,bean 就与应用程序中的其他对象没有什么区别了。而 bean 的定义以及 bean 相互间的依赖关系将通过配置元数据来描述。Spring中的bean默认都是单例的,这些单例Bean在多线程程序下如何保证线程安全呢? 例如对于Web应用来说,Web容器对于每个用户请求都创建一个单独的Sevlet线程来处理请求,引转载 2021-12-14 22:34:45 · 740 阅读 · 0 评论 -
Spring 循环依赖
一、简介循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。如下图所示:循环调用是无法解决的,除非有终结条件,否则就是死循环,最终导致内存溢出错误。Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?首先让我们来定义三个循环引用类:CircleA.java:p转载 2021-12-08 19:26:44 · 73 阅读 · 0 评论 -
spring之动态注册bean
前言一般而言,我们都知道,在启动一个spring/springboot项目时,随着ioc容器的加载,会向容器中注册许多我们在程序中已经定义好的bean,我们平时注册bean的方式如下:xml方式:<beans>//Bean定义的开始和结束 <import resource=“resource1.xml” />//导入其他配置文件Bean的定义 <import resource=“resource2.xml” /> <bean id=原创 2021-08-06 16:38:05 · 7498 阅读 · 2 评论 -
SpringBoot使用Validation校验参数
JSR(Java Specification Requests)是Java界的重要标准;JSR又细分很多标准,其中JSR303就代表Bean Validation。更多细节可参考:https://jcp.org/en/jsr/detail?id=303。 目录 准备工作 约束性注解(简单)说明 @Validated的使用时机 @Va...转载 2021-08-05 10:50:22 · 1856 阅读 · 0 评论 -
Spring IoC和AOP的实现原理解析
文章目录前言概述IoCSpring IoC底层原理IOC的简单模拟实现AOPSpring AOP底层原理代理模式动态代理JDK代理模式CGLib代理模式Spring两种代理方式前言本编文章主要参考了两位博主的博文,原文链接如下概念的原文链接:https://www.cnblogs.com/swordfall/p/12880809.html示例的原文链接:https://www.jianshu.com/p/78ba8bafb90a概述Spring核心概念为IoC和AOP。IoCSpring I转载 2021-07-27 16:03:21 · 287 阅读 · 0 评论 -
spring事务的7种传播行为
事务传播行为什么叫事务传播行为?听起来挺高端的,其实很简单。即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的。Spring定义了七种传播行为:现在来看看传播行转载 2021-07-26 16:07:09 · 2605 阅读 · 0 评论 -
spring事务实现的几种方式
spring事务处理前言1.、事务几种实现方式(1)编程式事务管理对基于 POJO 的应用来说是唯一选择。我们需要在代码中调用beginTransaction()、commit()、rollback()等事务管理相关的方法,这就是编程式事务管理。(2)基于 TransactionProxyFactoryBean的声明式事务管理(3)基于 @Transactional 的声明式事务管理(4)基于Aspectj AOP配置事务编程式事务管理第一:使用 TransactionTemplate 事务原创 2021-07-26 10:26:07 · 15194 阅读 · 0 评论