1、springboot启动流程
- return (new SpringApplication(sources)).run(args),读取ApplicationContextInitializer初始化接口的实现类和ApplicationListener监听器接口的实现类,进行初始化信息
- run方法里第一步创建SpringApplicationRunListeners,并发布启动事件、初始化配置的环境创建事件。
- 创建上下文,给上下文字段赋值,传入到后续的流程里
- 调用refresh,创建ioc容器,解析@import注解的自动配置类,将实例对象放到容器中
- 创建内嵌的tomcat容器
2、spring事务的实现
原理:
Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:
- 获取连接 Connection con = DriverManager.getConnection()
- 开启事务con.setAutoCommit(true/false);
- 执行CRUD
- 提交事务/回滚事务 con.commit() / con.rollback();
- 关闭连接 conn.close();
Spring事务处理模块是通过AOP功能来实现声明式事务处理的,生成的代理会拦截目标对象的外部方法调用,自动开启事务、自动提交事务或回滚。
3