Spring的一些问题

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对象
如果事务管理器确定要创建新事务,那么将:

  1. 创建一个新的entity manager
  2. entity manager绑定到当前线程
  3. 从数据库连接池中获取连接
  4. 将连接绑定到当前线程
    特点:
  5. 使用ThreadLocal变量将entity manager和数据库连接都绑定到当前线程。
  6. 事务运行时他们存储在线程中,当它们不再被使用时,事务管理器决定是否将他们清除。
  7. 程序的任何部分如果需要当前的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

推荐阅读更多精彩内容