JDK中Proxy实现切面编程
2013-05-22 19:51
141 查看
切面编程:对类中的方法设置权限
JDK中Proxy实现AOP举例
PersonService.java
PersonServiceImpl.java
JDKProxyFactory.java
测试类:AOPTest.java
JDK中Proxy实现AOP举例
PersonService.java
package com.aop.service; public interface PersonService { public String getUser(); public void save(); public void update(); }
PersonServiceImpl.java
package com.aop.service.impl; import com.aop.service.PersonService; public class PersonServiceImpl implements PersonService{ private String user = null; public PersonServiceImpl() { } public PersonServiceImpl(String user){ this.user = user; } public String getUser() { return user; } public void save() { System.out.println("save()"); } public void update() { System.out.println("update()"); } }
JDKProxyFactory.java
package com.aop.factory; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import com.aop.service.impl.PersonServiceImpl; public class JDKProxyFactory implements InvocationHandler { private Object targetObject; public Object createProxyInstance(Object targetObject){ this.targetObject = targetObject; return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(), this.targetObject.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { PersonServiceImpl service = (PersonServiceImpl) this.targetObject; Object result = null; if(service.getUser() != null){ result = method.invoke(targetObject, args); } return result; } }
测试类:AOPTest.java
package com.aop.junit; import com.aop.factory.JDKProxyFactory; import com.aop.service.PersonService; import com.aop.service.impl.PersonServiceImpl; public class AOPTest { public static void main(String[] args) { JDKProxyFactory factory = new JDKProxyFactory(); PersonService service = (PersonService) factory.createProxyInstance(new PersonServiceImpl()); service.save(); } }
相关文章推荐
- 使用JDK动态代理实现切面编程
- Java动态代理模式jdk和cglib的2种实现以及二者的区别(AOP面向切面的前奏)
- Spring AOP:使用NameMatchMethodPointcutAdvisor实现切面编程
- js实现面向切面的编程(AOP)
- (9) 使用JDK中的Proxy技术实现AOP功能 以及 CGLIB生成代理
- JDK动态代理(Proxy)的两种实现方式
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 3
- Java实现AOP面向切面编程的实例教程
- python 多个装饰器组合应用,实现面向切面之AOP编程
- Java动态代理之JDK动态代理和CGLib动态代理 面向切面编程AOP原理
- 自定义注解 Aspect 实现aop 日志记录切面编程
- 使用JDK中的Proxy技术来实现动态代理
- 面向切面编程的两种实现
- Spring AOP的基本原理及面向切面编程的实现
- 利用多态,实现一般处理程序(ashx)中的AOP(切面编程)
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-使用工厂创建代理(Using the ProxyFactoryObject to create AOP proxies)
- Spring面向切面编程——Spring实现AOP方式——通过注解实现
- 面向切面编程的作用与实现简介
- AOP面向切面编程的四种实现
- spring_由注解实现AOP面向切面编程_实现动态代理