JAVA动态代理
来源:互联网 发布:最近4g移动网络好差劲 编辑:程序博客网 时间:2024/05/17 04:41
package vo;public class User {private int id;private String username;private String password;public User(){System.out.println("user对象创建成功");}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
UserDao.java
package dao;import vo.User;public interface UserDAO {void insert(User user);void test();}
TaskDao.java
package dao;public interface TaskDAO {void delete(String tid);}
TaskDaoImpl.java
package dao.imp;import dao.TaskDAO;public class TaskDAOIMP implements TaskDAO {@Overridepublic void delete(String tid) {System.out.println("删除任务");}}
UserDaoImpl:
package dao.imp;import vo.User;import dao.UserDAO;public class UserDAOIMP implements UserDAO {@Overridepublic void insert(User user) {System.out.println("UserDAOIMP的insert(user)方法被调用");}@Overridepublic void test() {System.out.println("UserDAOIMP的test()方法被调用");}}
Test.java
package test;import java.lang.reflect.Proxy;import proxy.DynaProxy;import dao.TaskDAO;import dao.UserDAO;import dao.imp.TaskDAOIMP;import dao.imp.UserDAOIMP;public class Test {public static void main(String[] args) {UserDAOIMP userDAOIMP = new UserDAOIMP();UserDAO userDAO = (UserDAO)new DynaProxy().createOject(userDAOIMP);userDAO.test();System.out.println("*************************");TaskDAO taskDAO = (TaskDAO)new DynaProxy().createOject(new TaskDAOIMP());taskDAO.delete("1");}}
package com.utils;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class DynaProxyUtils implements InvocationHandler {private Object target;/** * 绑定委托对象并返回一个代理类 * * @param target * @return */public Object createOject(Object target) {this.target = target;// 取得代理对象return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(), this);}@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {// 执行方法Object result = method.invoke(target, args);return result;}}
- Java 代理,动态代理
- [Java] Java 动态代理
- java代理及动态代理
- java代理模式--动态代理
- Java静态代理、动态代理
- Java 代理之 动态代理
- Java 代理与动态代理
- java静态代理,动态代理
- 代理模式&java动态代理
- Java代理与动态代理
- Java静态代理动态代理
- JAVA代理模式--动态代理
- java 代理和动态代理
- JAVA动态代理 代理模式
- Java动态代理--jdk代理
- Java动态代理--cglib代理
- Java 代理与动态代理
- java代理模式-动态代理
- 提高visual studio 2008运行速度
- 贵州支教之返回
- QString 若干知识
- 合理规划你的硬盘分区
- Hadoop 使用Combiner提高Map/Reduce程序效率
- JAVA动态代理
- 前期关于idp项目的总结
- 书摘-可伸缩性-垂直伸缩
- ORA-00283 & ORA-01610 的处理方法
- 效果比较好的js小日历
- 解决 Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from
- 贵州支教之总结
- spring mvc注解例子
- 转变思维方式