使用JDK中的Proxy技术实现AOP功能
2012-12-09 22:19
801 查看
PersonServiceBean.java 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; } @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"); } }
不管评论什么 我都接受!!!
相关文章推荐
- 使用JDK中的Proxy技术实现AOP功能
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 2
- (9) 使用JDK中的Proxy技术实现AOP功能 以及 CGLIB生成代理
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 3
- 使用JDK中的Proxy技术实现AOP功能[动态代理]
- 使用JDK中的Proxy技术实现AOP功能
- 使用JDK中的Proxy技术实现AOP功能
- ITCAST视频-Spring学习笔记(使用JDK中的Proxy技术实现AOP功能)
- 使用JDK中的proxy技术实现AOP功能
- (8) 使用JDK中的Proxy技术实现AOP功能 以及 CGLIB生成代理
- (转)使用JDK中的Proxy技术实现AOP功能
- JDK中的Proxy技术实现AOP功能
- AOP_1.入门及使用JDK中的Proxy技术实现
- JDK中的Proxy技术实现AOP功能
- JDK中的Proxy技术实现AOP功能
- Spring(十)通过动态代理(JDK的Proxy)和cglib实现AOP技术
- aop学习总结一------使用jdk动态代理简单实现aop功能
- 利用JDK提供的Proxy类和cglib.jar实现Aop功能
- AOP之Proxy技术实现AOP功能