PersonServiceBean.javapackage com.allen.service.imp; import com.allen.service.PersonService; public class PersonServiceBean implements PersonService { public String user = ""; public String getUser() { return user; } public PersonServiceBean(){} public PersonServiceBean(String user){ this.user=user; } @Override public String getPersonName(Integer personid) { System.out.println("我是getPersonName()"); return "AAAAA"; } @Override public void save(String name) { System.out.println("我是Save()"); } @Override public void update(String name) { System.out.println("我是update()"); } }PersonService.java
package com.allen.service; public interface PersonService { public void save (String name); public void update(String name); public String getPersonName(Integer personid); }JDKProxyFactory.java
package com.allen.aop; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import com.allen.service.imp.PersonServiceBean; public class JDKProxyFactory implements InvocationHandler { private Object targeObject; public Object createProxyIntance(Object targetObject){ this.targeObject = targetObject; return Proxy.newProxyInstance(this.targeObject.getClass().getClassLoader(), this.targeObject.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { PersonServiceBean bean = (PersonServiceBean) this.targeObject; Object result =null; if(bean.getUser()!=""){ result = method.invoke(targeObject, args); } return result; } }这是测试用的 junit4
AopTest.java
package junit.test; import org.junit.BeforeClass; import org.junit.Test; import com.allen.aop.CGLibFactory; import com.allen.aop.JDKProxyFactory; import com.allen.service.PersonService; import com.allen.service.imp.PersonServiceBean; public class AopTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void proxyTest(){ JDKProxyFactory factory = new JDKProxyFactory(); PersonService service = (PersonService) factory.createProxyIntance(new PersonServiceBean("asf")); service.save("888"); } }不管评论什么 我都接受!!!