最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設(shè)計(jì)模式--代理模式

 更新時(shí)間:2021年07月02日 16:49:00   作者:摸金青年v  
代理就是一個(gè)人或者一個(gè)機(jī)構(gòu)代表另一個(gè)人或者另一個(gè)機(jī)構(gòu)采取行動(dòng)。在一些情況下,一個(gè)客戶不想或者不能夠直接引用一個(gè)對(duì)象,而代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之前起到中介的作用

1、代碼設(shè)計(jì)的代理模式

代理模式屬于構(gòu)建型模式(Proxy),提供了對(duì)目標(biāo)對(duì)象的一種訪問方式; 即通過代理對(duì)象訪問目標(biāo)對(duì)象。這樣做的好處是:可以在目標(biāo)對(duì)象實(shí)現(xiàn)的基礎(chǔ)上,增強(qiáng)額外的功能操作,即擴(kuò)展目標(biāo)對(duì)象的功能.這里使用到編程中的一個(gè)思想:不要隨意去修改別人已經(jīng)寫好的代碼或者方法,如果需改修改,可以通過代理的方式來擴(kuò)展該方法。

主要思想: 由被代理對(duì)象(業(yè)務(wù)類)和代理類組成,代理類通常包括日志代理類、權(quán)限代理類。

動(dòng)態(tài)代理和靜態(tài)代理的區(qū)別:

1、靜態(tài)代理在代理前就知道要代理的是哪個(gè)對(duì)象,而動(dòng)態(tài)代理是運(yùn)行時(shí)才知道;

2、靜態(tài)代理一般只能代理一個(gè)類,而動(dòng)態(tài)代理能代理實(shí)現(xiàn)了接口的多個(gè)類;

JDK與Cglib動(dòng)態(tài)代理對(duì)比:

1、JDK動(dòng)態(tài)代理只能代理實(shí)現(xiàn)了接口的類,沒有實(shí)現(xiàn)接口的類不能實(shí)現(xiàn)JDK的動(dòng)態(tài)代理;

2、Cglib動(dòng)態(tài)代理是針對(duì)類實(shí)現(xiàn)代理的,運(yùn)行時(shí)動(dòng)態(tài)生成被代理類的子類攔截父類方法調(diào)用,因此不能代理聲明為final類型的類和方法;

動(dòng)態(tài)代理主要應(yīng)用場(chǎng)景:Spring AOP面向切面底層 ——Spring如何選擇兩種代理模式

1、如果目標(biāo)對(duì)象實(shí)現(xiàn)了接口,則默認(rèn)采用JDK動(dòng)態(tài)代理;

2、如果目標(biāo)對(duì)象沒有實(shí)現(xiàn)接口,則使用Cglib代理;

3、如果目標(biāo)對(duì)象實(shí)現(xiàn)了接口,但強(qiáng)制使用了Cglib,則使用Cglib進(jìn)行代理
 

2、計(jì)算機(jī)網(wǎng)絡(luò)中的正向代理和反向代理

正向代理: 需要你主動(dòng)設(shè)置代理服務(wù)器ip或者域名進(jìn)行訪問,由設(shè)置的服務(wù)器ip或者域名去獲取訪問內(nèi)容并返回;

具體:正向代理 是一個(gè)位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端??蛻舳吮仨氁M(jìn)行一些特別的設(shè)置才能使用正向代理。

  正向代理的用途:

 ?。?)訪問原來無法訪問的資源,如google

       (2) 可以做緩存,加速訪問資源

 ?。?)對(duì)客戶端訪問授權(quán),上網(wǎng)進(jìn)行認(rèn)證

 ?。?)代理可以記錄用戶訪問記錄(上網(wǎng)行為管理),對(duì)外隱藏用戶信息

 反向代理: 不需要你做任何設(shè)置,直接訪問服務(wù)器真實(shí)ip或者域名,但是服務(wù)器內(nèi)部會(huì)自動(dòng)根據(jù)訪問內(nèi)容進(jìn)行跳轉(zhuǎn)及內(nèi)容返回,你不知道它最終訪問的是哪些機(jī)器。反向代理(Reverse Proxy)實(shí)際運(yùn)行方式是指以代理服務(wù)器來接受internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。

反向代理的作用:

(1)保證內(nèi)網(wǎng)的安全,可以使用反向代理提供WAF功能,阻止web攻擊。大型網(wǎng)站,通常將反向代理作為公網(wǎng)訪問地址,Web服務(wù)器是內(nèi)網(wǎng)。

 (2)負(fù)載均衡,通過反向代理服務(wù)器來優(yōu)化網(wǎng)站的負(fù)載

 nginx反向代理

 nginx支持配置反向代理,通過反向代理實(shí)現(xiàn)網(wǎng)站的負(fù)載均衡。拿出一個(gè)nginx服務(wù)器做反向代理,其他nginx依然是服務(wù)器。nginx反向代理可以解決跨域的問題!

