1.编写核心业务代码(目标类和目标方法)
package com.itweiting.aop;
public class Target implements TargetInterface{
public void save(){
System.out.println("这是一个目标方法......");
}
}
这是一个目标类接口
package com.itweiting.aop;
public interface TargetInterface {
public void save();
}
2.编写切面类及其通知(增强功能方法)
这是一个代理
package com.itweiting.aop;
public class MyAspect {
public void before(){
System.out.println("前置增强");
}
}
3.在配置文件中配置织入关系(即哪些通知和那些连接点进行结合)
进行织入,即将增强和切点连接起来
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--配置目标对象-->
<bean id="target" class="com.itweiting.aop.Target"></bean>
<!--配置前面对象(即配置代理对象)-->
<bean id="myAspect" class="com.itweiting.aop.MyAspect"></bean>
<!--配置织入(告诉spring哪些方法要进行哪些增强(前置增强还是后置增强))(需要进行命名空间的配置)-->
<aop:config>
<!--声明切面-->
<aop:aspect ref="myAspect">
<!--切面=切点+通知;method代表哪个方法是增强(before方法当中封装这前置增强),pointcut代表切点-->
<aop:before method="before" pointcut="execution(public void com.itweiting.aop.Target.save())"></aop:before>
</aop:aspect>
</aop:config>
</beans>