JavaSE 反射 Part5
来源:互联网 发布:word2007软件 编辑:程序博客网 时间:2024/06/06 15:02
原作者: 尚硅谷-佟刚
package com.atweihai.reflection.proxy;import java.util.HashMap;import java.util.Map;public class ServiceImpl implements Service { private static Map<Integer,Person> persons= new HashMap<Integer,Person>(); public static Map<Integer, Person> getPersons() { return persons; } public ServiceImpl() { persons.put(1001, new Person(1001,"AA")); persons.put(1002, new Person(1002,"BB")); } @Override public void addNew(Person person) { persons.put(person.getId(), person); } @Override public void delete(Integer id) { if(id==1001){ throw new RuntimeException("1001 不能被删除!"); } persons.remove(id); } @Override public void update(Person person) { persons.put(person.getId(), person); }}
package com.atweihai.reflection.proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class PersonServiceProxy { private Service target=null; public PersonServiceProxy(Service target) { this.target = target; } public Service getPersonServiceProxy(){ Service proxy=(Service) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("开启事务"); try { Object result=method.invoke(target, args); System.out.println("提交事务"); return result; } catch (Exception e) { e.printStackTrace(); System.out.println("回滚事务"); } return null; } }); return proxy; }}
package com.atweihai.reflection.proxy;import org.junit.Test;public class ProxyTest { @Test public void testPersonService(){ Service target=new ServiceImpl(); Service proxy=new PersonServiceProxy(target).getPersonServiceProxy(); System.out.println(ServiceImpl.getPersons()); proxy.addNew(new Person(1005,"CC")); System.out.println(ServiceImpl.getPersons()); proxy.delete(1001); System.out.println(ServiceImpl.getPersons()); proxy.update(new Person(1002,"MM")); System.out.println(ServiceImpl.getPersons()); }}
阅读全文
0 0
- JavaSE 反射 Part5
- javaSE-反射
- [JavaSE]反射
- part5
- JavaSE学习笔记--反射
- JavaSE基础:反射机制
- javaSE之反射
- JavaSE 反射Reflection初学
- JavaSE 反射机制
- JavaSE 反射 (进阶)
- JavaSE 反射技术
- JavaSE学习--反射
- JavaSe——反射
- 黑马程序员-javase-反射
- JavaSE增强之反射
- JavaSE-反射机制
- JavaSE反射机制-笔记
- 【javase复习】## 反射 ##
- MATLAB实用函数
- 屏蔽linux 的启动打印信息
- 1101:小明A+B
- PHP进阶(第一弹:数组)
- 使用云CRM的10个理由
- JavaSE 反射 Part5
- 利用SpringMVC原生封装的对象实现图片上传及图片回显功能的实现及案例代码
- 关于json简易说明使用
- JVM内存初学 堆、栈、方法区
- 【JZOJ5317】【清华集训2017模拟8.19】func
- webservice接口的生成与调用
- File存储
- USB驱动--设备驱动程序
- CodeForces 732D Exams (思维+set乱搞)