SpringMVC用XML方式如何实现AOP SpringMVC用XML方式实现AOP代码示例

作者:袖梨 2020-04-16

SpringMVC用XML方式如何实现AOP?下面小编给大家分享一下SpringMVC用XML方式实现AOP代码示例,小编觉得挺不错,分享给大家供大家参考,一起来看看吧!

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



  
  
  
  
  
   
 
  
   
  












 







BeforeAdvice
AfterAdvice
StudentIntercepter






2.8SpringMVC.xml



    
    
    
     
     
    
    
  
  
  
    
    jsp"/>
  
  
  
    
    
    
    
    
    
      
        my-error
        sql-error
        WordNotFoundException">my-error
        
      
    
  
   
  

4效果图

相关文章

精彩推荐