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

网站域名注册商杭州滨江区建设局网站

网站域名注册商,杭州滨江区建设局网站,品牌设计公司企业logo设计,WordPress的数据库建表在Java中#xff0c;代理模式#xff08;Proxy Pattern#xff09;可以通过静态代理和动态代理两种主要方式实现。 一、静态代理模式 在编译时就已经确定了代理类和被代理类的关系。 代理类和目标对象通常实现相同的接口或继承相同父类。 缺点是对于每个需要代理的目标对象…在Java中代理模式Proxy Pattern可以通过静态代理和动态代理两种主要方式实现。 一、静态代理模式 在编译时就已经确定了代理类和被代理类的关系。 代理类和目标对象通常实现相同的接口或继承相同父类。 缺点是对于每个需要代理的目标对象都需要创建一个代理类这会导致代码膨胀。 interface Service {void performAction(); }class RealService implements Service {Overridepublic void performAction() {System.out.println(Performing action in RealService.);} }class StaticProxy implements Service {private final Service realService;public StaticProxy(Service realService) {this.realService realService;}Overridepublic void performAction() {// 可以添加前置处理逻辑System.out.println(Before performing action.);realService.performAction();// 可以添加后置处理逻辑System.out.println(After performing action.);} } 二、动态代理模式 动态代理允许我们在运行时创建代理对象而不需要为每一个委托类都编写一个具体的代理类。这提供了更高的灵活性和可扩展性。Java中的动态代理主要分为两种基于接口的代理和基于子类的代理。 1. JDK动态代理 使用java.lang.reflect.Proxy类结合InvocationHandler接口在运行时动态生成代理对象。 只适用于实现了接口的类。 这种方式允许在不修改原代码的情况下为多个接口方法添加通用的行为。 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;public class DynamicProxyExample {public static void main(String[] args) {Service realService new RealService();Service proxyInstance (Service) Proxy.newProxyInstance(realService.getClass().getClassLoader(),realService.getClass().getInterfaces(),new InvocationHandler() {Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(Before method.getName());Object result method.invoke(realService, args);System.out.println(After method.getName());return result;}});proxyInstance.performAction();} } 2. CGLIB 动态代理 当目标对象没有实现任何接口时可以使用CGLIB库通过继承的方式生成代理类。 CGLIB会在运行时生成目标类的一个子类并重写其中的方法以插入自定义逻辑。 注意由于CGLIB是通过继承实现的因此不能用于代理final类或方法。 使用CGLIB需要引入相应的依赖如Maven依赖。 dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.3.0/version /dependency import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;public class CglibProxyExample {public static void main(String[] args) {Enhancer enhancer new Enhancer();enhancer.setSuperclass(RealService.class);enhancer.setCallback(new MethodInterceptor() {Overridepublic Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {System.out.println(Before method.getName());Object result proxy.invokeSuper(obj, args);System.out.println(After method.getName());return result;}});Service service (Service) enhancer.create();service.performAction();}
http://www.hkea.cn/news/14377281/

相关文章:

  • 网站建设流程平台东莞常平邮编
  • 手机泉州网宣城seo
  • 建设银行交学费网站2018wordpress稳定版
  • 怎样自己建立一个网站上海网警
  • 网站建设公司自适应源码钓鱼网站网站怎么做
  • 博达网站建设教程php网站建设教程
  • 龙岗企业网站改版公司重庆网站定制哪家好
  • 大兴区制作网站的公司品牌排行榜
  • 成都做公众号推广的公司公司网站优化方案
  • 服装网站建设论文网站空间和服务器有什么区别
  • 贴心的网站优化公司可以做动画的网站都有哪些软件下载
  • 北京建设电工证查询网站wix怎么做网页
  • 网站建设柒金手指花总12oa办公系统企业
  • 百度网站建设工资原版百度
  • 深圳企业网站制作公司介绍上海网站建设-目前企业网站所面临的困惑
  • 设计本网站是用什么做的优化网站流量
  • 域名到期网站天眼查官网登录入口
  • 网站建设洪塔河南网站备案地址
  • 网站建设的实践报告网站搭建服务器需要多少钱
  • 网站制作需要多长时间无锡手机网站开发
  • 个人网站做电影资源链接犯法吗网站后台内容编辑器下载
  • 陕西 工程建设 公司 网站专业软文发稿平台
  • 建设公司网站需要什么技术广州工商学院官网
  • 慧聪网de网站建设策略电影网站开发需要多少钱
  • wordpress 多域名多站点如何做网站首页优化
  • 宽屏网站欣赏网站建设公司销售提成
  • 介绍网络营销的短文视频优化网站怎么做
  • 如何选择邯郸网站建设wordpress 小工具移动
  • 购物网站开发问题衡水网络营销公司
  • 宠物网站设计与制作如何让商家建设网站