利用Spring中的AOP做权限管理

 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;
        }
    }
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值