Spring部分简介
Bean的生命周期
解决循环依赖
三级缓存
在Spring的DefaultSingletonBeanRegistry类中,你会赫然发现类上方挂着这三个Map:
1、singletonObjects 它是我们最熟悉的朋友,俗称“单例池”“容器”,缓存创建完成单例Bean的地方。
2、singletonFactories 映射创建Bean的原始工厂。
3、earlySingletonObjects 映射Bean的早期引用,也就是说在这个Map里的Bean不是完整的,甚至还不能称之为“Bean”,只是一个Instance。
后两个Map其实是“垫脚石”级别的,只是创建Bean的时候,用来借助了一下,创建完成就清掉了。
先去缓存里找Bean,没有则实例化当前的Bean放到Map,如果有需要依赖当前Bean的,就能从Map取到。
Spring事务
Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:
1、获取连接 Connection con = DriverManager.getConnection();
2、开启事务con.setAutoCommit(true/false);
3、执行CRUD;
4、提交事务/回滚事务 con.commit() / con.rollback();
5、关闭连接 conn.close()。