日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring 2.0.1 与 BEA WebLogic Server 9.2 的集成

發布時間:2024/4/17 javascript 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring 2.0.1 与 BEA WebLogic Server 9.2 的集成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.oracle.com/technetwork/cn/topics/entarch/spring-2-weblogic-server-9-integrat-091510-zhs.html

Spring 2.0.1 與 BEA WebLogic Server 9.2 的集成

作者:Andy Piper、Eric Hsiao、Rod Johnson 和 Chris Wall
04/23/2007

編輯注:Spring 2.0.2 工具包于本文完成后已經發布了,現在可供下載。

摘要

一年多以前,我們講述過 Spring 1.2.x 與 WebLogic Server 9.2 的集成。其后,我們又驗證了 Spring 和 BEA WebLogic Server 的更新的版本,一直到 WebLogic Server 9.2 和 Spring 2.0 的組合。表現出在功能性、可用性和性能上的重大飛躍,因此我們決定對文章進行更新以反映這一變化。

BEA WebLogic Server 9.2 是 Sun Microsystems 的 Java EE 1.4 平臺的領先實現。然而,WebLogic Server 的核心價值主張則體現在 Java EE 規范沒有覆蓋的領域 — 增強的管理、易用性、高可用性、可伸縮性、可靠性和性能。實際上,WebLogic Server 的價值不依賴于任何特定的編程模型,所以它也自然適用于新出現的非 Java EE 的 Java 編程模型。近年來出現的最令人激動的事物莫過于基于控制反轉 (IoC) 的模型,Spring Framework 就是它 事實上的 實現。本文介紹了 Spring 2.0 Framework、WebLogic Server 以及這兩者的集成的新特性。我們會看到,整體大于部分之和。

文章結構

文章的前兩節概述 Spring 和 WebLogic Server 以及它們各自的特性。如果您熟悉 Spring Framework,那么可以跳過第一節。如果您熟悉 WebLogic Server,那么可以跳過第二節。本文主要目的是介紹這兩種技術的集成,所以本文后續的部分都是講述這一主題的。首先,我們分析 MedRec — WebLogic Server 上的一個示例程序 — 分別以它的原始的 Java EE 形式和使用 Spring Framework 重構后的形式。之后,是關于特定的集成點的一些細節。在 WebLogic Server 上開發 Spring 應用程序,那么,幾乎可以肯定,這些細節會對您有所幫助。如果您只是想有個大致的概念,可以先閱讀標題,內容留待以后再看。最后,我們展望了一些正在考慮中的未來開發工作。

Spring 簡介

在本節中,我們將簡要地概述 Spring Framework 的特性,包括 2.0 版以來的一些新特性。

Spring 是基于 Rod Johnson 在 Expert One-on-One J2EE Design and Development(Wrox,2002)公布的代碼的一個分層的Java/Java EE 應用程序框架。Spring 的存在是因為我們相信 Java EE 應該更容易使用,并且有可能創造更簡單的 Java EE 開發方法而不會犧牲平臺性能。

Spring 支持靈活的 Java EE 開發,允許使用傳統 Java 對象(一般稱為 POJO)開發 Java EE 應用程序。

改進的 Spring 開發體驗

Spring 在其核心部分提供了一個易于配置、XML 驅動的控制反轉 (IoC) 容器。IoC 基于所謂的“好萊塢”原則:“不要打電話過來,請等通知。” 在該模式中,通過容器而不是直接編程將 Java 對象間的關系 注入 應用程序中。有兩種注入方式 — 構造函數注入和 setter 注入,具體取決于容器是通過其構造函數還是 mutator 方法將信息注入已創建的 Java 對象。

在 Spring 中,注入的屬性 — 或到其他 bean 的引用 — 是通過一個 XML 文件進行配置的,這使得配置輕而易舉。它耦合了另外一個 AOP 框架,允許非侵入性增加諸如事務處理和安全等屬性,這意味著開發人員可以專注于創建業務解決方案,而不必忙于復雜的 Java EE 開發或配置。由于容器是非侵入性的,所以您不必擔心業務代碼會被特定于供應商(此處也包括 Spring)的構件所污染。

Spring 應用程序組件

如上所述,Spring 提供了一個輕型容器,用于提供集中式、自動化的配置并連接應用程序對象。該容器是 非侵入性的,能夠以一致、透明的方式通過 IoC 將一組松耦合的組件 (POJO) 組裝成復雜的系統。 因為該容器允許首先獨立地開發和測試各軟件組件,然后在任意環境(Java SE 或 Java EE)中進行擴展部署,所以它具有靈活性和高利用率,并提高了應用程序的可測試性和可伸縮性 此外,Spring 提供了許多其他對開發人員友好的特性,下面我們一一列舉:

  • 用于事務管理的通用抽象層:支持可插入的事務管理器,使事務劃分更輕松,同時無需處理底層的問題。該層中還包括 JTA 策略和一個 JDBC DataSource。相比普通的 JTA 或 EJB CMT,Spring 的事務支持不依賴于 Java EE 環境。考慮到是一個十分靈活的非侵入性解決方案,事務語義通過 AOP 應用于 POJO,通過 XML 或 Java SE 5 注釋進行配置。

  • JDBC 抽象層:提供了一個有意義的異常層次結構(不再從 SQLException 抽取供應商代碼),簡化了錯誤處理,極大地減少了代碼編寫量。無需為了再次使用 JDBC 編寫另外的 finally 代碼塊。面向 JDBC 的異常遵循 Spring 的一般 DAO 異常層次結構。

  • 與業界領先的對象關系映射解決方案的集成:在資源擁有者、DAO 實現支持和事務策略方面。 對大量 IoC 便利特性的一流支持,解決了許多典型的 O-R 映射集成問題。所有這些都遵循 Spring 的一般事務和 DAO 異常層次結構。而且,Spring 2.0 提供了與 Java 持久性 API (JPA) 的完全集成。

  • AOP 功能:完全集成到 Spring 配置管理中。您可以對 Spring 所管理的任何對象啟用 AOP,增加了聲明性事務管理等方面。 借助于 Spring,您能夠擁有沒有 EJB 的聲明性事務管理 — 甚至也可以沒有 JTA。

  • 靈活的 MVC Web 應用程序框架:構建在核心的 Sping 功能之上。該框架是通過策略接口高度可配置的,并且適用于多種視圖技術,如 JSP、Velocity、Tiles、iText 和 POI。注意,Spring 中間層可以輕松地與基于任何其他 Web MVC 框架(如 Struts、WebWork 或 Tapestry)的 Web 層組合。

  • 用戶可擴展的配置層:允許用戶在 vanilla Spring 配置中加入自己定制的 XML 標記。整個 Spring 2.0 核心庫已經廣泛地使用此功能,以提供增強的語法和通用 Spring 特性的可用性。

  • 異步編程抽象:包括與 JMS 提供者的進行框架無關的事務集成的消息驅動的 POJO (MDP);與異步調度機制的集成,如 commonj、Java SE 并行程序和 Quartz;本地事件支持。

所有的 Spring 功能都可以在任何 Java EE 服務器上使用,大部分功能可以在非托管環境中使用。Spring 的一個重心是支持可重用業務和不依賴于特定的 Java EE 服務的數據訪問對象。這些對象可以不費事地跨 Java EE 環境(Web 或 EJB)、獨立應用程序和測試環境進行重用。

Spring 的分層體系結構提供了大量靈活性。 其所有功能都構建在較低的層次上。例如,您可以在不使用 MVC 框架或沒有 AOP 支持的情況下使用 JavaBeans 配置管理。但是,如果您要使用 Web MVC 框架或 AOP 支持,您會發現它們構建在配置框架之上,所以您可以馬上應用有關它的知識。

BEA WebLogic Server 9.2 簡介

在本節,我們將簡要概述 BEA WebLogic Server 的特性,重點強調其提供的底層基礎架構,而不是編程模型。

WebLogic Server 是可伸縮的企業級 Java EE 應用服務器。WebLogic Server 基礎架構支持各類分布式應用程序的部署,是構建各種應用程序的理想基礎。

Sun Microsystem 公司的 Java EE 1.4 規范在 WebLogic Server 上的實現提供了一組標準的 API,用以創建能夠訪問多種服務(如數據庫、消息傳遞服務和外部企業系統連接)的分布式 Java 應用程序。終端用戶客戶程序使用 Web 瀏覽器客戶端或 Java 客戶端訪問這些應用程序。由于 Java EE 是如此有名,這里我們就不進一步討論了。參見關于編程模型的 WebLogic Server 文檔,可以獲得更多信息。

除了實現 Java EE 之外,WebLogic Server 還使企業能夠在一個健壯的、安全的、高可用的、可伸縮的環境中部署任務關鍵型應用程序。這些特性允許企業配置 WebLogic Server 實例集群以分布負載,并在發生硬件或其他故障時提供額外的容量。新的診斷工具允許系統管理員監視和調優已部署的應用程序和 WebLogic Server 環境本身的性能。您還可以對 WebLogic Server 進行配置以自動監視和調整應用程序吞吐量,無需人工干預。廣泛的安全特性保護了對服務的訪問,保證了企業數據安全,并阻止了惡意攻擊。

WebLogic Server 增強的服務質量

