Spring框架:面向切面编程与数据访问深入解析
1. 面向切面的Spring
在Spring中运用面向切面编程(AOP)时,会涉及到获取切面实例的问题。有一个静态的 aspectOf()
方法,它会返回切面的单例实例。所以,若要获取切面的实例,必须使用 factory - method
来调用 aspectOf()
方法,而不是尝试调用切面的构造函数。
简而言之,Spring并非通过之前的 <bean>
声明来创建切面实例,因为这个实例已由AspectJ运行时创建好了。相反,Spring通过 aspectOf()
工厂方法获取切面的引用,然后按照 <bean>
元素的规定对其进行依赖注入。
1.1 AOP的优势与Spring的支持
AOP是面向对象编程的强大补充。借助切面,能将原本分散在应用各处的行为聚合到可复用的模块中,还能精确声明这些行为的应用位置和方式。这样做不仅减少了代码重复,还让类能专注于自身的主要功能。
Spring提供了AOP框架,可在方法执行前后插入切面。能在方法调用前后及环绕时织入通知,还能为异常处理添加自定义行为。
在Spring应用中使用切面有多种选择。随着 @AspectJ
注解支持和简化配置模式的引入,在Spring中连接通知和切入点变得更加容易。
1.2 Spring AOP与AspectJ的结合
有时候,Spri