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

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

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

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

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

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

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

1、靜態(tài)代理在代理前就知道要代理的是哪個對象,而動態(tài)代理是運行時才知道;

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

JDK與Cglib動態(tài)代理對比:

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

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

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

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

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

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

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

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

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

  正向代理的用途:

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

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

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

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

 反向代理: 不需要你做任何設(shè)置,直接訪問服務(wù)器真實ip或者域名,但是服務(wù)器內(nèi)部會自動根據(jù)訪問內(nèi)容進(jìn)行跳轉(zhuǎn)及內(nèi)容返回,你不知道它最終訪問的是哪些機器。反向代理(Reverse Proxy)實際運行方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個服務(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支持配置反向代理,通過反向代理實現(xiàn)網(wǎng)站的負(fù)載均衡。拿出一個nginx服務(wù)器做反向代理,其他nginx依然是服務(wù)器。nginx反向代理可以解決跨域的問題!

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

總結(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腳本的三種方法

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

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

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

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

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

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

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

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

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

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

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

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

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

    Java雙冒號(::)運算符使用詳解

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

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

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

最新評論

镇远县| 清苑县| 乐亭县| 柘城县| 海口市| 延寿县| 信丰县| 洪雅县| 台南县| 宾川县| 荔浦县| 花垣县| 鱼台县| 鄢陵县| 盱眙县| 东丽区| 水富县| 新郑市| 山阴县| 兴仁县| 嵊泗县| 阜康市| 武冈市| 瑞昌市| 翁牛特旗| 宁海县| 阿拉善盟| 新巴尔虎右旗| 京山县| 桦甸市| 雅安市| 呼和浩特市| 科尔| 漯河市| 武清区| 滨州市| 石河子市| 许昌市| 香格里拉县| 云梦县| 察哈|