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

网站首页二级下拉框怎么做帝国cms商城

网站首页二级下拉框怎么做,帝国cms商城,wordpress页面删除标题,电子商务网站设计案例Java实现动态代理 Java中的动态代理是一种在运行时动态创建代理类和对象的机制,允许开发者在不修改原类代码的情况下,增加额外的功能。主要通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来实现。 准备要求: 1.接…

Java实现动态代理

        Java中的动态代理是一种在运行时动态创建代理类和对象的机制,允许开发者在不修改原类代码的情况下,增加额外的功能。主要通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来实现。

准备要求:

1.接口:动态代理要求目标对象必须实现一个或多个接口

2.实现InvocationHandler:这是一个接口,你需要在代理类中实现它,用来定义代理对象在处理方法调用时的行为。

3.Proxy类:这是提供新代理实例的类。它包含静态方法newProxyInstance,用于在运行时创建代理对象。

实现流程:

1. 定义接口:定义一个或多个接口,这些接口将被代理类实现。

2. 实现InvocationHandler:创建一个类实现InvocationHandler接口,并在invoke方法中定义代理逻辑。

3. 创建代理对象:使用Proxy.newProxyInstance方法创建代理对象。

关系示意图:

示例:

1.首先创建被代理对象的接口:

public interface IService {public void sayHello();public void sayGoodbye();
}

2.创建该接口的实现类:

public class ServiceImpl implements IService{@Overridepublic void sayHello() {System.out.println("hello world");}@Overridepublic void sayGoodbye() {System.out.println("goodbye world");}
}

3.编写增强类(实现InvocationHandler接口的类)增强我们的接口实现类:

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;//增强类
public class ServiceHandler implements InvocationHandler {//引入需要被增强类的实例对象private Object target;public ServiceHandler(Object target) {this.target = target;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("Before method: " + method.getName());//通过反射机制来执行原始方法Object result = method.invoke(target, args);System.out.println("After method: " + method.getName());return result;}
}

4.客户端代码:

import java.lang.reflect.Proxy;public class Main {public static void main(String[] args) {//创建被增强类(我的接口的实现类)对象ServiceImpl service = new ServiceImpl();//创建增强类(InvocationHandler接口的实现类)对象ServiceHandler handler = new ServiceHandler(service);//生成代理对象(被增强过的IService实例对象)IService proxy = (IService) Proxy.newProxyInstance(IService.class.getClassLoader(),new Class[]{IService.class},handler);proxy.sayHello();proxy.sayGoodbye();}
}

运行结果:

        可以看到,我们成功地通过动态代理的方式对Service实现了增强。原本只会打印一句"Hello world",现在调用sayHello方法时,还会额外进行两句话地打印。在实际开发中,不一定就只是打印两句话,还可以干更多的事情。 

http://www.dtcms.com/a/551419.html

相关文章:

  • 网站开发实验心得张店专业网站优化哪家好
  • 网站建设公司logo新手做销售怎么开发客户
  • 公司建设网站价格多少钱企业宣传网站
  • 如何建立一个网站英语作文网站搭建平台源码
  • 如何在微信公众号中导入wordpressseo优化行业
  • 做网站开发的有哪些公司好jsp开发网站
  • 福州网站制作计划官网站内优化怎么做
  • [Linux] 内核红黑树实现详解
  • wordpress 快站浏览器小游戏在线玩
  • 漳浦网站设计vue框架 wordpress
  • 足球哪个网站做的比较好网站可以不备案吗
  • 营销型网站 案例南京网站推广费用
  • 建设网站入不入无形资产吉林省吉林市邮政编码
  • 网站模版网 下载博物馆建设网站的作用
  • 网站推广方案怎么写传奇游戏排行榜
  • 做商城网站服务器配置怎么选择2 网站建设的一般步骤包含哪些
  • 网站开发 网络工程 哪个好成都旅游几月份去最佳时间
  • 网站建设需要哪些软件沙县住房和城乡规划建设局网站
  • 梅州网站建设求职简历网页布局排版技巧
  • 河南住房与建设厅网站外贸建站用什么服务器
  • 清远住房和城乡建设局网站网站建设上机考试题目
  • 网站优化北京哪家强?wordpress编译太慢
  • 安徽房和城乡建设部网站wordpress 清空 demo
  • 学做网站需要学哪些软件网络宣传怎么做
  • 网站建设人员招聘要求上海idc机房托管
  • 建设美食电子商务网站沧州网站制作
  • 免费开源代码网站网站如何做seo规划
  • 一学一做动漫视频网站重庆网站营销公司
  • 汕头网站备案滑动门代码 wordpress
  • 网站中搜索栏怎么做的管理软件网站模板