正向代理是代理客戶端,為客戶端收發(fā)請(qǐng)求,使真實(shí)客戶端對(duì)服務(wù)器不可見
反向代理是代理服務(wù)器端,為服務(wù)器收發(fā)請(qǐng)求,使真實(shí)服務(wù)器對(duì)客戶端不可見

總結(jié)

本篇文章就到這里了,希望可以給你帶來一些幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • elasticsearch索引創(chuàng)建create?index集群matedata更新

    elasticsearch索引創(chuàng)建create?index集群matedata更新

    這篇文章主要介紹了elasticsearch索引創(chuàng)建create?index及集群matedata更新,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 在java中調(diào)用python腳本的三種方法

    在java中調(diào)用python腳本的三種方法

    實(shí)際工程項(xiàng)目中可能會(huì)用到Java和python兩種語言結(jié)合進(jìn)行,這樣就會(huì)涉及到一個(gè)問題,就是怎么用Java程序來調(diào)用已經(jīng)寫好的python腳本呢,這篇文章主要給大家介紹了關(guān)于在java中調(diào)用python腳本的三種方法,需要的朋友可以參考下
    2023-09-09
  • Java使用組合模式實(shí)現(xiàn)表示公司組織結(jié)構(gòu)功能示例

    Java使用組合模式實(shí)現(xiàn)表示公司組織結(jié)構(gòu)功能示例

    這篇文章主要介紹了Java使用組合模式實(shí)現(xiàn)表示公司組織結(jié)構(gòu)功能,簡單描述了組合模式的概念、功能并結(jié)合實(shí)例形式分析了Java使用組合模式實(shí)現(xiàn)公司組織結(jié)構(gòu)表示功能具體操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)動(dòng)態(tài)權(quán)限問題

    SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)動(dòng)態(tài)權(quán)限問題

    這篇文章主要介紹了SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)-動(dòng)態(tài)權(quán)限,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 使用Java計(jì)算集合中的組內(nèi)平均值的代碼實(shí)現(xiàn)

    使用Java計(jì)算集合中的組內(nèi)平均值的代碼實(shí)現(xiàn)

    在Java開發(fā)中,集合(Collection)是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于各種場(chǎng)景,計(jì)算集合中的組內(nèi)平均值是一個(gè)常見的操作,本文將深入探討如何使用Java來計(jì)算集合中的組內(nèi)平均值,涵蓋基本概念、具體實(shí)現(xiàn)、優(yōu)化策略和實(shí)用示例,需要的朋友可以參考下
    2024-06-06
  • Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解

    Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解

    這篇文章主要介紹了Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解Java泛型及其應(yīng)用

    詳解Java泛型及其應(yīng)用

    這篇文章主要介紹了Java泛型及其應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Intellij IDEA 熱部署處理方法(圖解)

    Intellij IDEA 熱部署處理方法(圖解)

    本文通過圖文并茂的形式給大家介紹了Intellij IDEA 熱部署處理方法,需要的朋友可以參考下
    2018-02-02
  • Java雙冒號(hào)(::)運(yùn)算符使用詳解

    Java雙冒號(hào)(::)運(yùn)算符使用詳解

    之前沒用過::這個(gè)東西,今天看flink的時(shí)候發(fā)現(xiàn)官網(wǎng)有個(gè)例子用到了這個(gè)符號(hào),本文就詳細(xì)的來介紹一下Java雙冒號(hào)(::)運(yùn)算符使用詳解,感興趣的可以了解一下
    2021-09-09
  • SpringBoot?LiteFlow引擎框架使用原理解析

    SpringBoot?LiteFlow引擎框架使用原理解析

    LiteFlow是一個(gè)輕量且強(qiáng)大的國產(chǎn)規(guī)則引擎框架,可用于復(fù)雜的組件化業(yè)務(wù)的編排領(lǐng)域,本文給大家介紹SpringBoot?LiteFlow引擎框架的相關(guān)操作,感興趣的朋友跟隨小編一起看看吧
    2024-03-03

最新評(píng)論

昌乐县| 石泉县| 余姚市| 晋宁县| 荥阳市| 临湘市| 广元市| 南丰县| 广饶县| 永春县| 中牟县| 依安县| 沧州市| 西昌市| 日喀则市| 堆龙德庆县| 翁源县| 大方县| 灵山县| 仙桃市| 辰溪县| 衡阳市| 青阳县| 勃利县| 昭平县| 平遥县| 泸溪县| 甘孜| 印江| 渑池县| 岢岚县| 偃师市| 泸水县| 江门市| 墨竹工卡县| 郧西县| 汉阴县| 礼泉县| 靖宇县| 白山市| 栾川县|