1.首先创建web工程,之后导入Spring jar包,目录如下
2.文件代码
2.1AfterAdvice
package com.niit.aop;import java.lang.reflect.Method;import org.springframework.aop.AfterReturningAdvice;/* * 后置通知 * havingClass方法执行之后才执行。 * 输出日记 * */public class AfterAdvice implements AfterReturningAdvice { @Override public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable { // TODO Auto-generated method stub System.out.println("后置拦截:下课之后写作业"); }}2.2BeforeAdvice
package com.niit.aop;import java.lang.reflect.Method;import org.springframework.aop.MethodBeforeAdvice;public class BeforeAdvice implements MethodBeforeAdvice {/* * 前置通知 * 在havingClass切入点方法执行之前通知 * 用于验证用户的合法性。/判断一些数据是否存在。适用于检索。注册判断用户名是否存在。 * */ @Override public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable { // TODO Auto-generated method stub System.out.println("前面拦截:上课之前要点名!在调用havingClass方法之前调用"); }}2.3StudentIntercepter
package com.niit.aop;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;public class StudentIntercepter implements MethodInterceptor { @Override public Object invoke(MethodInvocation method) throws Throwable { // TODO Auto-generated method stub if(method.getArguments().length>0) { String name=(String)method.getArguments()[0]; if("hmq".equals(name)){ System.out.println("中间拦截:你是hmq"); } else { System.out.println("中间拦截:你是学生"); } method.proceed(); } return null; }}2.4StudentIF
package com.niit.logic;public interface StudentIF { public void havingClass(String name); public void dohomework(String name); }2.5Student
package com.niit.logic;public class Student implements StudentIF { //作为aop的目标方法public void havingClass(String name) { System.out.println("aop的目标方法"); System.out.println(name+"正在上课");}public void dohomework(String name) { System.out.println(name+"正在写作业");}}2.6StudentLogic
package com.niit.logic;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class StudentLogic { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); StudentIF s=(StudentIF)context.getBean("student"); s.havingClass("hmq"); System.out.println("---------------"); s.dohomework("hmq"); System.out.println("---------------"); s.havingClass("abc"); System.out.println("---------------"); s.dohomework("abc"); System.out.println("---------------"); }}2.7applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://.niit.exception.MyExceptionHandler"/> --></beans>4效果图
到此这篇关于SpringMVC用XML方式实现AOP的方法示例的文章就介绍到这了,更多相关SpringMVC XML实现AOP内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!