当前位置: 首页 > news >正文

个人开店做外贸网站建设部网站燃气管理部门

个人开店做外贸网站,建设部网站燃气管理部门,深圳制作网站公司哪家好,wordpress 视频截图JDK 动态代理是通过 JDK 中的 java.lang.reflect.Proxy 类实现的。下面通过具体的案例演示 JDK 动态代理的使用。 1. 创建项目 在 MyEclipse 中创建一个名称为 spring 的 Web 项目#xff0c;将 Spring 支持和依赖的 JAR 包复制到 Web 项目的 WEB-INF/lib 目录中#xff0c;…JDK 动态代理是通过 JDK 中的 java.lang.reflect.Proxy 类实现的。下面通过具体的案例演示 JDK 动态代理的使用。 1. 创建项目 在 MyEclipse 中创建一个名称为 spring 的 Web 项目将 Spring 支持和依赖的 JAR 包复制到 Web 项目的 WEB-INF/lib 目录中并发布到类路径下。 2. 创建接口 CustomerDao 在项目的 src 目录下创建一个名为 com.mengma.dao 的包在该包下创建一个 CustomerDao 接口编辑后如下所示。 package com.mengma.dao;public interface CustomerDao {public void add(); // 添加public void update(); // 修改public void delete(); // 删除public void find(); // 查询 }3. 创建实现类 CustomerDaoImpl 在 com.mengma.dao 包下创建 CustomerDao 接口的实现类 CustomerDaoImpl并实现该接口中的所有方法如下所示。 package com.mengma.dao; public class CustomerDaoImpl implements CustomerDao {Overridepublic void add() {System.out.println(添加客户...);}Overridepublic void update() {System.out.println(修改客户...);}Overridepublic void delete() {System.out.println(删除客户...);}Overridepublic void find() {System.out.println(修改客户...);} }4. 创建切面类 MyAspect 在 src 目录下创建一个名为 com.mengma.jdk 的包在该包下创建一个切面类 MyAspect编辑后如下所示。 package com.mengma.jdk;public class MyAspect {public void myBefore() {System.out.println(方法执行之前);}public void myAfter() {System.out.println(方法执行之后);} }上述代码中在切面中定义了两个增强的方法分别为 myBefore() 方法和 myAfter() 方法用于对目标类CustomerDaoImpl进行增强。 5. 创建代理类 MyBeanFactory 在 com.mengma.jdk 包下创建一个名为 MyBeanFactory 的类在该类中使用 java.lang.reflect.Proxy 实现 JDK 动态代理如下所示。 package com.mengma.jdk;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;import com.mengma.dao.CustomerDao; import com.mengma.dao.CustomerDaoImpl;public class MyBeanFactory {public static CustomerDao getBean() {// 准备目标类final CustomerDao customerDao new CustomerDaoImpl();// 创建切面类实例final MyAspect myAspect new MyAspect();// 使用代理类进行增强return (CustomerDao) Proxy.newProxyInstance(MyBeanFactory.class.getClassLoader(),new Class[] { CustomerDao.class }, new InvocationHandler() {public Object invoke(Object proxy, Method method,Object[] args) throws Throwable {myAspect.myBefore(); // 前增强Object obj method.invoke(customerDao, args);myAspect.myAfter(); // 后增强return obj;}});} }上述代码中定义了一个静态的 getBean() 方法这里模拟 Spring 框架的 IoC 思想通过调用 getBean() 方法创建实例第 14 行代码创建了 customerDao 实例。 在目标类方法执行的前后分别执行切面类中的 myBefore() 方法和 myAfter() 方法。 6. 创建测试类 JDKProxyTest 在 com.mengma.jdk 包下创建一个名为 JDKProxyTest 的测试类如下所示。 package com.mengma.jdk;import org.junit.Test; import com.mengma.dao.CustomerDao;public class JDKProxyTest {Testpublic void test() {// 从工厂获得指定的内容相当于spring获得但此内容时代理对象CustomerDao customerDao MyBeanFactory.getBean();// 执行方法customerDao.add();customerDao.update();customerDao.delete();customerDao.find();} }上述代码中在调用 getBean() 方法时获取的是 CustomerDao 类的代理对象然后调用了该对象中的方法。 7. 运行项目并查看结果 使用 JUnit 测试运行 test() 方法运行成功后控制台的输出结果如下图所示。 从输出结果中可以看出在调用目标类的方法前后成功调用了增强的代码由此说明JDK 动态代理已经实现。
http://www.zqtcl.cn/news/43938/

相关文章:

  • 在线音乐播放网站模板牡丹江网站开发
  • 网站搭建哪家好国外好的电商网站有哪些
  • joomla 企业网站模板中关村在线小程序
  • 企业建设网站维护平面设计网络接单
  • 网站的维护及建设网站建设怎么搞
  • 弹幕网站开发难么杭州百度推广
  • 在重庆_那里可以做诚信网站认证分销商城系统源码
  • 免费观看行情软件网站进入百度域名注册流程
  • 在郑州建设网站这么做模版网站利于优化
  • 打开一个网站慢中国十大服务外包企业
  • 住房和城乡建设部网站倪虹四川住房建设和城乡建设厅新网站
  • 专门做电商的招聘网站网站如何创建
  • 网站建设热门吗单页网站域名
  • 每天自动更新的网站wordpress会员充值管理系统
  • 响应式网站建设品牌全网天下下载 asp网站
  • 龙华区住房和建设局网站wordpress用什么图床好
  • 温州编程网站网站备案图片
  • 哪个公司网站做的最好dedecms网站布局的模版修改方法
  • 重庆品牌网站建设公司哪家好有没有帮忙做标书的网站
  • 印刷个性化网站建设的意义wordpress主题详情更改版权
  • 外贸石材网站网络推广网站公司推荐
  • 通过高新区网站建设淘宝网请人做淘宝客网站
  • 蚂蜂窝网站分析网站建设的解决方案
  • 网站备案换接入商加工网袋的设备多少钱
  • 提供网站建设的功能浙江省建设信息港三类人员证书查询
  • 网站被k申诉房屋装修在线设计网站
  • 网站群发软件做网站有高手没有
  • 优秀的门户网站房地产销售新手必学知识
  • 二道江网站建设桂林市电力建设公司网站
  • 网站中文章内图片做超链接教育在线网站怎样做直播