您的位置:首页 > 编程语言 > Java开发

传统spring aop

2016-05-15 14:38 621 查看
从spring容器获得目标类,进行aop配置从而让spring创建代理类。全自动过程。即传统spring
aop的实现过程


预备工作:添加aop命名空间






目标类及其接口:

public interface UserService
{

public void addUser();

public void updateUser();

}


public class UserServiceImpl implements UserService
{

@Override
public void addUser()
{
System.out.println("spring aop add user");
}

@Override
public void updateUser()
{
System.out.println("spring aop update user");
}

}


切面类:

public class MyAspect implements MethodInterceptor
{

@Override
public Object invoke(MethodInvocation mi) throws Throwable
{
System.out.println("前");

Object obj = mi.proceed();

System.out.println("后");
return obj;
}
}


本博文的重点在xml配置:

<?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"> <!-- 1 创建目标类 -->
<bean id="userServiceId" class="com.canyugan.c_aop.UserServiceImpl"></bean>
<!-- 2创建切面类(通知) -->
<bean id="myAspectId" class="com.canyugan.c_aop.MyAspect"></bean>
<!-- 3 spring 传统aop开发,使 通知 引用到 目标类切入点上
* 添加aop命名空间
* aop 编程 <aop:config>
* <aop:pointcut> 用于声明切入点,确定目标类上的那些方法将被增强。
id : 切入点名称
expression : 用于编写切入点表达式 (aspectj 切入点表达式)
execution(* com.itheima.c_aop.*.*(..))
固定		返回值类型	包			类名	方法名	参数列表
* <aop:advisor> 特殊的切面,只有一个切入点和一个通知
advice-ref:一个通知引用
pointcut-ref:一个切入点引用
-->
<aop:config>
<aop:pointcut expression="execution(* com.canyugan.c_aop.*.*(..))" id="myPointCut"/>
<aop:advisor advice-ref="myAspectId" pointcut-ref="myPointCut"/>
</aop:config>
</beans>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: