Spring框架:利用 XML文档配置 Aspect 织入
1 Java 示例代码
1.1 案例介绍
以下展示一个简单的方法增强示例 demo。案例中主要的类是 Target 类和 MyAspect 类。其中,Target 类中的方法应当定义核心业务代码;MyAspect 类中定义 AOP 通知方法。本案例期望引导 Spring 框架实现基于 JDK 的代理,因此还要为 Target 类定义一个接口并实现。最后定义一个测试类作为主方法。
定义 TargetInterface.java 接口及 Target.java 类:
public interface TargetInterface {
void save();
}
public class Target implements TargetInterface {
public void save() {
System.out.println("Target: save running...");
}
}
定义通知类 MyAspect.java,内部分别定义了一个前置增强方法和后置增强方法。
public class MyAdvice {
public void before() {
System.out.println("MyAspect: 前置增强.....");
}
public void afterReturning() {
System.out.println("MyAspect: 后置增强...");
}
}
定义测试类:
public class XMLAop {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
TargetInterface target = app.getBean(TargetInterface.class);
target.save();
}
}
运行结果:
Target: save running...
1.2 利用 XML 配置 IOC 依赖
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
">
<!--配置目标对象-->
<bean id="target" class="com.abe.aop.xml.Target"/>
</beans>
2 配置织入关系
2.1 导入 AOP 约束
<beans xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
">
</beans>
2.2 配置 AOP 织入动作
以下直接给出使用 XML 文档 Aspect 配置方式。在后面的小节将逐个要点加以解释和扩展。
XML Aspect 配置示例:
<!--配置切面对象-->
<bean id="myAspect" class="com.ab