面向切面编程(AOP)完善spring的依赖注入(DI)功能,面向切面编程在spring中主要表现为两个方面 1.面向切面编程提供声明式事务管理 2.spring支持用户自定义的切面 oop是静态的抽象,aop是动态的抽象,可以使得程序各个步骤之间有良好隔离性。 Spring只支持三种传导机制,分别是:
(propagation=Propagation.REQUIRED) 内部事务,使用外部事务的配置策略(如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。)requires_new 内部事务使用新的事务策略,与外部事务策略不同(新建事务,如果当前存在事务,把当前事务挂起。)requires_nest 事务中出现异常后,回滚到savepoints,而不是事务的起点(如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。) 实例: @Transactional(propagation=Propagation.REQUIRED) @Transactional(readOnly=true)(只读性事务)