1. spring 事务隔离机制
https://www.cnblogs.com/leeego-123/p/11498327.html
https://blog.csdn.net/acingdreamer/article/details/91873745
1)事务开始时,通过AOP机制,生成一个代理connection对象,并将其放入DataSource实例的某个与DataSourceTransactionManager相关的某处容器中。在接下来的整个事务中,客户代码都应该使用该connection连接数据库,执行所有数据库命令[不使用该connection连接数据库执行的数据库命令,在本事务回滚的时候得不到回滚]
2)事务结束时,回滚在第1步骤中得到的代理connection对象上执行的数据库命令,然后关闭该代理connection对象
如果事务管理器确定要创建新事务,那么将:
- 创建一个新的entity manager
- entity manager绑定到当前线程
- 从数据库连接池中获取连接
- 将连接绑定到当前线程
特点: - 使用ThreadLocal变量将entity manager和数据库连接都绑定到当前线程。
- 事务运行时他们存储在线程中,当它们不再被使用时,事务管理器决定是否将他们清除。
- 程序的任何部分如果需要当前的entity manager和数据库连接都可以从线程中获取。
Transactional,四种传播机制
如何改变默认规则:
1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class)
2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.class)
3 不需要事务管理的(只查询的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED)
4 如果不添加rollbackFor等属性,Spring碰到Unchecked Exceptions都会回滚,不仅是RuntimeException,也包括Error。
注意:
如果异常被try{}catch{}了,事务就不回滚了,如果想让事务回滚必须再往外抛try{}catch{throw Exception}。
事务使用的坑点:private修饰不生效,原因是cglib动态代理无法代理private方法;public嵌套不生效,默认RunTimeException才会回滚,catch掉的异常不会回滚。传播机制是在AOP before切面的时候决定是开启新事务还是不开启
项目中的使用
2. spring boot 启动过程 ??
https://blog.csdn.net/woshilijiuyi/article/details/82219585
① Spring Boot 在启动时会去依赖的 Starter 包中寻找 resources/META-INF/spring.factories 文件,然后根据文件中配置的 Jar 包去扫描项目所依赖的 Jar 包。
② 根据 spring.factories 配置加载 AutoConfigure 类
③ 根据 @Conditional 注解的条件,进行自动配置并将 Bean 注入 Spring Context
总结一下,其实就是 Spring Boot 在启动的时候,按照约定去读取 Spring Boot Starter 的配置信息,再根据配置信息对资源进行初始化,并注入到 Spring 容器中。这样 Spring Boot 启动完毕后,就已经准备好了一切资源,使用过程中直接注入对应 Bean 资源即可。
3. spring AOP概念,优点
https://blog.csdn.net/qq_26323323/article/details/81012855
动态代理,Java代理,CGLIB代理,优点,项目中如何使用的
4. SpringCloud组件实现以及了解??
5. Spring 生命周期
https://www.jianshu.com/p/1dec08d290c1
https://www.cnblogs.com/zrtqsk/p/3735273.html
6. Spring循环依赖如何解决??
https://www.jianshu.com/p/6c359768b1dc
7. Spring注入方式??
https://www.jianshu.com/p/5c781f264467
https://javadoop.com/post/spring-ioc
8. Spring Ioc、Aop理解
9. 拦截器
https://blog.csdn.net/zxd1435513775/article/details/80556034
https://blog.csdn.net/u010853261/article/details/77940767
网友评论