與許多其他 BEA 產品一樣,WebLogic Server 如同冰山,浮在水面上的只是很少的一部分而已。具體來說,WebLogic Server 提供了許多特性和工具來支持高可用、可伸縮的應用程序部署:

  • WebLogic Server 集群通過將工作負載分布到多個 WebLogic Server 實例之間,為您的應用程序提供可伸縮性和可靠性。基于要處理的工作量,傳入的請求可以路由到集群中的一個 WebLogic Server 實例。如果出現硬件或其他故障,會話狀態對其他可恢復故障節點工作的集群節點可用。此外,可以實現集群,使服務駐留在這樣的單臺計算機上:如果出現故障,該計算機可以選擇將服務遷移到集群中的另一個節點上。

  • 除了在一個集群內跨服務器復制 HTTP 會話狀態之外,WebLogic Server 還能夠跨多個集群復制 HTTP 會話狀態,從而在多個地理區域、電網和 Internet 服務提供商中擴展可用性和容錯能力。

  • Work Manager 基于您定義的規則劃分工作優先級,并監視實際的運行時性能統計信息。然后利用這些信息優化應用程序的性能。Work Manager 可以全局應用于一個 WebLogic Server 域或者一個特定的應用程序組件。

  • 過載保護使 WebLogic Server 能夠檢測和避免過載情況,并從中得以恢復正常。

  • 網絡通道基于流量類型將網絡流量分散到各個通道中,有利于網絡資源的有效使用。

  • WebLogic Server 持久存儲 是一個性能卓越的內置存儲器解決方案,針對需要持久存儲的 WebLogic Server 子系統和服務。例如,它可以存儲持久的 JMS 消息,或者臨時存儲使用存儲-轉發特性發送的消息。持久存儲支持到基于文件的存儲器或到支持 JDBC 的數據庫的持久性。

  • 存儲-轉發服務使 WebLogic Server 可以在跨 WebLogic Server 實例分布的應用程序之間可靠地傳遞消息。如果發送消息時由于網絡或系統故障造成消息目標不可用,那么一個本地服務器實例將保存消息,并且當遠程目標可用時轉發。

  • 企業級就緒部署工具使應用程序簡化了從開發階段到生產環境的部署和移植。

  • 生產環境重新部署使企業能夠在不中斷舊版程序工作進程的情況下部署新版本。

?

現在,讓我們來看看這兩個系統之間的協作。

在 Java EE 和 Spring 中開發應用程序

為了比較和對照 Java EE 和 Spring 開發方法的差別,我們使用 Spring 2.0 Framework 重新編寫了 MedRec 示例程序,充分利用了 Spring 2.0 的許多創新特性。在下一節,我們將簡要介紹 MedRec 的總體體系結構,然后依次了解它的 Java EE 形式和 Spring 形式。

Medical Records 應用程序

Avitek Medical Records(或 MedRec)是一個 WebLogic Server 示例程序套件,簡明演示了 Java EE 平臺的各個方面。MedRec 旨在作為各層次 Java EE 開發人員的一個培訓工具。它顯示了每個 Java EE 組件的使用方法,闡明了適于組件交互和客戶端開發的設計模式。MedRec 還闡釋了使用 WebLogic Server 開發和部署應用程序的最佳實踐。

MedRec 背后的真實概念是一個框架,其中患者、醫生、管理人員使用各種不同的客戶端管理患者數據。對于患者,MedRec 提供基于 Web 的應用程序,供他們查看自己的醫療記錄和維護檔案文件。MedRec 為管理人員提供基于 Web 的應用程序,用于管理入院登記、醫療記錄上載和常規應用程序監視。MedRec 還提供與獨立醫療機構接合的資源。為了演示這個通信系統,MedRec 包括一個醫生應用程序,用于向 MedRec 系統請求和提供數據。

Java EE 版的 MedRec 體系結構概述

Java EE 和 WebLogic Server 版的 MedRec 的設計和實現采用傳統的三層體系結構模型,分為相互獨立的客戶端、服務器和數據存儲三個部分:

  • 表示層:該層負責所有用戶交互;有時也稱作客戶端層。

  • 服務層:該層是封裝了應用程序業務邏輯的中間層。服務層處理來自異構客戶端的請求,同時與各種后端系統進行交互,包括數據存儲。該層有時也稱作服務器層。

  • 企業信息系統 (EIS) 層:該層表示那些提供和/或存儲原有應用程序和數據庫之類數據的系統。EIS 層有時也稱作數據存儲。

我們為 MedRec 的患者和管理部門程序開發了 Web 應用程序 (webapp) 以公開針對各自用戶的服務。webapp 遵循模型-視圖-控制器模式,Java Server Pages 將視圖呈現給用戶,模型封裝要呈現給用戶和從用戶處捕獲的數據,而控制器機制則管理除與服務層交互之外的組件交互。MedRec 采用 Jakarta Struts 實現該模式。

服務層為發出請求的客戶端提供服務,并管理與后端應用程序和資源的交互。 MedRec 的服務層采用會話外觀模式封裝業務邏輯和業務數據。會話外觀通過提供一個到分布式服務的接口,簡化了應用程序的復雜性。在 MedRec 中,會話外觀的首要責任是提供數據吞吐量。在 MedRec 的 Java EE 和 WebLogic Server 版本中,會話外觀被開發為無狀態的會話企業 JavaBeans,而數據則由實體企業 JavaBeans 管理。

為了與外部實體接合,MedRec 通過 Web 服務公開應用程序功能,從而允許在不同系統之間使用一系列開放標準進行動態交互。通過 Web 服務公開服務,MedRec 可以為獨立的各方提供數據或接收來自各方的數據,這樣就實現了集中式醫療記錄管理的主要目標。

圖 1 闡釋了 Java EE 和 WebLogic 版 MedRec 的高級體系結構圖。


圖 1:J2EE 版 MedRec 的體系結構圖

使用 Spring 重新表示 MedRec

為了使 Spring 能夠利用 WebLogic Server 的企業特性,對 MedRec 的體系結構進行了重新設計,用相應的 Spring 組件替換了核心的 Java EE 組件。我們用基于 Spring 的 MedRec 版本 (MedRec-Spring) 復制了與原版 MedRec 相同的功能。

控制反轉
MedRec-Spring 最顯著的變化是引入了 Spring IoC。IoC 方法功能強大,通過一個容器將相關性注入到配置好的組件中而應用。 IoC 將應用程序代碼與其配置相分離。例如,對象與其相關性無關,因此可以專注于其職責。在 MedRec-Spring 案例中,諸如數據源、JMS 服務、MBean 連接和對等服務等企業資源在運行時被提供給 MedRec-Spring 的對象。另外,通過遷移資源配置和在已編譯代碼外進行引用,應用程序從特定于開發的資源向中間的生產資源和環境的轉移更加易于管理。

我們發現,要正確使用 IoC,應用程序代碼需要遵循更嚴格的 Java 編程規則 — 特別是在編寫接口的代碼時。接口比其他東西更能促進更好的協作,因為可以減輕依賴性,而且實現的變化被隔離開來。 從 IoC 的角度看,接口支持相關性注入的可插入本性。為了利用 IoC,我們對 MedRec-Spring 進行了重構,這樣就可以基于接口對業務對象進行編碼。

POJO
在 MedRec-Spring 中,傳統 Java 對象 (POJO) 代替了無狀態會話 EJB。無狀態會話 EJB 的強大在于它們的遠程控制和事務管理功能。 因為 MedRec-Spring 通過 Spring 的 HTTP Invoker 體系結構公開了服務 bean,所以它能夠滿足遠程控制的要求。 事務管理是由 Spring 的事務抽象層提供的。MedRec-Spring 的事務管理精確地鏡像了 MedRec 的事務管理,因為 Spring 事務管理器配置為將責任委托給 WebLogic Server 的 JTA 事務管理器。

消息處理
MedRec-Spring 包含原始 MedRec 的大多數消息處理功能。我們采用 Spring 的 JMS 程序包簡化了一些一般性任務,如連接工廠和目標查找。Spring 提供了一個代表消息目標的對象,而不是通過程序獲取隊列句柄。與所有 Spring bean 一樣,這些對象表示(JNDI 名稱、連接工廠關聯等)是在已編譯代碼的外部配置的。 我們還在三個領域使用了 Spring 2.0 的消息驅動的 POJO (MDP) 作為 JMS 消息的目標:

  • 處理郵件消息(向患者發送批準郵件或拒絕郵件)
  • 處理注冊消息(處理新患者注冊)
  • 處理醫療記錄上載(從 XML 文件向 RDBMS 上載醫療記錄)

AOP
MedRec-Spring 使用 Spring AOP 主要有兩個目的:

  • 聲明性事務管理
  • DAO 實現后處理 (JPA) 的返回值

JPA
MedRec-Spring 現在使用 JPA 訪問和寫入患者記錄。有關更多詳細信息,請參見“結合使用 JAVA 持久性 API 和 SPRING 2.0”。

應用程序管理
MedRec-Spring 包含應用程序管理特性。這些特性與 WebLogic Server 的域配置以及運行時域交互。MedRec-Spring 必須按照 WebLogic Server 的 MBean Server 形式,Spring 提供了連接管理,簡化了 MBean Server 的可訪問性。

Web 服務
最后,MedRec-Spring 使用 Web 服務導出它的服務。 Spring 提供一個 JAX-RPC 工廠用于生成 Web 服務的代理。與其他 Spring bean 類似,工廠 bean 也是在已編譯的代碼外部配置的,使得應用程序更加靈活。

圖 2 顯示基于 Spring 的 MedRec 版本的高級體系結構圖。


圖 2:基于 Spring 的 MedRec 版本的高級體系結構圖

WebLogic Server 上的 Spring 最佳實踐

