您的位置:首页 > 编程语言 > Java开发

Spring代理方式2

2015-11-20 23:11 288 查看
一:UserService.java

package com.cloud.demo6;

public interface UserService {

void querUsers();

void saveUser();

void deleteUser();

}
二:UserServiceImpl.java

package com.cloud.demo6;

public class UserServiceImpl implements UserService{

@Override

public void querUsers() {

System.out.println("UserServiceImpl.querUsers()");

}

@Override

public void saveUser() {

System.out.println("UserServiceImpl.saveUser()");

}

@Override

public void deleteUser() {

System.out.println("UserServiceImpl.deleteUser()");

}

}

三:LogJdkProxy.java

package com.cloud.demo6;

import java.lang.reflect.InvocationHandler;

import java.lang.reflect.Method;

import java.lang.reflect.Proxy;

public class LogJdkProxy implements InvocationHandler{

private Object target;

public LogJdkProxy(Object target){

this.target=target;

}

/**

* 创建代理对象

* @return

*/

public Object createProxyInstance(){

return Proxy.newProxyInstance(getClass().getClassLoader(), target.getClass().getInterfaces(), this);

}

public Object invoke(Object proxy, Method method, Object[] args)

throws Throwable {

System.out.println("操作前");

//执行原始对象方法

Object result=method.invoke(target, args);

System.out.println("操作后");

return result;

}

}
四:MainTest.java

package com.cloud.demo6;

import org.junit.Test;

public class MainTest {

@Test

public void test1() throws Exception {

UserService userService=new UserServiceImpl();

userService=(UserService) new LogJdkProxy(userService).createProxyInstance();

userService.querUsers();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: