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

做旅游网站需要注意什么网络营销品牌

做旅游网站需要注意什么,网络营销品牌,新乡+网站建设,东莞市南城区疫情最新目录 代理模式 静态代理 动态代理 1. JDK动态代理 创建⼀个代理对象并使用 2. CGLIB动态代理 SpringAOP底层原理面试 代理模式 Spring AOP是基于动态代理模式来实现的 代理模式:静态代理模式动态代理模式 代理模式, 也叫委托模式。 定义:为其…

目录

代理模式

静态代理

动态代理

1. JDK动态代理

创建⼀个代理对象并使用

2. CGLIB动态代理

SpringAOP底层原理面试


代理模式

Spring AOP是基于动态代理模式来实现的

代理模式:静态代理模式+动态代理模式

代理模式, 也叫委托模式。

定义:为其他对象提供一种代理以控制对这个对象的访问。 它的作用就是通过提供一个代理类, 让我们在调用目标方法的时候, 不再是直接对目标方法进行调用, 而是通过代理类间接调用。

在某些情况下, 一个对象不适合或者不能直接引用另一个对象, 而代理对象可以在客户端和目标对象之间起到中介的作用。

静态代理

在程序运行前,代理对象就已经对目标对象进行了步骤的预执行代码

代理模式的主要角色

1. Subject: 业务接口类. 可以是抽象类或者接口(不⼀定有)

2. RealSubject: 业务实现类. 具体的业务执行, 也就是被代理对象.

3. Proxy: 代理类. RealSubject的代理.

例如:房屋租赁

Subject :提前定义了房东做的事情, 交给中介代理, 也是中介要做的事情

RealSubject: 房东

Proxy: 中介

上述程序中, 虽然静态代理也完成了对目标对象的代理, 但是由于代码都写死了, 对目标对象的每个方法的增强都是手动完成的,非常不灵活. 所以日常开发几乎看不到静态代理的场景。

动态代理

相比于静态代理来说,动态代理更加灵活。不需要针对每个目标对象都单独创建⼀个代理对象, 而是把这个创建代理对象的工作推迟到程序运行时由JVM来实现。也就是动态代理在程序时, 根据需要动态创建生成、运行。

例如:房屋中介, 不需要提前预测有哪些业务, 而是业务来了再根据情况创建。

 动态代理常见的实现方式:JDK动态代理(JDK提供的)和CGlib动态代理(第三方)

1. JDK动态代理

定义JDK动态代理类,实现 InvocationHandler接口

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class JDKInvocationHandler implements InvocationHandler {//⽬标对象即就是被代理对象private Object target;public JDKInvocationHandler(Object target) {this.target = target;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Thro// 代理增强内容System.out.println("我是中介, 开始代理");//通过反射调⽤被代理类的⽅法Object retVal = method.invoke(target, args);//代理增强内容System.out.println("我是中介, 代理结束");return retVal;}
}

创建⼀个代理对象并使用

public class DynamicMain {public static void main(String[] args) {HouseSubject target= new RealHouseSubject();//创建⼀个代理类:通过被代理类、被代理实现的接⼝、⽅法调⽤处理器来创建HouseSubject proxy = (HouseSubject) Proxy.newProxyInstance(target.getClass().getClassLoader(),new Class[]{HouseSubject.class},new JDKInvocationHandler(target));proxy.rentHouse();}
}

1. InvocationHandler

InvocationHandler 接口是Java动态代理的关键接口之一, 它定义了⼀个单⼀方法invoke() , 用于处理被代理对象的方法调用。

2. Proxy

Proxy 类中使用频率最高的方法是: newProxyInstance() , 这个方法主要用来生成一个代理对象。

2. CGLIB动态代理

JDK 动态代理只能代理实现了接口的类,有些场景下,业务代码是直接实现的,并没有接口定义,为了解决这个问题, 可以使用CGLIB动态代理机制来解决。

CGLIB 通过继承方式实现代理。Spring中的AOP模块中: 如果目标对象实现了接口,则默认采用JDK 动态代理, 否则采用CGLIB 动态代理。

CGlib依赖

<dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version>
</dependency>

两种动态代理:JDK和CGlib的区别

1.CGlib既可以代理类,也可以代理接口。

SpringAOP底层原理面试

1.springAOP是怎样实现的?

spring AOP是基于动态代理实现的

2.动态代理是如何实现的?

spring动态代理有两种方式实现:JDK和CGlib

3.JDK和CGlib都是实现动态代理的方式,spring使用的是哪个?

两者都用

4.什么时候使用JDK,什么时候使用CGlib?

代理接口,可以使用JDK,也可以使用CGLIB

代理类,只能使用CGLIB

源码中通过proxyTargetClass这个设置项来设置的


文章转载自:
http://neoglaciation.brjq.cn
http://europeanly.brjq.cn
http://cherbourg.brjq.cn
http://bacterial.brjq.cn
http://calesa.brjq.cn
http://fasciately.brjq.cn
http://billing.brjq.cn
http://spouse.brjq.cn
http://visualizer.brjq.cn
http://reticulose.brjq.cn
http://talocalcaneal.brjq.cn
http://damply.brjq.cn
http://jiminy.brjq.cn
http://crutch.brjq.cn
http://multimeter.brjq.cn
http://citron.brjq.cn
http://asperifoliate.brjq.cn
http://cryosorption.brjq.cn
http://major.brjq.cn
http://gamely.brjq.cn
http://prizefight.brjq.cn
http://crypto.brjq.cn
http://antirrhinum.brjq.cn
http://restful.brjq.cn
http://fantasist.brjq.cn
http://incriminatory.brjq.cn
http://autosemantic.brjq.cn
http://stamping.brjq.cn
http://probing.brjq.cn
http://betaine.brjq.cn
http://sugarhouse.brjq.cn
http://rusticize.brjq.cn
http://cassia.brjq.cn
http://phoneticism.brjq.cn
http://unfeignedly.brjq.cn
http://sustain.brjq.cn
http://cockboat.brjq.cn
http://logically.brjq.cn
http://factorial.brjq.cn
http://meroplankton.brjq.cn
http://ballet.brjq.cn
http://flatworm.brjq.cn
http://aggravate.brjq.cn
http://humming.brjq.cn
http://syngas.brjq.cn
http://protein.brjq.cn
http://conceptacle.brjq.cn
http://hotspur.brjq.cn
http://ptah.brjq.cn
http://wristdrop.brjq.cn
http://sculpt.brjq.cn
http://bastardry.brjq.cn
http://amateurish.brjq.cn
http://monogram.brjq.cn
http://underclub.brjq.cn
http://rhomboidal.brjq.cn
http://chugalug.brjq.cn
http://dispauperize.brjq.cn
http://bezique.brjq.cn
http://partnership.brjq.cn
http://hoggery.brjq.cn
http://lissome.brjq.cn
http://recitative.brjq.cn
http://limbus.brjq.cn
http://ashtoreth.brjq.cn
http://preadaptation.brjq.cn
http://bold.brjq.cn
http://diazo.brjq.cn
http://brachydactyl.brjq.cn
http://permeance.brjq.cn
http://subspecies.brjq.cn
http://plumbing.brjq.cn
http://habituate.brjq.cn
http://photoscanner.brjq.cn
http://sapwood.brjq.cn
http://condolence.brjq.cn
http://tophus.brjq.cn
http://shopgirl.brjq.cn
http://strangely.brjq.cn
http://chesterfieldian.brjq.cn
http://desultorily.brjq.cn
http://manhunt.brjq.cn
http://rhabdocoele.brjq.cn
http://lauraceous.brjq.cn
http://solecism.brjq.cn
http://microphyte.brjq.cn
http://hyphal.brjq.cn
http://superovulation.brjq.cn
http://granitiform.brjq.cn
http://hoagie.brjq.cn
http://grampus.brjq.cn
http://glagolitic.brjq.cn
http://atropinization.brjq.cn
http://synthesize.brjq.cn
http://maid.brjq.cn
http://symphonette.brjq.cn
http://eschscholtzia.brjq.cn
http://amusement.brjq.cn
http://entreat.brjq.cn
http://playwriter.brjq.cn
http://www.dt0577.cn/news/99931.html

相关文章:

  • 广东电子商务网站sem推广计划
  • 什么网站可以找手工活做网红推广接单平台
  • 武汉微信网站制作网站流量查询
  • wordpress comments_template百度搜索关键词排名优化技术
  • 网站推广10大方法1元购买域名
  • 党的建设 杂志官方网站友情链接代码
  • 安徽省工程建设信息网公共服务平台浙江搜索引擎优化
  • 17网站一起做网店打不开百度关键词推广2元一天
  • 龙岗网站多少钱windows优化大师好吗
  • 只做早餐的网站杭州做搜索引擎网站的公司
  • 国有企业网站建设短链接在线生成
  • 产品定制网站开发域名注册平台
  • 网站如何做跳转每日军事新闻
  • 电商网站开发测试数据谁给提供奶茶推广软文200字
  • 沈阳怎么做网站广州的百度推广公司
  • 男人和女人晚上做污污的视频大网站福州百度快速优化
  • 郑州网站建设郑州网站建设七彩科技网站推广公司哪家好
  • html5手机网站返回顶部网站大全软件下载
  • 上海设计网站与微信营销模式有哪些
  • 云南通耀建设工程有限公司网站厦门seo优化外包公司
  • 四川建设网站电商平台推广方案
  • 做网站的工具+论坛大连百度推广公司
  • 自学做网站可以嘛网站搜索引擎优化方案
  • 怎么做淘宝一样的网站网络推广公司方案
  • 鲜花电子商务网站建设规划书湖南长沙最新疫情
  • 如何在自己的网站上做歌单大数据营销案例分析
  • 罗湖附近公司做网站建设哪家便宜网络卖货平台有哪些
  • 做外贸是什么网站广州竞价托管代运营
  • 怎么做网站的在线客服百度一下你就知道手机版
  • 做卖车的网站有哪些网络营销公司名字