| 原帖及讨论:http://bbs.bccn.net/thread-145129-1-1.html     AOP在Spring中占有很重要的地位,做了一个例子是利用AOP来做一个登陆的身份验证。。希望能对大家有所帮助,使用了AOP可以在不破坏你的代码的前提下帮你完成验证功能。。
 转一点AOP的知识:
 
 程序代码:
 1、Spring只支持方法拦截,也就是说,只能在方法的前后进行拦截,而不能在属性前后进行拦截。
 2、Spring支持四种拦截类型:目标方法调用前(before),目标方法调用后(after),目标方法调用前后(around),以及目标方法抛出异常(throw)。
 3、前置拦截的类必须实现MethodBeforeAdvice接口,实现其中的before方法。
 4、后置拦截的类必须实现AfterReturningAdvice接口,实现其中的afterReturning方法。
 5、前后拦截的类必须实现MethodInterceptor接口,实现其中的invoke方法。前后拦截是唯一可以控制目标方法是否被真正调用的拦截类型,也可以控制返回对象。而前置拦截或后置拦截不能控制,它们不能印象目标方法的调用和返回。
 
 
 以上可以看出我们要选用实现MethodInterceptor接口的方法来完成这个功能。
 代码如下: 接口类的定义: 程序代码:  package com.dragon.study;  public interface ILogin {public void login(String name);
 }
 
接口实现类的定义: 程序代码:  package com.dragon.study.Impl;  import com.dragon.study.ILogin; public class LoginImpl implements ILogin {/**
 * Login
 */
 public void login(String name) {
 System.out.println("欢迎 " + name + "登陆!");
 }
 }
 
最重要的拦截器的定义: 程序代码:  package com.dragon.Advice;  import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;
 public class LoginInterceptor implements MethodInterceptor {/**
 * Interceptor
 */
 public Object invoke(MethodInvocation arg0) throws Throwable {
 String name = (String)arg0.getArguments()[0];
 if (name.equals("flash")) {
 System.out.println("这才是真正的用户! ");
 return arg0.proceed();
 } else {
 System.out.println("非法的用户~~~ ");
 return null;
 }
 }
 }
 
 <     
 说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 
  1/2    1 2 下一页 尾页 |