IOC意思是控制反转,它将手动创建对象的控制权交给 Spring 来管理。载体是 IOC 容器,它是一个存放对象的 Map(key, value),当创建对象时,只需要配置好配置文件或注解即可,不用考虑对象是如何被创建的,从而把应用从复杂的依赖关系中解放了出来,降低了对象之间的耦合,增加了项目的可维护性,降低了开发难度。
IOC 容器的设计主要基于 BeanFactory 和 ApplicationContext 这两个接口,其中 BeanFactory 是最底层接口
在同一个类中,如果 a 方法使用 this 点的方式调用了 b 方法,那么不管 a 方法有没有开启事务,b 方法的事务都会是无效的。因为只有被动态代理直接掉用时才会产生事务,而this是真实对象而不是代理对象。解决方法是将 this 调用改为动态代理调用:AopContext.currentProxy()
Spring中有两种事务,声明式事务和编程式事务声明式事务:建立在 AOP 之上,本质是对方法前后进行拦截,然后在方法前加入一个事务,执行完方法后根据情况进行提交或回滚。它的优点是不需要通过编程的方式来管理事务,只需要在 xml 配置文件中声明事务即可。一般常用的有两种实现方式,一种是基于< tx> 和< aop>命名空间的方式在 xml 文件中灵活管理事务,代码侵入比...