比較了 Java EE 和 Spring 環境上的 MedRec 體系結構之后,現在我們來介紹在實現 MedRec-Spring 應用程序過程中發現的一些寶貴經驗:

  • 使用延遲初始化。為了實現 IoC 容器,Spring 加載一個 應用程序上下文 文件,創建并緩存每個已配置的 bean 實例。Spring bean 引用的每個資源都必須可以實例化或查找,了解這一點很重要。例如,Spring 的 JMX 支持提供到 WebLogic Server 的 MBean 服務器的連接。部署期間,并非所有 MBean 服務器都是激活的,因此在部署資源時,用戶應該一啟動即使用 Spring 延遲初始化和查找服務。

  • 基于功能分離出 Spring 配置。 這允許應用程序組件僅加載那些與自身工作職責相關的上下文。該實踐還允許測試人員用一個特定于測試環境的上下文替換一個應用程序上下文(例如,數據源配置),從而改變其行為。

  • 通過 JndiObjectFactoryBean 封裝 JDBC 數據源連接池 。則那些要求數據庫交互的 bean 可以引用該 bean,以利用 WebLogic Server 的數據源連接池功能。

  • 將 Spring 的 org.springframework.ejb.support 用于會話和消息驅動的企業 JavaBeans 。Spring 的 org.springframework.ejb.support 提供企業 JavaBeans (EJB) 可以擴展的抽象類。這些抽象的 EJB 類通過包含 EJB 生命周期方法的標準實現來輔助開發。更重要的是,這些類提供了加載 Spring 應用程序上下文的機制,包括跨多個 EJB 和客戶端共享上下文,因此在 EJB 初始化時減少了重復和開銷。

  • 利用熱部署和 WebLogic Server 的拆分開發目錄環境。 這極大地提升了集成測試期間的 Spring 開發體驗。熱部署允許應用程序重新加載,而無需重新啟動服務器。拆分開發目錄環境減少了不必要的文件復制,加快了開發和部署。拆分開發目錄 Ant 任務幫助您快速地重新編譯和重新部署應用程序,無需先生成一個可部署的存檔文件或展開的存檔目錄。

  • 將 Spring 庫打包為應用程序庫、可選的擴展或服務器擴展。這允許幾個 Spring 應用程序共享 Spring Framework,減少了應用程序所占空間。不僅減少了內存占用,而且還提高了部署次數。

Spring on WebLogic Server 工具包

為幫助您從部署在 WebLogic Server 上的 Spring 應用程序得到最大收獲,我們已經發布了一個經過認證的 BEA 發行版,包括 Spring 2.0、MedRec on Spring 應用程序和其他一些不錯的工具。可以從 BEA 的發行版 Web 站點上免費下載此工具包。

?

Spring 2.0.1 與 BEA WebLogic Server 9.2 的集成
頁面: 1, 2, 3, 4

企業 Spring

Spring Framework 的非侵入性 IoC 開發模型不但依賴于 Java EE 應用服務器可用的特性集,而在旨在補充該特性集。事實上,在要求很高的生產環境中,底層應用服務器基礎架構提供的服務質量對 Spring 應用程序的持續可靠性、可用性和性能非常重要。WebLogic Server 9.2 提供了企業級特性,能夠從各方面增強您的 Spring 應用程序。在本節中,我們將詳述這些特性以及如何在 Spring 應用程序中利用它們。

集群管理和部署

一個 WebLogic Server 集群包括多個 WebLogic Server 服務器實例,這些服務器實例同時運行并一起工作,從而提高了可伸縮性和可靠性。對客戶端來說,集群就像單個 WebLogic Server 實例一樣。構成集群的服務器實例既可運行在同一臺計算機上,也可位于不同的計算機上。可以通過在現有的計算機上向集群添加額外的服務器實例,或者向集群添加計算機以托管增加的服務器實例,來提高集群的容量。WebLogic Server 集群為 Spring 應用程序提供了一個企業級部署平臺,WebLogic Server 提供的豐富性和易用性是其他支持相似特性的技術所不具備的。有關 WebLogic Server 集群的配置和管理的完整討論,請參見“Understanding Cluster Configuration”。

通常,Spring 應用程序被打包成 webapp 形式,在這種情況下,您無需為了利用 WebLogic Server 集群而更改自己的應用程序。只需將應用程序部署到集群中的服務器,即可體驗增強的可伸縮性和可用性帶來的好處。

Spring 會話復制

Spring Web 應用程序通常將信息存儲在 HTTP 會話中,如訂單 ID 和用戶信息。為了支持一個集群內的 servlet 和 JSP 的自動復制和故障切換,WebLogic Server 支持集中用于保持 TTP 會話狀態的機制。只需為用戶應用程序提供一個適當的 weblogic.xml 部署描述符,它們就能夠被 Spring Web 應用程序非侵入性地使用。獲取 WebLogic Server 9.0 的提供的有關如何配置各種類型的會話持久性的更多信息。

集群化的 Spring 遠程控制

Spring 提供強大的遠程控制支持,允許您仍然利用一致的基于 POJO 的編程模型輕松地導出和使用遠程服務。通過一個接合到適當 Spring bean 的 RMI 接口,Vanilla Spring 支持代理 POJO 調用。然而,這種支持僅限于 JRMP(Sun 的 RMI 實現),或者通過 JndiRmiProxyFactoryBean 使用特定的遠程接口。借助于 Spring 1.2.5 on WebLogic Server 9.0 認證,我們已經擴展了 JndiRmiProxyFactoryBean 和相關的服務導出程序 — 這樣它就能支持任何 J2EE RMI 實現的 POJO 代理,包括 RMI-IIOP 和 T3。這方面的支持還包括一個 WebLogic RMI 部署描述符,它支持代理 RMI 接口上的集群化,因此 POJO 調用可以在一個 WebLogic Server 集群內進行負載均衡。客戶端上這種支持的配置與此相似 ( applicationContext.xml):

<bean id="proProxy"class="org.springframework.remoting.rmi.JndiRmiProxyFactoryBean"><property name="jndiName" value="t3://${serverName}:${rmiPort}/order"/></property><property name="jndiEnvironment"><props><prop key="java.naming.factory.url.pkgs"> weblogic.jndi.factories</prop></props></property><property name="serviceInterface"value="org.springframework.samples.jpetstore.domain.logic.OrderService"/></bean>

服務導出程序如下(同樣來自 applicationContext.xml):

<bean id="order-pro" class="org.springframework.remoting.rmi.JndiRmiServiceExporter"><property name="service" ref="petStore"/><property name="serviceInterface"value="org.springframework.samples.jpetstore.domain.logic.OrderService"/><property name="jndiName" value="order"/></bean>

集群化的描述符自動包含在其中,僅要求適當的集群配置以及在所有集群成員上部署 Spring 應用程序。獲得有關故障切換支持的更多信息。

對 Spring 組件的控制臺支持

Spring on WebLogic Server 工具包是一個 WebLogic Server 控制臺擴展,它顯示了應用程序中定義的 Spring bean、屬性和操作。它構建在 WebLogic 控制臺擴展門戶框架之上,該框架可以轉換 WebLogic Administration 控制臺的外觀、功能和布局,而無需修改服務器或控制臺代碼。將控制臺擴展復制到 yourdomain/console-ext 目錄后即進行了部署,隨后服務器重新啟動。有關部署控制臺擴展的更多詳細信息,請參考 Spring on WebLogic Server 工具包。

控制臺擴展為不是 MBean 的 Spring bean 自動創建 (JMX) 管理接口(對于多數 Spring bean,通常就是這樣),通過在 applicationContext.xml 中配置一個 MBeanExporter 并指定經匯編程序公開的 bean 來完成。該特性是 Spring 和 WebLogic Server 無縫地、非侵入性協作的一個極好的例證。 為了使 Spring 應用程序支持 JMX,只需更改應用程序上下文部署描述符。為了使控制臺支持 Spring,只需要將兩個 jar 部署到現有域即可。

為了在 WebLogic Server 的 Administration 控制臺啟用 Spring Console 擴展,需要兩個 jar 文件;它們作為 Spring WebLogic 程序包的一部分提供。具體來說,這兩個所需的 jar 文件稱為 spring-ext-server.jar 和 spring-ext-client.jar。 spring-ext-server.jar 需要復制到 yourdomain/console-ext 目錄。相關的 spring-ext-client.jar 文件需要和 Web 應用程序一道部署。(如果是 .WAR 文件,則將 spring-ext-client.jar 放入 Web 應用程序的 WEB-INF/lib 目錄。)

有了這兩個文件后,剩下的工作就是在 Spring XML 配置文件中定義幾個 bean。第一個絕對要定義的 Spring bean 是 com.interface21.wl9.jmx.mediator.Mediator bean。這個 bean(顧名思義)介于用戶應用程序、WebLogic Server 的 MBeanServer 和管理控制臺三者之間。它的定義如以下示例所示,是個非常簡單的 bean:

<!-- WLS console adapter bean --><bean id="consoleAdapter" class="com.interface21.wl9.jmx.mediator.Mediator"/>

這個 bean 必須被“插入”(或說相關性注入)第二個 bean 中,即 MBeanExporter,它也是絕對必須進行配置的。 MBeanExporter 類交付的成果就是只需將 Spring 應用程序上下文中已定義的任意數量的不同 bean 導出到 BEA WebLogic MBeanServer(或者任何配置好的 MBeanServer)。注意,MBeanServer 導出的那些 bean 無需為 JMX 進行編碼。Spring JMX 基礎架構代碼負責生成 ModelMBean 來描述通過 JMX 為了進行管理而導出的 bean。下面是一個典型的上下文配置文件的 MBeanExporter bean 定義:

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"><property name="assembler" ref="assembler"/><property name="server" ref="server"/><property name="beans"><map><!-- these are the beans that are to be exported... --><entry key="my_app_name:type=MaintenanceControl" value-ref="maintenanceInterceptor"/><entry key="my_app_name:type=ExceptionMonitor" value-ref="exceptionHandler"/><entry key="my_app_name:type=RequestStatistics" value-ref="requestStatisticsFilter"/></map></property><property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/><property name="autodetect" value="true"/><property name="listeners"><list><!-- notice how we 'plug-in' the Mediator beanthat was defined previously... --><ref bean="consoleAdapter"/></list></property></bean>

注意上面的 bean 定義,另一個 bean(“assembler”)被注入到 MBeanExporter 的“assembler”屬性中。下面是該 bean 的定義:

<bean id="assembler" class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler"><property name="interfaceMappings"><props><prop key="my_app_name:type=MaintenanceControl">fully.qualified.management.interface.name</prop><prop key="my_app_name:type=ExceptionMonitor">fully.qualified.management.interface.name</prop><prop key="my_app_name:type=RequestStatistics">fully.qualified.management.interface.name</prop></props></property></bean>

描述 Spring JMX 提供的所有內容不在本文的討論范圍內。此處只需說明一點就夠了,那就是上面定義的 InterfaceBasedMBeanInfoAssembler bean 是一個可能的策略,用以控制用戶 bean 的哪些方法和屬性實際地公開出來供管理之用,就像 JMX 操作和屬性那樣。 InterfaceBasedMBeanInfoAssembler 使用(任意地)接口決定導出哪些方法和屬性。有關更多信息,請參閱本文末尾的“參考資料”一節。

MBeanExporter 的 bean 定義上的第二個著名屬性是 server 屬性。 這是向 MBeanExporter 注入一個 WebLogic Server 的 MBeanServer 實例的地方。MBeanExporter 將所有已配置的 bean 導出到這一特定的服務器。該 bean 的定義如下所示:

<!-- WebLogic 9 MBeanServer --><jndi:jndi-lookup id="server" jndi-name="java:comp/env/jmx/runtime"/>

在 server bean 的這個定義中,實際上 MBeanServer 實例源自 JNDI(使用為 jndiName 屬性指定的值在上下文中查找)。對于 MBeanExporter,MBeanServer 源自 JNDI 的事實沒有意義;這個將相關性注入需要相關性的對象透明源引是相關性注入方法的一大附加值(上面所見的易于使用和配置的 JndiObjectFactoryBean 證明 Spring 的注入支持是非常高級的)。

最后,最有趣的是 MBeanExporter 配置的一部分是 beans 屬性。 beans 屬性是 (JMX) ObjectName 到 bean 的簡單映射,這些 bean 將導出到先前注入的 MBeanServer 實例以便管理。選擇 ObjectName 的策略(在這種策略下,您的 bean 實際上會導出到 MBeanServer)是完全可配置的。在本例中,所用的默認策略是只需使用 beans 映射的鍵作為 ObjectName。(有關各種 ObjectName 策略的全面綱要,請參見隨 Spring 一起提供的 JavaDoc。)

Web 服務支持

Spring 的遠程控制功能的另一個方面是它對 RPC 風格的 Web 服務的支持。WebLogic Server 提供了基于 Ant 的工具,可以根據 Web 服務的描述生成 JAX-RPC 存根。Web 服務客戶端使用這些生成的存根獲取一個表示服務器端操作的遠程接口。Spring 通過提供一個 JaxRpcPortProxyFactoryBean 簡化了這個過程。

我們發現,在 WebLogic Server 環境中正確地配置 JaxRpcPortProxyFactoryBean 有些棘手,所以為了節約您的時間,我們給出下面這個代碼片段,演示如何為一個包含復雜類型的文檔字面包裝的 Web 服務配置代理生成。

多數屬性是自解釋的。有幾個屬性比較有名:

  • serviceInterface 是 Spring setter 注入的副產品。這個類將表示 Web 服務操作。

  • customProperties 屬性支持定制的 WebLogic Server Web 服務存根屬性。

  • jaxRpcService 值設置為 WebLogic Server 的生成的 JAX-RPC 實現服務。JAX-RPC 服務負責驗證 Web 服務和加載復雜類型映射。為了實現后者,WebLogic Server 的 JAX-RPC 實現服務必須配置為一個 Spring bean。這可以確保 JAX-RPC 服務構造函數的運行,而且類型映射文件也在此加載。

在 JaxRpcPortProxyFactoryBean 上將 lookupServiceOnStartup 設置為 false,即可在啟動時關閉 JAX-RPC 服務查找。當首次訪問時,將會進行查找。這對于與可靠的 WebLogic Server 請求/響應 Web 服務通信是必需的,而此處的客戶端也必須是一個 Web 服務。在這些情況下,始發客戶端通常是與 Web 服務客戶端一起部署的。 因為應用程序部署完成前不會激活 Web 服務,所以客戶端 Web 服務對于 Spring 上下文加載是不可用的。如下代碼摘自一個 applicationContext-ws.xml 上下文配置文件:

<!-- reliable asynchronous Web service for sending new medical records to medrec --><bean id="reliableClientWebServicesPortType"class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean"lazy-init="true"><property name="wsdlDocumentUrl"value="http://${WS_HOST}:${WS_PORT}/ws_phys/PhysicianWebServices?WSDL"/><property name="portName" value="PhysicianWebServicesPort"/><property name="jaxRpcService"><ref bean="generatedReliableService"/></property><property name="serviceInterface"value="com.bea.physician.webservices.client.PhysicianWebServicesPortType"/><property name="username" value="medrec_webservice_user"/><property name="password" value="weblogic"/><property name="customProperties"><props><prop key="weblogic.wsee.complex">true</prop></props></property></bean><!-- allows the jaxRpcService class to execute its constructor which loads in type mappings --><bean id="generatedReliableService"class="com.bea.physician.webservices.client.PhysicianWebServices_Impl"></bean>

有關更多信息,請參見 WebLogic Server 的 Overview Web Services Invocation 和 Remoting and Web Services Using Spring

?

安全性

WebLogic Server 安全系統支持并擴展了 Java EE 的安全性,同時提供了一組豐富的安全提供程序,可以對其進行定制以處理不同的安全性數據庫或安全性策略。除了使用標準的 Java EE 安全性之外,應用程序編程人員還可以使用很多專有擴展,這些擴展使應用程序可以與安全系統緊密集成。 WebLogic Server 附帶了幾個安全提供程序,例如,可以選擇包含大部分流行 LDAP 服務器的身份驗證數據庫、Active Directory、本地 Windows 和內置的身份驗證解決方案。可以使用定制的提供程序對內置的提供程序進行擴充,從而幾乎可以與任意身份驗證數據庫、授權機制和憑證映射服務相集成。由于部署為 webapp 的 Spring 應用程序使用的是 Java EE 安全性,因此無需修改應用程序即可獲得 WebLogic Server 的安全性優點。

經驗豐富的 Spring 用戶還會熟悉 Acegi — Spring 自身的安全框架。目前,可以在應用程序中使用 Acegi、WebLogic Server 安全性或同時使用二者,因為它們是相互獨立的。 稍后我們將講述與此相關的更多信息。

分布式事務

Spring 提供事務管理的基礎架構。除了對各家數據庫供應商的支持之外,Spring 還通過一家 Java EE 供應商的 JTA 實現支持分布式事務。通過 WebLogicJtaTransactionManager,可以將 Spring 的 JTA 管理器配置為與 WebLogic Server 的 JTA 實現一起工作。

WebLogicJtaTransactionManager 直接向 WebLogic Server 的 Java Transaction API 委托責任。通過 JNDI,客戶端和 bean 提供程序可以使用 WebLogic Server JTA TransactionManager 接口,這一交互由 Spring 管理。事務管理器也支持事務的作用域;事務能夠作用于集群和域的內部或二者之間。

WebLogicJtaTransactionManager 最強大的特性是管理分布式事務的能力和用于企業應用程序的兩階段委托協議。使用 WebLogicJtaTransactionManager,應用程序能夠利用 WebLogic Administration Console 來進行事務監控。 WebLogicJtaTransactionManager 還支持按數據庫隔離級別,允許復雜的事務處理配置。下面的代碼節選自 applicationContext-service.xml:

<bean id="serviceFacade" class="com.bea.medrec.web.service.ServiceFacadeImpl"><!-- .... --></bean><!-- spring's transaction manager delegates to WebLogic Server's transaction manager --><bean id="transactionManager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager"> <property name="transactionManagerName" value="javax.transaction.TransactionManager"/></bean><aop:config><aop:advisor advice-ref="txAdvice"pointcut="execution(* com.bea.medrec.web.service.ServiceFacade.*(..))"/></aop:config><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="activate*" propagation="REQUIRED"/><tx:method name="deny*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="process*" propagation="REQUIRED"/><tx:method name="get*" propagation="REQUIRED" read-only="true"/><tx:method name="search*" propagation="REQUIRED" read-only="true"/><tx:method name="saveRecord" propagation="REQUIRED"/><!-- ... --></tx:attributes></tx:advice>

有關更多信息,請參見 Overview of Transactions in WebLogic Server Applications 和“在 Spring 中實現事務掛起”。

消息驅動的 POJO

消息驅動的 POJO (MDP) 替代了 Java EE 的消息驅動的 Bean (MDB)。與 POJO 類似,它們的優勢也是不要求任何特定于平臺的 API 擴展或結構。它們只需要標準的 JMS API 實現:

public class RegistrationMessageListener implements MessageListener {public void onMessage(Message message) {// Fetch Registration information from ObjectMessage.// Process new reg by invoking service (DI)// ... }}

與 Spring 的大多數成員一樣,MDP 容器的配置當然也很簡單。下面的代碼節選自 applicationContext-jms.xml:

<!-- JMS ConnectionFactory and Queue --><jndi:jndi-lookup id="jmsConnectionFactory" jndi-name="com.bea.medrec.messaging.MedRecQueueConnectionFactory"/><jndi:jndi-lookup id="registrationQueue" jndi-name="com.bea.medrec.messaging.RegistrationQueue"/><!-- MDP --><bean id="registrationMessageListener" class="com.bea.medrec.service.messaging.RegistrationMessageListener"><!-- ... properties... --></bean><!-- MDP container --><bean id="registrationMessageListenerContainer"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="jmsConnectionFactory"/><property name="concurrentConsumers" value="5"/><property name="destination" ref="registrationQueue"/><property name="messageListener" ref="registrationMessageListener"/><property name="transactionManager" ref="transactionManager"/></bean>

有關在 WebLogic Server 上如何實現 MDP 的更詳細的討論,請參見這里

JPA 和 AOP 配置

我們已經定義了一個 Web 服務層,它允許我們在 RMI、Spring HTTP 調用程序、Hessian/Burlap 和 JAXPRC 之間輕松切換 Web 服務實現。調用遠程服務時,如果想要使用一種可序列化的機制傳遞對象,那么這些對象本身必須可序列化。遺憾的是,OpenJPA 的 Find 結果是一個私有的列表實現,不支持 Serializable,所以我們需要將這些列表與一些更合適的列表綁定,如 Java SE 集合庫的 ArrayList 或 LinkedList。我們可以使用 spring aop 來幫助我們實現,而不必修改應用程序源代碼:

@Aspectpublic class ReturningValuePostProcessorAspect {@Pointcut("execution(java.util.List com.bea.medrec.dao.PatientDao.*(..))")public void postProcessPatientDao() {}@Pointcut("execution(java.util.List com.bea.medrec.dao.RecordDao.*(..))")public void postProcessRecordDao() {}@Pointcut("execution(java.util.List com.bea.medrec.dao.UserDao.*(..))")public void postProcessUserDao() {}}

以下是相關聯的 ReturningValuePostProcessor 類。

@Aspectpublic class ReturningValuePostProcessor {public ReturningValuePostProcessor() {}@Around("com.bea.medrec.dao.jpa.ReturningValuePostProcessorAspect.postProcessPatientDao()")public Object postProcessPatientDao(ProceedingJoinPoint pjp) throws Throwable {return doPostProcess(pjp);}@Around("com.bea.medrec.dao.jpa.ReturningValuePostProcessorAspect.postProcessRecordDao()")public Object postProcessRecordDao(ProceedingJoinPoint pjp) throws Throwable {return doPostProcess(pjp);}@Around("com.bea.medrec.dao.jpa.ReturningValuePostProcessorAspect.postProcessUserDao()")public Object postProcessUserDao(ProceedingJoinPoint pjp) throws Throwable {return doPostProcess(pjp);}private Object doPostProcess(ProceedingJoinPoint pjp) throws Throwable {Object retVal = pjp.proceed();if (retVal == null) {return null;}if (!(retVal instanceof List)) {return retVal;} else {//noinspection uncheckedreturn new ArrayList((List) retVal);}}}

下面的代碼節選自 applicationContext-jpa.xml:

<bean id="patientDao" class="com.bea.medrec.dao.jpa.PatientDaoImpl"/><bean id="recordDao" class="com.bea.medrec.dao.jpa.RecordDaoImpl"/><!-- ... --><bean id="returningValuePostProcessor" class="com.bea.medrec.dao.jpa.ReturningValuePostProcessor"/><aop:aspectj-autoproxy/>

Java 管理擴展

Java 管理擴展 (JMX) 是用于監視和管理 Java 應用程序的規范。它允許一般的管理系統監視應用程序,當應用程序需要注意時發出通知,并修改應用程序狀態以補救問題。Spring 提供廣泛的 JMX 支持,包括通過 Spring 的 MBeanServerConnectionFactoryBean 公開 WebLogic Server 的 MBeanServer 的能力。 MBeanServerConnectionFactoryBean 是一個方便的工廠,附帶一個 MBeanServerConnection。 在應用程序部署期間,建立連接并進行緩存,供以后引用 bean 進行操作。

可以將 MBeanServerConnectionFactoryBean 配置為返回 WebLogic Server 的 Runtime MBean Server,公開特定的 WebLogic Server 實例的監視、運行時控制和活動配置。這包括訪問 WebLogic Server Diagnostics Framework。 此外,Runtime MBean 為當前服務器提供 runtime MBean 和活動配置 MBean 的訪問。

還可以配置 MBeanServerConnectionFactoryBean 以獲得到 WebLogic Server 的Domain Runtime MBean Server 的連接。Domain Runtime MBean Server 提供域范圍內服務的訪問,如應用程序部署、JMS 服務器和 JDBC 數據源。它還是訪問域中所有服務器的所有 runtime MBean 和活動配置 MBean 的層次結構的單點。這個 MBean Server 也是訪問被管理服務器上的 MBean 的單點。

此外,可以配置 MBeanServerConnectionFactoryBean 以獲取與 WebLogic Server 的 Edit MBean Server 的連接。Edit MBean Server 提供管理當前 WebLogic Server 域配置的入口點。

注意,在部署期間,WebLogic Server 的 Domain Runtime MBean Server 不是活動的。所以,bean 需要使用 Spring 的延遲初始化進行配置,它會在調用 bean 時獲取該 bean。

下面是使用 WebLogic 的 MBean Server 配置 Spring 的 MBeanServerConnectionFactoryBean 連接的一個例子:

<!-- expose WebLogic Server's runtime mbeanserver connection --><bean id="runtimeMbeanServerConnection"class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean"><property name="serviceUrl" value="service:jmx:t3://${WS_HOST}:${WS_PORT}/jndi/weblogic.management.mbeanservers.runtime"/><property name="environment"><props><prop key="java.naming.security.principal">${WS_USERNAME}</prop><prop key="java.naming.security.credentials">${WS_PASSWORD}</prop><prop key="jmx.remote.protocol.provider.pkgs">weblogic.management.remote</prop></props></property></bean>

有關更多信息,請參見 Understanding WebLogic Server MBeans 和 Spring 的 JMX Support

支持

從 WebLogic Server 9.0 和 Spring 1.2.5 開始,BEA 就為 Spring Framework on WebLogic Server 提供了支持和認證。這種支持不僅是測試 WebLogic Server 上的 Spring 庫的健全性,還致力于 BEA 和 Interface 21(Spring Framework 的創建者和維護者)之間的積極努力和協作。我們不但測試了上面所講的 Spring 2.0 的所有特性和配置,一些新特性還直接作為 BEA 和 Interface 21 的協作成果引入 Spring 2.0。

下載

Spring Open Source Framework Support 2.0 下載包括 Spring 2.0(已在 WebLogic Server 9.2 上經過認證)和 Spring-JMX 控制臺擴展以及利用 Spring 2.0 Framework 重新編寫的 WebLogic Medical Records 示例程序。

未來的工作

今后,我們計劃提供 WebLogic Server 和 Spring Framework 之間更深層次的集成。盡管我們有了一些想法,但其中最令人感興趣的是:

  • Spring 部署單元: Spring 應用程序通常被部署為 webapp,但今后為 Spring 應用程序提供專用部署單元是可能的。

