随笔分类 - Spring
摘要:在使用事务的时候需要添加@EnableTransactionManagement注解来开启事务,Spring事务底层是通过AOP来实现的,所以启用事务后,同样会向容器中注入一个代理对象创建器,AOP使用的是AnnotationAwareAspectJAutoProxyCreator,事务使用的是In
阅读全文
摘要:注册AOP代理创建器 在平时开发过程中,如果想开启AOP,一般会使用@EnableAspectJAutoProxy注解,这样在启动时,它会向Spring容器注册一个代理创建器用于创建代理对象,AOP使用的是AnnotationAwareAspectJAutoProxyCreator,它实现了Smar
阅读全文
摘要:BeanPostProcessor后置处理器是Spring提供的一个扩展点,可以在Bean初始化前后做一些事情,注意这里是bean的初始化,不是实例化,BeanPostProcessor是一个接口,里面提供了两个方法,分别为postProcessBeforeInitialization(初始化之前)
阅读全文
摘要:@RequestBody注解可以用于POST请求接收请求体中的参数,使用方式如下: ``` java @Controller public class IndexController { @PostMapping(value = "/submit", produces = MediaType.APP
阅读全文
摘要:AbstractAutoProxyCreator 在AbstractAutoProxyCreator的wrapIfNecessary方法中,调用getAdvicesAndAdvisorsForBean方法获取到所有的Advisor之后,就可以创建代理对象了,创建的具体过程在createProxy方法
阅读全文
摘要:@EnableAspectJAutoProxy @EnableAspectJAutoProxy注解可以用来开启AOP,那么就从@EnableAspectJAutoProxy入手学习一下Spring AOP的实现原理。 @EnableAspectJAutoProxy导入了AspectJAutoProx
阅读全文
摘要:AOP相关概念 在学习AOP实现原理之前,先了解下AOP相关基础知识。 AOP面向切面编程,它可以通过预编译方式或者基于动态代理对我们编写的代码进行拦截(也叫增强处理),在方法执行前后可以做一些操作,一般我们会看到以下几个概念: 连接点(JointPoint): AOP进行切入的位置称为连接点,一般
阅读全文
摘要:事务的回滚 如果获取事务属性不为空,并且抛出的异常是RuntimeException或者Error类型,调用事务管理器中的rollback方法进行回滚 如果事务属性为空或者抛出的异常不是RuntimeException,也不是Error,将继续提交事务 public abstract class T
阅读全文
摘要:前置知识 事务的执行步骤如下: 获取事务管理器 创建事务 执行目标方法 捕捉异常,如果出现异常进行回滚 提交事务 public abstract class TransactionAspectSupport implements BeanFactoryAware, InitializingBean
阅读全文
摘要:在使用事务的时候需要添加@EnableTransactionManagement注解来开启事务,那么就从@EnableTransactionManagement入手查看一下事务的执行原理。 @EnableTransactionManagement Spring事务底层是通过AOP来完成的,而Spri
阅读全文