package 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;} @Overridepublic String getPersonName(Integer personid) {System.out.println("我是getPersonName()");return "AAAAA";} @Overridepublic void save(String name) {System.out.println("我是Save()");} @Overridepublic 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);}@Overridepublic 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 {@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@Test public void proxyTest(){JDKProxyFactory factory = new JDKProxyFactory();PersonService service = (PersonService) factory.createProxyIntance(new PersonServiceBean("asf"));service.save("888");}}
不管评论什么 我都接受!!!