  • Spring 安全性和 WebLogic Server 安全性集成: Spring 安全性是 Spring 的安全框架,我們計劃將它與 WebLogic Server 的企業級安全框架集成。

總結

我們用了一些時間討論了 Spring、WebLogic Server 以及這兩種技術的集成。如我們所展示的那樣,WebLogic Server 提高了應用程序的服務質量,Spring 則提高了開發人員的生產力。這兩種技術都是高度非侵入性的,允許您專注于應用程序的業務功能的開發,而不是糾纏于特定于技術的 API 的錯綜復雜性。

總結

以上是生活随笔為你收集整理的Spring 2.0.1 与 BEA WebLogic Server 9.2 的集成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

www国产亚洲精品 | 欧美精品免费视频 | 国产中文字幕亚洲 | 国产精彩在线视频 | 蜜桃av久久久亚洲精品 | 国内精品久久久久影院优 | 国产裸体bbb视频 | 中文字幕国产一区 | 久久九九影视 | 久久一二三四 | 午夜久久久久久久久 | 成片人卡1卡2卡3手机免费看 | 911香蕉| 在线精品播放 | 色亚洲网| 中文不卡视频 | 成年人免费看片网站 | 欧美性另类 | 欧美亚洲精品在线观看 | 久久av电影 | 五月天综合网 | 91成人短视频在线观看 | 久久综合狠狠综合久久综合88 | 成人一级视频在线观看 | 99精品视频网 | 免费看十八岁美女 | 久久av伊人 | 人人舔人人插 | 超碰人人超碰 | 国产精品 国内视频 | 最近中文字幕完整高清 | 美女激情影院 | 国产精品久久久久av | 日韩午夜精品福利 | 婷婷色网视频在线播放 | 超碰激情在线 | 国产精品久久久久久久午夜 | 免费福利影院 | 亚洲精品大全 | 最近中文字幕免费大全 | 99视频网站 | 日韩色av色资源 | 国产成人高清 | 久久 地址 | 久久久一本精品99久久精品66 | 美女天天操 | 99在线热播精品免费99热 | 久久久久久亚洲精品 | 91av小视频 | 免费观看国产精品 | 久久永久视频 | 天天操夜夜操天天射 | 成人午夜精品 | 成人久久18免费网站麻豆 | 激情一区二区三区欧美 | 亚洲成aⅴ人片久久青草影院 | 久久大片 | 在线亚洲播放 | 国产剧情av在线播放 | 国产精品乱码久久 | 最新三级在线 | 中文字幕在线看 | 91视频网址入口 | 欧美a√大片| 婷婷亚洲综合五月天小说 | 亚洲国产欧美一区二区三区丁香婷 | 香蕉影院在线播放 | 天海冀一区二区三区 | 欧美日韩在线观看视频 | 国产在线超碰 | 亚洲国产高清在线 | 成片免费 | 狠狠狠狠狠狠狠狠干 | 中文字幕日本在线观看 | 欧美最猛性xxxxx亚洲精品 | 婷婷午夜天 | 女人18毛片90分钟 | avhd高清在线谜片 | 精品视频在线观看 | 五月丁色 | 六月丁香激情综合色啪小说 | 亚洲高清av| 亚洲激情 | 精品国产精品久久一区免费式 | 亚洲v欧美v国产v在线观看 | av 一区二区三区 | 亚洲欧洲一区二区在线观看 | 亚洲aaa级| 亚洲国产一区二区精品专区 | 亚洲精品福利在线观看 | 一区二区三区在线免费观看视频 | 婷婷综合网 | 中文字幕中文字幕在线一区 | 国产高清黄 | 国产精品入口麻豆 | 不卡av免费在线观看 | 乱男乱女www7788 | 欧美一区二区三区在线 | av成年人电影 | 就要干b| 免费又黄又爽视频 | 欧美一区免费在线观看 | 国产香蕉97碰碰碰视频在线观看 | 亚洲欧洲一区二区在线观看 | 91精品国产乱码久久桃 | 久久久久国产一区二区三区四区 | 97网| 日b视频国产 | 一区二区三区四区在线 | 精品电影一区 | 色爱区综合激月婷婷 | 一级片视频在线 | 精品久久久精品 | 日韩三级视频在线观看 | 国产精品成人免费精品自在线观看 | 国产成人一区二区三区电影 | av永久网址 | 玖草影院| 一区二区视 | 久久综合给合久久狠狠色 | 综合色站导航 | 日韩国产精品久久久久久亚洲 | 日日夜夜精品免费观看 | 亚洲视频在线播放 | 高清av在线免费观看 | 国产精品丝袜在线 | 黄色国产区 | 韩国av三级| 久久9999久久免费精品国产 | 日韩伦理一区二区三区av在线 | 亚洲免费专区 | 国产91九色蝌蚪 | 一级黄色片在线播放 | 4438全国亚洲精品在线观看视频 | 又黄又爽又无遮挡免费的网站 | 精品视频专区 | 欧美激情视频一区二区三区免费 | 99色在线观看视频 | 欧美激情在线看 | 久久午夜国产 | 久久精品国产免费 | 伊香蕉大综综综合久久啪 | 亚洲成av人片在线观看无 | 国产一级二级三级视频 | 欧洲精品视频一区二区 | 久久国产欧美日韩精品 | 日本不卡一区二区 | 高清一区二区三区 | 国产黄色在线 | 97av在线视频免费播放 | 91传媒激情理伦片 | 久久伊人八月婷婷综合激情 | 综合激情伊人 | 免费在线观看视频一区 | 日韩美精品视频 | 免费黄色a网站 | 久久久国产精品久久久 | 久久久久久久久综合 | 一级片色播影院 | 中文字幕在线观看第三页 | 免费看国产曰批40分钟 | 九九热免费在线观看 | 成人手机在线视频 | 91av成人 | 国产精品久久久久久麻豆一区 | 成人资源在线播放 | 亚洲午夜精品在线观看 | 超碰人人做 | 六月婷操 | 国产精品久久精品 | 国产中文字幕三区 | 亚洲国产免费看 | 午夜精品久久久久久久99热影院 | 亚洲精品一区二区在线观看 | 亚洲欧洲一级 | 国产在线综合视频 | 日本一区二区免费在线观看 | 在线视频一区二区 | 一本一本久久a久久精品综合妖精 | 欧美大香线蕉线伊人久久 | 99视频这里有精品 | 精品国产一区二区三区久久久蜜臀 | 亚洲精品国产拍在线 | 久久综合久久综合这里只有精品 | 精品国产欧美一区二区 | 久久精国产 | 久久午夜国产 | 二区三区毛片 | 日韩69av| 91精品国产自产在线观看永久 | 午夜免费在线观看 | 亚洲a成人v| 一级一片免费观看 | 亚洲一级理论片 | 欧美日韩色婷婷 | 不卡的av在线 | 一区三区视频 | 四虎www| 国产黄色免费看 | 国产黄视频在线观看 | 久久精品4| 成人在线播放视频 | 日本免费久久高清视频 | av中文字幕不卡 | 国产精品成人自产拍在线观看 | 久久天天躁夜夜躁狠狠85麻豆 | 91高清一区 | 国内外成人在线视频 | 国产免费av一区二区三区 | 91在线小视频 | 2021国产视频| av在线电影网站 | 在线精品在线 | 国产精品久久久久久一二三四五 | 欧美另类高清 videos | 精品久久九九 | 日韩av不卡在线观看 | 69国产精品成人在线播放 | 粉嫩一区二区三区粉嫩91 | 黄色录像av | 五月婷婷在线视频观看 | 一区二区伦理电影 | 中文字幕在线视频国产 | 国产精品不卡在线观看 | 国产白浆在线观看 | 日韩免费看 | 97超碰资源站 | 亚洲午夜精品电影 | 亚洲精品久久久久www | 欧美午夜久久久 | 日韩剧| 不卡av免费在线观看 | 色偷偷av男人天堂 | www91在线观看 | av中文字幕第一页 | 一本—道久久a久久精品蜜桃 | 毛片精品免费在线观看 | 天堂va在线观看 | 六月激情久久 | 亚洲欧美激情精品一区二区 | 不卡日韩av | 成人小视频在线观看免费 | 国产成人精品一区二区三区 | 国产成人专区 | 日韩免费在线看 | 国产精品va视频 | 国产精品九九久久99视频 | 亚洲天堂网在线播放 | 99这里只有久久精品视频 | 在线观看aa | 四虎国产精品免费观看视频优播 | 久久y | 欧美日韩亚洲精品在线 | 中文字幕免费观看视频 | 精品成人免费 | 人人人爽 | www在线观看国产 | 久久久久久久久久网站 | 亚洲 欧美 另类人妖 | 久久综合久久综合这里只有精品 | 精品播放 | 免费人成在线观看 | 中文字幕资源站 | 亚洲干视频在线观看 | 深爱激情开心 | 91av在线电影 | 国产中文在线播放 | 97成人免费 | 国产精品毛片一区二区 | 国产日韩欧美网站 | 亚洲成av片人久久久 | 狠狠色丁香婷综合久久 | www,黄视频| 五月天久久激情 | 天天操月月操 | 国产精品成久久久久三级 | 久久伊人国产精品 | 亚洲精品九九 | 六月丁香激情综合色啪小说 | av中文字幕在线播放 | 中文字幕资源在线观看 | 成人午夜电影网站 | 久久精品免费播放 | 久久99久久99精品中文字幕 | 黄色一级免费 | 成人国产一区二区 | 日韩精品免费在线观看视频 | 久久久国产影视 | av中文字幕不卡 | 色综合咪咪久久网 | 国产一级免费在线观看 | www.天堂av| 深爱激情站 | 欧美一级片在线免费观看 | 99精品视频免费观看视频 | 国产999精品久久久影片官网 | 亚洲开心激情 | 毛片99| 日韩成人精品一区二区 | 激情综合狠狠 | 91精品网站在线观看 | 九九热免费在线观看 | 中文字幕日韩一区二区三区不卡 | 在线观看av黄色 | 久久国产精彩视频 | 国产玖玖精品视频 | www日韩高清| 天天操狠狠操夜夜操 | 日本精品视频在线观看 | av片一区二区 | 亚洲精品乱码白浆高清久久久久久 | 亚洲精品国产精品国自产观看 | 亚洲精品乱码久久 | 日韩大陆欧美高清视频区 | 日韩免费一区二区在线观看 | 亚洲成人动漫在线观看 | 亚洲 欧美 精品 | 五月综合色婷婷 | 91精品91 | 91少妇精拍在线播放 | 在线视频99 | 少妇性色午夜淫片aaaze | 天天草网站| 午夜精品99久久免费 | 91av综合 | 欧美精品久 | 天天操天天操天天爽 | 夜夜躁狠狠躁日日躁 | 亚洲欧洲精品在线 | 国产精品午夜在线观看 | 字幕网在线观看 | 日韩成人邪恶影片 | 国产欧美日韩一区 | 亚洲日本一区二区在线 | 国产精品一区二区三区在线免费观看 | a特级毛片 | 国产91精品看黄网站 | 高清av免费一区中文字幕 | 九九久久成人 | 免费av网站在线 | 色综合久久久久久久 | 99热99| 日韩激情片在线观看 | 国产精品久久久av | 国产字幕在线看 | 96亚洲精品久久久蜜桃 | 99久免费精品视频在线观看 | 中文字幕亚洲欧美日韩 | 欧美va天堂va视频va在线 | 四虎免费在线观看视频 | 天天爽人人爽 | 成x99人av在线www | 久久婷婷精品 | 午夜视频免费在线观看 | 四虎影视成人永久免费观看亚洲欧美 | 久草新在线 | 国色天香av| 精品久久1 | 欧美一二三专区 | 免费看的黄网站软件 | 激情欧美网 | 久草网站在线观看 | av免费电影在线观看 | 人人看人人 | 国产麻豆视频在线观看 | 91麻豆文化传媒在线观看 | 亚洲精品免费在线视频 | www.av在线.com| 精品国产aⅴ麻豆 | 久久影院一区 | 91激情视频在线 | 高清免费在线视频 | 激情综合国产 | 91视频在线观看免费 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 色com| 久久免费美女视频 | 91麻豆精品国产91久久久久久 | 欧美巨大 | 国产一级精品绿帽视频 | 色婷婷骚婷婷 | 久久激情小说 | 成人久久网 | 干狠狠| 日韩中文字幕免费视频 | 亚洲资源在线网 | 色激情在线| 亚洲国产中文字幕在线视频综合 | 亚洲美女视频网 | 91麻豆操| 久久免费播放 | 国内精品视频在线 | 在线观看国产麻豆 | 国产一区二区手机在线观看 | 91最新视频 | 国产精品午夜久久久久久99热 | 六月婷操 | 97人人爽| 亚洲精品影院在线观看 | 欧美一级欧美一级 | 国产精品久久久久久久久免费看 | 丁香色婷婷 | 久久国产精品免费一区二区三区 | 中文字幕888 | 天天天综合网 | 特级a老妇做爰全过程 | 在线视频 国产 日韩 | 99视频偷窥在线精品国自产拍 | 午夜精品一区二区三区在线观看 | 91禁在线看| 免费在线观看日韩视频 | 91久久国产露脸精品国产闺蜜 | 久精品在线 | 一区二区三区四区在线 | 四虎天堂| 天堂v中文 | 激情婷婷六月 | 日日爱999| 中文字幕在线观看你懂的 | 久久久久综合精品福利啪啪 | 免费黄色在线网站 | 久久超级碰视频 | 久久久久9999亚洲精品 | 成人在线视频免费看 | 九九交易行官网 | 91九色国产在线 | 欧美a性 | 色综合久久综合中文综合网 | 色五月情| 91中文字幕视频 | 欧美在线视频日韩 | 色婷婷啪啪免费在线电影观看 | 麻豆免费在线视频 | 国产中年夫妇高潮精品视频 | 免费国产在线精品 | 又黄又刺激的网站 | 高清精品久久 | 国产一区二区在线免费播放 | 久爱精品在线 | 免费看网站在线 | 日韩三级视频在线观看 | 国产美女网 | 免费精品在线观看 | 97香蕉超级碰碰久久免费软件 | 婷婷在线精品视频 | 久久精品欧美一区二区三区麻豆 | 精品一区欧美 | 天天艹天天 | a在线播放 | 日韩免费电影一区二区 | 日日爱视频 | 丰满少妇高潮在线观看 | avwww在线 | 国产在线更新 | 一级黄视频 | 日韩中文字幕91 | 国产一级二级在线 | 日韩欧美高清一区二区三区 | 久草网站在线观看 | 夜夜干夜夜 | 精品影院一区二区久久久 | 久久久影院一区二区三区 | 日韩在线免费电影 | 91久久精品日日躁夜夜躁国产 | 久草视频在线免费看 | 中文字幕一区二区三区视频 | 高清av免费看 | 天天操夜夜看 | 国产麻豆精品久久一二三 | 国产精品视频地址 | 欧美日韩性视频在线 | 狠狠色狠狠色综合日日92 | 欧美午夜激情网 | 美女黄频视频大全 | 国产精品免费观看在线 | 国产一区二区不卡在线 | 婷婷丁香六月 | 欧美a级免费视频 | 一区二区三区不卡在线 | 18岁免费看片 | 一级欧美一级日韩 | 在线免费观看亚洲视频 | 青青河边草观看完整版高清 | 国产精品一区二区免费 | 婷婷色在线资源 | www亚洲视频 | 精品视频网站 | 日韩中文字幕视频在线 | 亚洲免费一级电影 | 2018亚洲男人天堂 | 少妇bbbb揉bbbb日本 | 高清免费av在线 | 五月天网页| 日日夜夜综合网 | 在线导航av| 久久久久99精品国产片 | 国产xxxx| 99久久婷婷国产 | 四虎www. | 国产日韩三级 | 91亚洲精品久久久中文字幕 | 97精品国产97久久久久久粉红 | www婷婷 | 国产 日韩 在线 亚洲 字幕 中文 | 亚洲国产丝袜在线观看 | 人人干免费 | 国产99久久| 91桃色在线播放 | 深爱婷婷 | 在线看片一区 | 啪啪免费试看 | 亚洲精品xxx| 日韩欧美在线免费 | 亚洲资源视频 | 五月天中文字幕 | 在线日韩精品视频 | 欧美久久久久久久久久久久久 | 在线国产黄色 | 久久免费电影 | 丁香婷婷基地 | 九九九国产 | 成人免费色 | 国产精品久久久久久久毛片 | 啪啪免费观看网站 | 国产美女精品久久久 | 亚洲精品视频在线播放 | 中文字幕有码在线播放 | av免费黄色| 国产亚洲精品bv在线观看 | 在线播放 日韩专区 | 久久人人爽人人人人片 | 97看片网 | 亚洲国产成人在线观看 | 国产精品青青 | 中文字幕一区二区三区视频 | 在线观看日韩视频 | www.狠狠插.com| 亚洲黄色免费电影 | 黄色片网站免费 | 黄色天堂在线观看 | 国产色秀视频 | av福利在线免费观看 | 999电影免费在线观看 | 日韩系列 | 99在线观看视频网站 | 亚洲国产精品影院 | 久久官网 | 午夜av在线| 国产一级片毛片 | 亚洲黄色小说网址 | 亚洲极色 | 免费的国产精品 | 97超碰在线久草超碰在线观看 | 九九视频在线播放 | 久久99深爱久久99精品 | 97人人视频 | 中文字幕视频网站 | 亚洲精品成人av在线 | 久久新 | 免费成人在线网站 | 亚洲国产中文字幕 | av在线播放国产 | 三级在线视频播放 | 国产精品久久久久久久久久久久午 | 天天操天天射天天舔 | 天天爽天天搞 | 婷婷亚洲五月 | 免费一级片视频 | 亚洲综合射 | 久久精品中文字幕免费mv | 在线观看91网站 | 国产精品久久久久久久久久久久午夜 | 欧美日韩精品免费观看 | 精品一区二区三区在线播放 | 国产一区二区精品 | 国产精品女同一区二区三区久久夜 | 欧美xxxx性xxxxx高清 | 在线观看福利网站 | 91久久奴性调教 | 成人app在线免费观看 | 国产色综合天天综合网 | 欧美做受高潮1 | 欧美激情精品一区 | 就要干b | 国产三级精品三级在线观看 | 亚洲涩涩涩涩涩涩 | 日韩性xxxx | 天天射天天射 | 久久精品国产成人 | 日日干网址 | 五月在线视频 | 日韩免费视频线观看 | 伊人中文字幕在线 | 免费色视频在线 | 在线日韩视频 | 日韩精品免费一区 | 91污在线 | 亚洲伊人第一页 | 99久热精品| 亚洲电影一区二区 | 成人免费大片黄在线播放 | 97成人精品区在线播放 | 99久久久久免费精品国产 | 久久久久久久久久久久电影 | 久热久草| 欧美一区二区精品在线 | 欧美日韩中文在线 | 综合网在线视频 | 色a网 | av黄色免费看 | 五月婷av | 99国产精品久久久久老师 | 午夜久久影视 | www免费看片com | 91麻豆福利| 国产成人精品999在线观看 | 亚洲精品麻豆视频 | 国产精品视频最多的网站 | 天天草夜夜 | 色天天天| 中文字幕高清视频 | 免费av大片 | 成年人毛片在线观看 | 欧美最爽乱淫视频播放 | 日韩一区二区三区免费电影 | 国产精品久久久久永久免费观看 | 开心激情五月婷婷 | 热久久国产精品 | 久草视频中文在线 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲精品视频在 | 99在线观看免费视频精品观看 | 日韩影视精品 | 91精品国产99久久久久久久 | 四虎在线免费观看视频 | 午夜精品久久一牛影视 | 激情五月在线视频 | 久久夜色精品国产欧美乱极品 | 欧美精品中文字幕亚洲专区 | 少妇性xxx| 天天插天天射 | 午夜精品久久久久久久久久久久 | 国产亚洲精品女人久久久久久 | 日韩av一区二区在线 | 久久久综合电影 | 91麻豆看国产在线紧急地址 | 91手机电影 | 午夜精品久久久久久99热明星 | 97超碰人人澡人人爱学生 | 久久r精品 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 99精品久久精品一区二区 | 欧美色精品天天在线观看视频 | 国产精品都在这里 | 狠狠干狠狠操 | 亚洲国产中文字幕 | 激情欧美国产 | 日日夜夜狠狠 | 四虎www com| 亚洲最大av网站 | 国产成人免费高清 | 国产精品美女久久久久久久 | 国产97色| 日韩精品久久久久 | 久久久不卡影院 | 国产福利电影网址 | 亚州人成在线播放 | 毛片1000部免费看 | 日韩一级理论片 | 韩日精品在线 | 欧美一级电影片 | 天天搞天天 | 97精产国品一二三产区在线 | 欧美巨大荫蒂茸毛毛人妖 | 国产在线观看午夜 | 欧美日韩国产在线 | 国产专区视频在线观看 | 国产精品久久久久久一二三四五 | 麻豆精品传媒视频 | 亚洲一区日韩在线 | 国产精品日韩高清 | 97电影网手机版 | 丁香综合网 | 国产精品成人免费 | 久久视频网 | 五月天亚洲综合小说网 | 久久天天躁夜夜躁狠狠躁2022 | 97国产在线视频 | 在线观看电影av | 久久免费国产视频 | 国产日韩欧美视频 | 欧美巨大 | 黄av在线| 午夜精品福利一区二区三区蜜桃 | 美女免费视频一区 | 狠狠色丁香婷婷综合久小说久 | 国产亚洲久久 | 精品在线观看一区二区 | 亚洲精品456在线播放乱码 | 91亚洲精品久久久中文字幕 | 一级黄色片毛片 | 国产 欧美 日产久久 | 亚洲精品99久久久久中文字幕 | 亚洲日韩欧美一区二区在线 | 亚洲成人av一区二区 | 黄色一级在线视频 | 日本中文字幕免费观看 | 日日夜夜操操操操 | 青青草在久久免费久久免费 | 日韩欧美高清视频在线观看 | 五月婷婷色丁香 | 蜜桃视频成人在线观看 | 91九色蝌蚪视频在线 | 久久久久久久国产精品视频 | 最近日本mv字幕免费观看 | 人人狠狠综合久久亚洲婷 | 欧美专区日韩专区 | 黄色午夜 | 日韩久久一区二区 | 精品字幕在线 | 亚洲一区二区三区毛片 | 国内精品免费久久影院 | 欧美日韩高清不卡 | 日韩av在线免费看 | 97超碰人人网 | 在线观看小视频 | 欧美日产在线观看 | 亚洲精品资源在线观看 | 欧美有色 | 正在播放国产一区二区 | 日韩av免费在线看 | 精品国产伦一区二区三区免费 | 国产色啪 | 久久精品播放 | 国产成人精品一区一区一区 | 91桃色免费视频 | 色一级片 | 成人午夜电影网 | 亚洲国产日韩欧美 | 欧美日韩一区久久 | 精品中文字幕视频 | 精品一区二区影视 | 成人黄在线 | 国产黄色特级片 | 午夜在线国产 | 免费福利片 | 久久成人精品电影 | 亚洲一区二区视频 | 国产精品不卡在线播放 | 亚洲天堂免费视频 | 99热这里只有精品国产首页 | 人人爽人人爽人人爽 | 精品久久久久久亚洲综合网 | 日日夜夜91 | 日韩有码网站 | av在线a | 久久久久国产精品免费免费搜索 | 狠狠干电影 | 九九热在线视频 | 超碰国产人人 | 亚洲精品乱码久久久久久蜜桃不爽 | 成人午夜剧场在线观看 | 黄色影院在线免费观看 | 日韩毛片一区 | 精品一区 精品二区 | 五月婷婷婷婷婷 | 不卡的av在线播放 | 日韩一区二区三区高清免费看看 | 欧美日韩亚洲精品在线 | 91黄色小网站 | 色综合久久久久久中文网 | 91精品久久久久久久99蜜桃 | 不卡精品 | 亚洲情婷婷 | 亚洲精品播放 | 成人av免费在线播放 | 免费三级黄色片 | 久久久久久国产精品美女 | 久久社区视频 | 国产在线观看一 | 国产剧情一区 | 在线国产专区 | 97av免费视频 | 久久这里只有精品视频首页 | 精品在线观看国产 | 欧美激情综合五月色丁香 | 中文字幕视频在线播放 | 久久精品精品 | 久久网址 | 成人在线一区二区三区 | 午夜精选视频 | 91精品国产一区 | 91精品网站在线观看 | 精品一二三区 | 天天天天干 | 精品国产诱惑 | 九色精品免费永久在线 | 久久经典国产视频 | 伊人黄 | 91精品伦理| 97人人模人人爽人人喊中文字 | 亚洲区另类春色综合小说校园片 | 久久久免费在线观看 | 免费看片日韩 | 日韩久久精品一区二区 | 日韩,精品电影 | 色wwww| 久久精品在线视频 | 在线免费观看视频一区 | 亚洲精品合集 | 在线精品视频免费播放 | 亚洲天天综合网 | 亚洲一区二区麻豆 | 精品久久久久久亚洲综合网站 | 日韩欧美电影 | 亚洲97在线 | 欧美一级在线观看视频 | 亚洲视频 中文字幕 | 欧美在线一级片 | 亚洲国产精品影院 | 丰满少妇久久久 | 最新av网址在线 | 天堂黄色片 | 亚洲免费在线看 | 欧洲精品二区 | 日韩乱色精品一区二区 | 香蕉视频在线播放 | 久久综合综合久久综合 | 自拍超碰在线 | 日韩高清av在线 | 99爱这里只有精品 | 蜜臀av性久久久久av蜜臀妖精 | 中国一区二区视频 | av久久久久久 | 亚州欧美精品 | 成人羞羞视频在线观看免费 | 最新日韩在线观看视频 | 久久成人午夜 | 综合亚洲视频 | 国产91探花 | 日韩精品免费在线观看视频 | 亚洲国产免费网站 | 我要色综合天天 | 亚洲乱码在线观看 | 日批网站在线观看 | 国产系列 在线观看 | 精品一区免费 | 欧美国产高清 | 久久综合9988久久爱 | 欧美视频一区二 | 亚洲国产中文字幕在线观看 | 亚洲国产黄色 | 国产精品三级视频 | 国产一区成人在线 | 日韩电影中文,亚洲精品乱码 | 99视频偷窥在线精品国自产拍 | 成人一级片视频 | 麻豆 videos| 午夜精品一区二区三区在线播放 | 国产成人99久久亚洲综合精品 | 成人午夜电影在线观看 | a极黄色片 | 欧美成人区 | 最新国产在线视频 | 婷婷视频在线播放 | 探花视频网站 | 国内精品在线观看视频 | 99热99| 在线国产能看的 | 美女啪啪图片 | 欧美在线一二区 | 精品福利网 | 最新中文字幕 | 99久久99久久综合 | 日韩中文字幕在线看 | 国产综合视频在线观看 | 日韩 国产 | 国产在线播放观看 | 国产视频一区在线免费观看 | 国产一区影院 | 日本精品视频一区二区 | 国产色在线 | 成人va在线观看 | 黄色影院在线免费观看 | 在线视频免费观看 | 国产精品久久久久四虎 | 国产精品无 | 91香蕉视频黄 | 九九热精品国产 | 香蕉视频啪啪 | 亚洲精品在线免费观看视频 | 视频在线观看一区 | 911精品美国片911久久久 | 日本中文字幕一二区观 | 久久69av| 一级片黄色片网站 | 波多野结衣精品 | 香蕉影院在线 | 看片黄网站| 日夜夜精品视频 | 成人黄色小说视频 | 网址你懂的在线观看 | 免费h漫在线观看 | 国产成人精品电影久久久 | www色com| 99热99热 | 成人av一区二区兰花在线播放 | 91精品国产91久久久久久三级 | 中文字幕黄色 | 色视频在线免费 | 玖草影院| 久精品视频 | 亚洲电影自拍 | 中文一区二区三区在线观看 | h动漫中文字幕 | 亚洲天堂色婷婷 | 超碰97国产精品人人cao | 中文字幕首页 | 亚洲专区在线视频 | 亚洲最新av在线网址 | 91在线porny国产在线看 | 婷婷久久网站 | 美女在线免费视频 | 色婷婷激情网 | 成人羞羞视频在线观看免费 | 99av国产精品欲麻豆 | 五月宗合网 | a级国产乱理论片在线观看 特级毛片在线观看 | 91亚洲精品久久久中文字幕 | 亚洲狠狠婷婷综合久久久 | 国产又粗又猛又黄又爽 | 在线综合 亚洲 欧美在线视频 | 中文字幕电影一区 | 欧美日韩免费一区二区三区 | 精品久久久免费视频 | 免费在线黄色av | 最近中文字幕在线播放 | 91免费观看视频在线 | 91成人午夜 | 国产精品免费观看久久 | av电影在线观看完整版一区二区 | www久久国产 | 男女视频国产 | 欧美在线aa | 精品一区二区三区香蕉蜜桃 | 一区二区三区在线观看免费视频 | 99se视频在线观看 | 五月天亚洲婷婷 | 四虎影视国产精品免费久久 | 91人人澡| 亚洲精品久久久久久久不卡四虎 | 国产精品久久久久久麻豆一区 | 日韩美女高潮 | 欧美最猛性xxxxx(亚洲精品) | 国产免费人成xvideos视频 | 香蕉视频一级 | 国产99一区 | 爱色婷婷| 日韩一区在线免费观看 | 国产精品99久久久久久宅男 | 91丨porny丨九色 | 亚洲精品国内 | av观看在线观看 | 99精品视频在线观看免费 | 欧美 日韩 国产 成人 在线 | 久草视频在线播放 | 97av在线视频免费播放 | 国产午夜精品一区二区三区欧美 | 久久综合成人 | 韩国一区二区在线观看 | 久久久久成人精品亚洲国产 | 日韩电影在线观看一区二区 | 黄色激情网址 | 99热精品国产 | 中文字幕精品在线 | 国内精品久久久久久久97牛牛 | 狠狠的干 | av线上看 | 午夜av一区| 欧美性免费 | 天天操夜夜曰 | 精品网站999www | 在线视频 国产 日韩 | 精品国产电影一区 | 国产在线黄 | 99热国产在线中文 | 色狠狠狠| 欧美激情操 | 超碰.com| 天天射天天爱天天干 | 亚洲精品男人的天堂 | 亚洲一区二区精品3399 | 亚洲午夜不卡 | 二区三区毛片 | 久久久久久伊人 | 黄色午夜| 久久综合九色综合久99 | 最近最新中文字幕 |