Java基础-SSM之Spring的AOP编程
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
Spring的本质说白了就是动态代理,接下来我们会体验AOP的用法。它是对OOP的增强,适用于系统级功能。
一.MethodBeforeAdvice接口的应用
1>.引入新的依赖
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>cn.org.yinzhengjie</groupId> 8 <artifactId>MySpring</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <dependencies> 12 <dependency> 13 <groupId>junit</groupId> 14 <artifactId>junit</artifactId> 15 <version>4.11</version> 16 </dependency> 17 <dependency> 18 <groupId>org.springframework</groupId> 19 <artifactId>spring-context-support</artifactId> 20 <version>4.3.5.RELEASE</version> 21 </dependency> 22 23 <dependency> 24 <groupId>aopalliance</groupId> 25 <artifactId>aopalliance</artifactId> 26 <version>1.0</version> 27 </dependency> 28 </dependencies> 29 30 </project>
2>.定义通知类
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.spring.aop.advice; 7 8 import org.springframework.aop.MethodBeforeAdvice; 9 10 import java.lang.reflect.Method; 11 12 /** 13 * 前置通知 14 */ 15 public class MyMethodBeforeAdvice implements MethodBeforeAdvice { 16 public void before(Method method, Object[] args, Object target) throws Throwable { 17 String mname = method.getName() ; 18 System.out.printf("当前处理的对象 : %s\n调用对象的方法 : %s\n调用参数 : %s\n" , target.toString(),mname.toString(),args.toString()); 19 System.out.println("============= MyMethodBeforeAdvice代码执行完毕 ============="); 20 } 21 }
3>.编写实现WelcomeService和WelcomeService2两个接口的类
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.spring.aop.advice; 7 8 public interface WelcomeService { 9 public abstract void sayHello(); 10 }