论坛首页 入门技术论坛

使用JDK中的Proxy技术实现AOP功能

浏览 1245 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-10-14  

想做个权限:

1。拦截所有业务方法
2。判断用户是否有权限,有权限就允许她执行业务方法,没有权限不允许她执行业务方法
(就是看user是否为null)

核心代码

package org.aop.service;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

import org.aop.service.impl.PersonServiceBean;

public class JDKProxyFactory implements InvocationHandler{
 private Object targetObject;
 
 public Object  createProxyIntance(Object targetObject){
  this.targetObject=targetObject;
 return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(),
    this.targetObject.getClass().getInterfaces(),this);
 }

 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  // TODO Auto-generated method stub
  PersonServiceBean bean=(PersonServiceBean)this.targetObject;
  Object result=null;
  if(bean.getUser()!=null){
    result=method.invoke(targetObject, args);
  }
  
  return result;
 }
}
程序见附件。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics