SpringAOP之自定义类实现
第一步自定义类
public class Faction {
public void after(){
System.out.println("调用方法之后!");
}
public void befor(){
System.out.println("调用方法之前");
}
}
第二步骤注册bean,配置AOP
<bean id="Faction" class="com.shao.log.Faction"/>
<aop:config>
<!--自定义切面 ref是要引用的类-->
<aop:aspect ref="Faction">
<!--切入点-->
<aop:pointcut id="pointcut" expression="execution(* com.shao.service.ServiceImpl.*(..))"/>
<!--通知
AfterThrowing异常通知
around环绕切入
AfterReturning后置返回通知获取返回值-->
<aop:before method="befor" pointcut-ref="pointcut"/>
<aop:after method="after" pointcut-ref="pointcut"/>
</aop:aspect>
</aop:config>
第三步测试:
public class MyTest {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("AppliactionContext.xml");
Service serviceImpl = context.getBean("ServiceImpl", Service.class);
serviceImpl.add();
}
}
结果:
使用SpringAPI实现就是Sping帮找到了要执行位置,而自定义是自己通过通知来找执行的位置,相对于SpringAPI接口实现,自定义类更加灵活