Spring IoC
控制反转,也称为依赖注入,是面向对象编程的一种设计理念,用来降低程序代码之间的耦合度。首先考虑什么是依赖。依赖,在代码中一般指通过局部变量、方法参数、返回值等建立的对于其他对象的调用关系。例如,在A类的方法中,实例化了B类的对象并调用其方法完成特定的功能,我们就说A类依赖于B类。
理解”面向切面编程”
面向切面编程是软件编程思想发展到一定阶段的产物,是对面向对象编程的有益补充。AOP一般适用于有横切逻辑的场合,如访问控制、事务管理、性能检测等。
在业务系统中,总有一些散落、渗透到系统各处且不得不处理的事情,这些穿插在既定业务中的操作就是所谓的”横切逻辑”,也称为切面。
常见的模糊匹配
》public * addNewUser(entity.User); “”表示匹配所有类型的返回值。
》public void (entity.User); “…”表示匹配所有参数个数和类型。
》 com.service..(…):这个表达式匹配com.service包下所有类的所有方法。
》 com.service….(…):这个表达式匹配com.service包及其子包下所有类的所有方法。
面向切面编程基本概念
》切面:一个模块化的横切逻辑,可能会横切多个对象。
》连接点:程序执行中的某个具体的执行点。
》增强处理:切面在某个特定点上执行的代码逻辑。
》切入点:对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式相关联,并在于这个切入点匹配的某个连接点上运行。
》目标对象:被一个或多个切面增强的对象。
》AOP代理:由AOP框架所创建的对象,实现执行增强处理方法等功能。
》织入:将增强处理连接到应用程序中的类型或对象上的过程。
》增强处理类型:在原有的方法插入的增强处理为前置增强,该方法正常执行完以后插入的增强处理后的置后增强,此外还有环绕增强、异常抛出增强、最终增强等类型。
本章总结
》Spring是一个轻量级的企业级框架、AOP实现、DAO/ORM支持、Web集成等功能,目标是使现有的Java EE技术更易用,并促进良好的编程习惯。
》依赖注入让组件之间以配置文件的形式组织在一起,而不是以硬编码的方式耦合在一起。
》Spring配置文件是完成组装的主要场所,常用节点包括及其子节点。
》AOP的目的是从系统中分离出切面,独立于业务逻辑实现,在程序执行时织入程序中运行。
》面向切面编程主要关心两个问题:在什么位置,执行什么功能。
》配置AOP主要使用aop命名空间下的元素,可以实现定义切入点和织入增强等操作。