传统spring aop
2016-05-15 14:38
621 查看
从spring容器获得目标类,进行aop配置从而让spring创建代理类。全自动过程。即传统spring
aop的实现过程
预备工作:添加aop命名空间
目标类及其接口:
切面类:
本博文的重点在xml配置:
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>
相关文章推荐
- struts2_1:strust2的设计模式
- Java集合框架Collection
- Java中自定义注解的应用
- Struts2标签库
- Java 程序中执行update返回结果
- test spring again
- test spring in category
- SpringMVC 之<mvc:default-servlet-handler />
- Struts2 文件上传
- 在eclipse下使用java调用weka
- 访问页面异常:nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
- 学习java_Lambda表达式
- 探讨Java验证码制作(下篇)
- SpringMVC日期转换之JsonSerialize
- Java 应用DOM方式解析XML文件
- Struts2文件上传以及文件名中文乱码解决
- 详细介绍Java内存泄露原因
- [疯狂Java]NIO.2:平台无关的文件系统访问支持(Path、Paths、Files)
- Java:网上超市购物结算功能模拟
- java基础:反射