久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring入门 IOC

發(fā)布時間:2024/1/23 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring入门 IOC 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JAVA就業(yè)套餐課:https://edu.csdn.net/combo/detail/1230

課程說明

一、?技術(shù)概覽

輕量級的企業(yè)應(yīng)用開發(fā)越來越受到廣大Java應(yīng)用開發(fā)者的追捧,而Spring框架又是輕量級容器的杰出代表。由于Spring的使用日漸廣泛,因此已有許多應(yīng)用服務(wù)器(WAS)的應(yīng)用采用了Spring框架。本書先介紹Spring的依賴注入、面向切面編程、Spring抽象JDBC框架,然后介紹三大框架的整合。

Spring框架的核心思想我們可以用兩個字來描述,那就是“解耦”。應(yīng)用程序的各個部分之間(包括代碼內(nèi)部和代碼與平臺之間)盡量形成一種松耦合的結(jié)構(gòu),使得應(yīng)用程序有更多的靈活性。應(yīng)用內(nèi)部的解耦主要通過一種稱為控制反轉(zhuǎn)(IOC)的技術(shù)來實現(xiàn)。控制反轉(zhuǎn)的基本思想就是本來由應(yīng)用程序本身來主動控制的調(diào)用等邏輯轉(zhuǎn)變成由外部配置文件來被動控制。由于控制反轉(zhuǎn)的概念相對比較廣泛,很多應(yīng)用服務(wù)器實際上也實現(xiàn)了不同程度的控制反轉(zhuǎn)技術(shù),只是這些應(yīng)用服務(wù)器對應(yīng)用程序的侵入性太強(qiáng)。因此Martin Fowler專門寫了一篇文章討論控制反轉(zhuǎn)這個概念,并提出一個描述更為準(zhǔn)確的概念,叫依賴注入(Dependency Injection)。

Spring框架中的各個部分都充分使用了這種依賴注入的技術(shù)實現(xiàn),從而給應(yīng)用以最大的靈活度。實際上,這種依賴注入的參數(shù)化應(yīng)用控制并不是Spring的首創(chuàng),比如IBM的多渠道應(yīng)用整合平臺(Branch Transformation Toolkit,BTT)很早就采用了這種外部參數(shù)化控制的技術(shù)。BTT中的“對象工廠”與Spring框架中的BeanFactory也有著異曲同工之妙。

Spring框架另外一個比較重要的技術(shù)是它對于面向切面的編程(AOP)的支持。隨著應(yīng)用復(fù)雜度的逐漸上升和對應(yīng)用靈活性要求的提高,IT邏輯和業(yè)務(wù)邏輯盡量分離的呼聲也越來越高。AOP技術(shù)作為實現(xiàn)這種分離的一種比較好的途徑而越來越受到大家的重視。Spring提供的是一種動態(tài)AOP實現(xiàn),也即通過代理模式動態(tài)地在目標(biāo)對象的方法前后插入相應(yīng)的處理代碼。應(yīng)用程序與底層應(yīng)用服務(wù)器平臺的解耦也可以借助AOP技術(shù)來實現(xiàn)。Spring內(nèi)置的AOP支持是一種錦上添花的功能。它使得一些本來必須由容器支持的功能,比如事務(wù)控制可以脫離開容器運行,從而達(dá)到“瘦身”的目的。這也是為什么Spring框架常被人成為輕量級容器的一個原因。

JDBC基于SQL,不要求我們掌握其他框架的查詢語言,簡單易學(xué),因此學(xué)習(xí)成本低。另外,在使用 JDBC 時,可以更細(xì)致地調(diào)整數(shù)據(jù)訪問的性能。JDBC 還允許我們利用數(shù)據(jù)庫的特有功能,而其他框架可能不鼓勵甚至禁止使用它們。 但是JDBC并不完美,無論是執(zhí)行查詢,更新,插入還是刪除操作, JDBC都要求我們正確地管理連接和語句,還要處理可能拋出的SQLException,及時的釋放資源。這顯然造成了大量的代碼重復(fù)。這似乎印證了 Pareto 法則:只有 20% 的代碼是查詢操作所必需的,而80%代碼是樣板代碼。Spring抽象JDBC框架基于模板設(shè)計模式,將上述必須都又和核心業(yè)務(wù)無關(guān)的樣板代碼封裝到模板方法中,以簡化開發(fā),讓編程人員可以將精力集中在核心業(yè)務(wù)之上。

Spring框架可以與許多已有的框架技術(shù)結(jié)合使用。J2EE技術(shù)應(yīng)用的一個重要特點是相關(guān)的開源社區(qū)非常活躍。Web應(yīng)用的不同層次都有非常多優(yōu)秀的開源框架存在。比如Web層的Struts,ORM映射層的Hibernate等。Spring框架并不重新發(fā)明輪子,它的出現(xiàn)不是為了替代這些已有的框架。相反,Spring框架在設(shè)計上可以獨立構(gòu)建應(yīng)用或者結(jié)合已有的框架一起構(gòu)建應(yīng)用。另外一個值得指出的地方是Spring框架的幾大模塊之間相互耦合度很小,因此Spring框架的使用可以根據(jù)實際需要選其部分模塊循序漸進(jìn)的使用,而非必須統(tǒng)統(tǒng)照搬。

?

本章簡介

Spring是用于簡化企業(yè)應(yīng)用程序開發(fā)過程的開源框架,屬于輕量級的控制反向 (IOC,即 Inversion of control)和面向切面編程 (AOP,即 Aspect Oriented ?Programming)的容器框架。本章以 Spring的起源及背景為起點,介紹Spring的工作原理。然后以組裝計算機(jī)為貫穿案例介紹Spring Bean的封裝機(jī)制、Spring對Bean的管理,分別使用設(shè)值注入、構(gòu)造注入、自動注入等方式組裝Bean。最后通過一個示例介紹集合屬性的使用。

?

1.1?Spring簡介

1.1.1?Spring 的歷史

Spring的基礎(chǔ)架構(gòu)起源于2000年早期,創(chuàng)始人為畢業(yè)于悉尼大學(xué)的音樂學(xué)博士Rod Johnson。2002 年后期,Rod Johnson 發(fā)布了《Expert One-on-One J2EE 設(shè)計與開發(fā)》一書,在書中,他對傳統(tǒng)的J2EE技術(shù)(以EJB為核心)日益臃腫和低效提出了質(zhì)疑,他覺得應(yīng)該有更簡潔的做法,于是提出了Interface21,也就是Spring框架的雛形。他還隨書提供了Interface21 開發(fā)包以實現(xiàn)初步框架的開發(fā),Interface21 即書中思想的具體實現(xiàn)。Rod Johnson 以 Interface21 開發(fā)包為基礎(chǔ),通過改造與擴(kuò)充將其升級為更加開放、清晰、全面、高效的開發(fā)框架——Spring。2003年2月,Spring 框架正式成為開源項目,并發(fā)布于SourceForge中。后期隨著數(shù)百甚至上千開發(fā)者貢獻(xiàn)各自的經(jīng)驗,Spring 在改進(jìn)與加強(qiáng)中變得日益強(qiáng)大,開發(fā)者的熱心與投入使 Spring 社區(qū)十分活躍。

?

Spring框架的發(fā)展與成熟,離不開日復(fù)一日為 Spring 社區(qū)默默地做出偉大貢獻(xiàn)的會員們。

1.1.1?Spring工作原理

Spring是一種通過JavaBean配置應(yīng)用程序的方法。我們不需要通過new關(guān)鍵詞創(chuàng)建對象,而是在配置文件中配置JavaBean。當(dāng)對象與對象之間有依賴關(guān)系的時候,我們也只需要在配置文件中把依賴關(guān)系體現(xiàn)出來,這些被配置的Bean將會納入Spring管理,放置于Spring容器中。我們只需要寫很少量的代碼便可得到Spring容器,并且從Spring容器中得到配置的JavaBean。這種解決依賴性的方法即控制反轉(zhuǎn) (IOC,即Inversion of Control)或者依賴注入(Dependency Injection),從技術(shù)上來說,即使用某種容器組織相互依賴的對象。除了IOC之外,Spring還可以將分散在系統(tǒng)的公共代碼統(tǒng)一組織起來,在運行的時候加入到系統(tǒng)中,這就是AOP(面向切面編程)。

1.1.2?Spring框架簡介

Spring 是用于簡化企業(yè)應(yīng)用程序開發(fā)過程的開源框架,屬于輕量級的控制反轉(zhuǎn) (IOC)和面向切面編程 (AOP,即 Aspect Oriented Programming)的容器框架,解決了J2EE開發(fā)中許多常見的問題。我們需要了解一下Spring中的一些名詞:

(1)輕量級:以所占大小及系統(tǒng)開銷分析,Spring屬于輕量級。整個Spring框架可以打包為 1M左右的JAR包,且系統(tǒng)開銷較小。同時,Spring為非侵入式,若系統(tǒng)基于Spring開發(fā),其所含的對象一般不依賴于Spring的類。

(2)IOC: IOC使對象被動接受依賴類,而并非主動獲取。也就是說,告訴 Spring“你”是什么,“你”需要什么對象,然后Spring會在系統(tǒng)運行到適當(dāng)?shù)臅r候,把“你”要的對象主動給“你”,同時也把“你”交給其他需要“你”的對象。所有的類的創(chuàng)建、銷毀都由Spring來控制,控制對象生存周期的不再是引用它的對象,而是 Spring。對于某個具體的對象而言,使用 Spring 之前是它控制其他對象,現(xiàn)在是所有對象都被 Spring 控制,所以叫控制反轉(zhuǎn)。在系統(tǒng)運行中,動態(tài)的向某個對象提供它所需要的其他對象,這一點是通過DI(依賴注入)實現(xiàn)的。

(3)AOP:面向切面編程(也叫面向方面編程),關(guān)注系統(tǒng)的橫向切面。通俗點說就是把代碼“切開”,然后在需要的位置上動態(tài)加入公共代碼。比如日志或者事務(wù)支持。

(4)容器:Spring 是一個包含且管理系統(tǒng)對象生命周期和配置的容器,在使用 Spring 應(yīng)用開發(fā)的時候,幾乎所有的 JavaBean 對象都需要 Spring 來“盛放”。Spring 容器的作用是管理對象。

(5)Spring框架:Spring能夠通過簡單的組件組合為復(fù)雜的系統(tǒng)。Spring框架為分層架構(gòu),由7個定義良好的模塊組成,各模塊構(gòu)建于核心容器之上,核心容器定義了創(chuàng)建、配置及管理Bean的方式,如圖 1.1.2 所示。

?

轉(zhuǎn)存失敗重新上傳取消

?

?

圖 1.1.2 中,各模塊 (或組件)可以單獨存在,也可以與其他一個或多個模塊聯(lián)合實現(xiàn)。各模塊的功能如下:

(1)Spring Core:核心容器,用于提供 Spring框架的基本功能,其主要組件為 BeanFactory,是工廠模式的實現(xiàn)。BeanFactory使用反向控制(IOC)模式將應(yīng)用程序的配置及依賴性規(guī)范與實際應(yīng)用程序代碼分開。

(2)Spring Context:核心模塊的BeanFactory使Spring成為容器,上下文 (Context)模塊使其成為框架。此模塊擴(kuò)展了BeanFactory的概念,增加了對國際化(I18N,即Internationalization)消息、事件的傳播以及驗證的支持;同時,此模塊提供諸多企業(yè)服務(wù),如電子郵件、JNDI訪問、EJB集成、遠(yuǎn)程以及時序調(diào)度(Scheduling)服務(wù),支持對模版框架 (如Velocity、FreeMarker)的集成。

(3)Spring AOP:通過配置管理特性,Spring AOP模塊將面向切面編程功能集成至框架中,使Spring框架管理的任何對象均支持AOP。Spring AOP模塊向基于 Spring的應(yīng)用程序中的對象提供事務(wù)管理服務(wù)。此模塊無需依賴于EJB組件,可以使用 Spring AOP將聲明式事務(wù)管理集成至應(yīng)用程序中。

(4)Spring DAO:JDBC DAO抽象層提供了意義重大的異常層次結(jié)構(gòu),簡化了錯誤處理過程并極大地減少了需要編寫的異常代碼 (如打開或關(guān)閉連接),運用此結(jié)構(gòu)可以管理異常、處理不同數(shù)據(jù)庫供應(yīng)商拋出的錯誤消息。Spring DAO的面向JDBC異常遵從通用的 DAO異常層次結(jié)構(gòu)。

(5)Spring ORM:Spring框架中插入了若干ORM框架,提供ORM的對象關(guān)系工具,包括JDO、Hibernate以及iBatis SQL Map,都遵從Spring的通用事務(wù)及DAO異常層次結(jié)構(gòu)。

(6)Spring Web:Web上下文模塊建立在應(yīng)用程序上下文模塊之上,向基于Web 的應(yīng)用程序提

供上下文,因而Spring框架支持與Struts集成。同時,Web模塊簡化了請求的處理過程以及將請求參數(shù)綁定至域?qū)ο蟮墓ぷ鳌?/p>

(7)Spring MVC:MVC 框架是一個全功能的構(gòu)建 Web 應(yīng)用程序的 MVC 實現(xiàn)。通過策略接口,MVC框架變?yōu)楦叨瓤膳渲?#xff0c;它容納了大量視圖技術(shù),包括JSP、Velocity、Tiles、iText及POI等。

創(chuàng)建Spring項目可以使用MyEclipse開發(fā)工具,先創(chuàng)建項目,然后增加Spring支持。操作過程如圖1.1.3和1.1.4所示。

?

轉(zhuǎn)存失敗重新上傳取消

?

轉(zhuǎn)存失敗重新上傳取消

?

圖1.1.4中類庫的添加只包含核心類庫,使用Spring控制反轉(zhuǎn)的時候一般不需要添加其他類庫。

1.1??Spring Bean封裝機(jī)制

1.1.1?Spring Bean?

Spring以Bean的方式管理所有的組件,J2EE 的全部組件都使用Bean管理。在Spring中,

除了標(biāo)準(zhǔn)的JavaBean,其他任何對象和組件都可以作為Bean。

應(yīng)用中各層的對象均由Spring管理,對象以Bean方式存在。Spring負(fù)責(zé)創(chuàng)建Bean的實例并管理其生命周期,Bean運行于Spring的容器。Spring上下文是生產(chǎn)Bean的工廠,Bean是Spring工廠生產(chǎn)的實例。Spring產(chǎn)生工廠時,需要確定每個Bean的實現(xiàn)類;Bean實例的使用者面向接口,因此無須關(guān)心Bean實例的實現(xiàn)類。Spring工廠負(fù)責(zé)維護(hù)Bean實例的實例化,使用者則無須關(guān)心。

Bean的定義通常使用XML配置文件,正確定義的Bean 由Spring提供實例化以及依賴關(guān)系的注入等。最簡單的Spring配置文件代碼如示例1.1所示。

示例1.1

?

?

?

<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> </beans>

?

Spring的schemaLocation詳細(xì)規(guī)定了Spring配置文件的合法元素、各元素出現(xiàn)的先后順序、各元素的合法子元素以及合法屬性等。

增加對實體對象管理的Bean,配置文件代碼如示例1.2所示。

?

示例1.2

?

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><bean id="user" class="com.hr.entity.UserVo" abstract="false" lazy-init="default" autowire="default" /> </beans>

?

上述代碼中定義了UserVo對象。XML中Bean節(jié)點的部分屬性如下:

?

<bean id="beanId" name ="beanName" class="beanClass" parent="parentBean" abstract="true | false" scope="prototype|singleton" lazy-init="true | false | default" autowire="no | byName | by Type | constructor | auto detect |default"> </ bean>

?

?

?

以上屬性的含義如表 1-1-l所示。

表1-1-1 Bean屬性

屬性

含義

id

Bean的唯一標(biāo)識名,必須為合法的XML ID,在整個XML文檔中唯一,如果沒有特殊需要,我們在標(biāo)識一個Bean的時候,一般推薦使用id。

name

用于為id創(chuàng)建一個或多個別名,可以是任意字母或者符號,多個別名之間以逗號或空格分隔。

class

用于定義類的全限定名(包名加類名),Spring在創(chuàng)建對象的時候需要用到此屬性,因此該屬性不能指定接口。

parent

子類Bean定義其所引用的父類Bean,繼承父類的所有屬性。值得一提的是,在寫代碼的時候,即便是兩個類之間沒有繼承關(guān)系,我們同樣可以使用該屬性。

abstract

用于定義Bean是否為抽象Bean,默認(rèn)為false,表示此Bean將不會被實例化。一般用于父類Bean,可以在子類繼承的時候使用。

scope

用于定義Bean的作用域,singleton表示在每個Spring IoC容器中一個bean定義對應(yīng)一個對象實例,即Spring使用單例模式獲取實例。prototype表示一個bean定義對應(yīng)多個對象實例,即非單例模式

lazy-init

用于定義Bean是否實現(xiàn)初始化,默認(rèn)為default。若為true,將在BeanFactory啟動時初始化所有Singleton Bean;若為false,則在Bean請求時創(chuàng)建Singleton Bean

autowire

用于定義Bean的自動裝配方式,默認(rèn)為default,包括不使用自動裝配功能、通過Bean的屬性名實現(xiàn)自動裝配、通過Bean的類型實現(xiàn)自動裝配、通過Bean類的反省 (Introspection)機(jī)制決定選擇使用constructor或者byType。

1.1.1?Application Context

Spring包括兩種不同的容器:BeanFactory 和 ApplicationContext。BeanFactory提供基本的IOC支持;ApplicationContext則基于BeanFactory,提供應(yīng)用程序框架服務(wù)。Spring提供了BeanFactory與 ApplicationContext 的多個實現(xiàn)。

ApplicationContext包括 BeanFactory 的全部功能,除非應(yīng)用程序?qū)π阅芤蠛芨邥r才考慮BeanFactory,其他情況下建議優(yōu)先使用ApplicationContext。

應(yīng)用中出現(xiàn)多個配置文件時,應(yīng)采用BeanFactory的子接口ApplicationContext創(chuàng)建 BeanFactory的實例。ApplicationContext通常使用ClassPathXmlApplicationContext實現(xiàn)類,該類以classpath路徑下的XML配置文件創(chuàng)建ApplicationContext。使用該類創(chuàng)建Spring容器的代碼如示例1.3所示。

示例1.3

// 搜索classpath路徑,以classpath路徑下的applicationContext.xml創(chuàng)建對象ApplicationContext applicationContext = new ClassPathXmlApplicationContext(

"applicationContext.xml");

在實際應(yīng)用中,會將Spring配置分別放在不同的配置文件中,如果一個應(yīng)用中有兩個配置文件application.xml和bean.xml,則創(chuàng)建容器實例的方法如示例1.4所示。

示例1.4

// 搜索classpath路徑,以classpath路徑下的

//applicationContext.xml和bean.xml創(chuàng)建ApplicationContext。?

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","bean.xml"});

ApplicationContext接口包括以下 3 個重要方法:

(1)containsBean(String name)方法。

//判斷Spring容器是否包含ID為?user的Bean

boolean flag=applicationContext.containsBean("user");

(2)getBean(String name)方法。

//返回ID為?user的Bean

UserVo userBean= (UserVo)applicationContext.getBean("user");

該方法的功能是從Spring容器中獲取一個對象,該方法的參數(shù)可以是Spring配置文件中Bean的id或者name,如果name指定了多個標(biāo)識,只需傳入一個標(biāo)識。

(3)getType(String name)方法。

//返回:ID為?user 的類型

Class beanType= applicationContext.getType("user");

以下示例將從Spring容器中獲取一個user對象,并輸出user的信息。

示例1.5

// 以classpath路徑下的applicationContext.xml創(chuàng)建Spring容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext( "applicationContext.xml"); // 從Spring容器中獲取ID為user的Bean UserVo user = (UserVo) applicationContext.getBean("user"); // 封裝姓名和年齡 user.setName("張三豐"); user.setAge(100); // 輸出該Bean的信息 user.printInfo();

從示例1.5我們發(fā)現(xiàn)Bean的創(chuàng)建將交給Spring管理,我們要做的就是在Spring配置文件中對Bean配置即可。

1.1?Spring DI/IOC

1.1.1?什么是Spring的依賴注入

我們先看看什么叫依賴。在生活中,依靠別人或者別的事物而不能獨立或者自立,我們稱為依賴。那么在應(yīng)用中,什么叫依賴呢?

依賴指的是兩個實例之間的關(guān)系。其中一個實例是獨立的,另一個實例是非獨立的(依賴的),它依靠另外一個實例。比如計算機(jī)對象,它包含主機(jī)對象和顯示器對象。如果沒有主機(jī)對象或者顯示器對象,則計算機(jī)對象就是不完整的,不能正常使用,我們就說計算機(jī)對象依賴于主機(jī)對象和顯示器對象。

那么什么是注入呢?

計算機(jī)對象離不開主機(jī)對象和顯示器對象,程序在運行過程中,我們必須給計算機(jī)對象提供它所需要的主機(jī)對象和顯示器對象,把主機(jī)對象和顯示器對象像“打針”一樣提供給計算機(jī)對象,這個過程就叫做注入。

也就是說,如果一個對象需要另外一個對象才能正常使用,我們在程序運行的時候,給該對象提供它所需要的對象,這就是“依賴注入”。我們知道,Spring將會管理幾乎所有的Bean對象,而對象與對象之間可能存在依賴關(guān)系,在程序運行過程中,Spring把我們所需要的對象都拼裝好,這就是Spring的依賴注入。

在傳統(tǒng)的 Java設(shè)計中,當(dāng) Java實例的調(diào)用者創(chuàng)建被調(diào)用的 Java實例時,要求被調(diào)用的 Java類出現(xiàn)在調(diào)用者的代碼中,二者之間無法實現(xiàn)松耦合。工廠模式則對此進(jìn)行了改進(jìn),使調(diào)用者無須關(guān)心被調(diào)用者的具體實現(xiàn)過程,只要獲得符合某種標(biāo)準(zhǔn) (接口)的實例即可使用。其調(diào)用的代碼面向接口編程,支持調(diào)用者與被調(diào)用者解耦,因此工廠模式得以大范圍地使用。但在工廠模式中,調(diào)用者需要自行定位工廠,與特定工廠耦合,所以僅在一定程度上實現(xiàn)了調(diào)用者與被調(diào)用者的解耦。Spring 的出現(xiàn)使調(diào)用者無須自行定位工廠,當(dāng)程序運行至需要被調(diào)用者時,系統(tǒng)將自動提供被調(diào)用者實例。事實上,調(diào)用者與被調(diào)用者均由 Spring管理,二者之間的依賴關(guān)系由Spring提供。

下面以計算機(jī)的組裝為例來演示此過程。計算機(jī)由主機(jī)和顯示器組成,我們需要輸出一臺計算機(jī)的信息,比如該計算機(jī)由什么型號的主機(jī)、什么型號的顯示器組成。下面我們一起來分析并設(shè)計該系統(tǒng)。

主機(jī)設(shè)計成一個類,該類(MainFrame)中有一個方法,用來輸出主機(jī)的型號,如示例1.6所示。

示例1.6

?

private String modelType;//型號 // 輸出主機(jī)信息 public void printMainFrameInfo() {System.out.println("主機(jī)型號:" + modelType); } //setter & getter

顯示器設(shè)計成一個接口,該接口(Display)聲明一個輸出顯示器信息的方法,如示例1.7所示。

示例1.7

public void printDisplayInfo();

顯示器接口有兩個實現(xiàn),分別是三星顯示器和LG顯示器,如示例1.8所示。

示例1.8

?

//三星顯示器 public class SamSungDisplay implements Display {public void printDisplayInfo() {System.out.println("顯示器:三星顯示器");} } //LG顯示器 public class LgDisplay implements Display {public void printDisplayInfo() {System.out.println("顯示器:LG顯示器 ");} }

?

計算機(jī)由主機(jī)和顯示器組成,因此計算機(jī)類(Computer)有兩個屬性,一個是主機(jī),一個是顯示器,如示例1.9所示。

示例1.9

?

private MainFrame mainFrame;// 主機(jī) private Display display;// 顯示器接口// 輸出計算機(jī)配置信息public void printComputerInfo() {System.out.println("計算機(jī)配置如下:");mainFrame.printMainFrameInfo();// 輸出主機(jī)信息display.printDisplayInfo();// 輸出顯示器信息} //setter & getter

?

根據(jù)需求,計算機(jī)依賴于主機(jī)和顯示器,因此可以使用Spring的依賴注入來實現(xiàn)。我們需要在配置文件中配置三星顯示器、LG顯示器和計算機(jī)。

三星顯示器的配置如示例1.10所示。

示例1.10

<bean id="samsung" class="s3spring.ch01.computer.mainframe.SamSungDisplay" />

LG顯示器的配置如示例1.11所示。

示例1.11

<bean id="lg" class="s3spring.ch01.computer.mainframe.LgDisplay" />

主機(jī)的modelType屬性是直接量,直接量指的是基本數(shù)據(jù)類型和字符串,對直接量的注入,我們可以使用<value/>元素來指定。主機(jī)的配置如示例1.12所示。

示例1.12

<bean id="mainFrame" class="s3spring.ch01.computer.mainframe.MainFrame">

<property name="modelType" value="三星高配主機(jī)"/>

</bean>

目前為止,我們已經(jīng)把主機(jī)對象和顯示器對象交給了Spring,接下來,我們需要讓Spring管理計算機(jī)對象,計算機(jī)對象對主機(jī)對象和顯示器對象有依賴,我們需要用Spring的依賴注入來實現(xiàn)。

Spring的依賴注入對調(diào)用者與被調(diào)用者幾乎無任何要求。依賴注入通常分為設(shè)值注入、構(gòu)造注入、自動注入等。

1.1.1?設(shè)值注入方式

設(shè)值注入是指通過setter方法傳入被調(diào)用者的實例,所以Bean的屬性要求有對應(yīng)的setter和getter方法,此方式因簡單直觀而得以廣泛使用。

計算機(jī)的屬性為主機(jī)和顯示器,我們可以使用<ref/>元素來指定,該元素用來將bean中指定屬性的值設(shè)置為對容器中的另外一個bean的引用,采用設(shè)值注入方法的配置如示例1.13所示。

示例1.13

?

<!-- 計算機(jī)的配置 --> <bean id="computer" class="s3spring.ch01.computer.Computer"><!-- 設(shè)值注入主機(jī),name對應(yīng)computer的屬性,ref對應(yīng)所依賴的bean--><property name="mainFrame" ref="mainFrame"/><!-- 設(shè)值注入三星顯示器 --><property name="display" ref="samsung"/> </bean>

?

如果mainFrame、samsung和computer這三個Bean的配置在同一個配置文件,我們也可以把<property name=“mainframe”?ref=“mainframe”/>更改為

<property name=“mainframe”?><ref local=“mainframe”/></property>。如果mainFrame、samsung和computer不在同一個配置文件中,則需要更改為<property name=“mainframe”><ref bean=“mainframe”/></property>,無論是local還是bean都可以指定為一個所依賴的Bean的id或者name。

由配置文件可知,Spring在管理Bean時非常靈活。Bean與 Bean 間的依賴關(guān)系在配置文件中組織,并非在代碼中編寫。Spring通過配置文件精確地為每個Bean注入實例化的屬性。因此,配置文件Bean的class元素不能為接口,只能為實現(xiàn)類。

Spring 自動管理Bean定義property元素,在執(zhí)行無參的構(gòu)造方法和創(chuàng)建默認(rèn)的Bean 的實例后,Spring會調(diào)用對應(yīng)的setter方法注入屬性值。property定義的屬性值不再由 Bean創(chuàng)建或管理,而是被動接受Spring的注入。Bean的 ID 屬性為其唯一標(biāo)識,程序通過 ID 屬性對Bean進(jìn)行訪問,Bean與 Bean間的依賴關(guān)系也由 ID屬性實現(xiàn)。設(shè)值注入的測試代碼如示例1.14所示。

示例1.14

?

ApplicationContext applicationContextContext = new ClassPathXmlApplicationContext("applicationContext.xml"); Computer computer=(Computer)applicationContextContext.getBean("computer");//輸出計算機(jī)的配置信息 computer.printComputerInfo();

?

目前為止,我們成功的從Spring容器中獲取了計算機(jī)對象。Spring的依賴注入使得我們在維護(hù)項目的時候變的非常簡單,如果把顯示器更改LG顯示器,我們并不需要修改任何代碼,修改配置文件即可實現(xiàn),配置文件的修改如下。

<property name="display" ref="lg"/>

1.1.1?構(gòu)造注入方式

構(gòu)造注入是指通過構(gòu)造方法完成依賴關(guān)系的注入,并非 setter方法。將以上設(shè)值注入按構(gòu)造注入重新實現(xiàn),則需要在Computer中增加帶參構(gòu)造方法,如示例1.15所示。

示例1.15

?

public Computer(MainFrame mainFrame, Display display) {this.mainFrame = mainFrame;this.display = display; }

?

Spring配置文件需要修改,修改后如示例1.16所示。

示例1.16

?

<bean id="computer" class="s3spring.ch01.computer.Computer"> //構(gòu)造注入主機(jī)和顯示器<constructor-arg index="0" ref="mainFrame" /><constructor-arg index="1" ref="samsung" /> </bean>

?

采用構(gòu)造注入方式時,Spring容器將會在程序運行時調(diào)用Computer的帶參構(gòu)造方法來創(chuàng)建實例,該帶參構(gòu)造有兩個參數(shù),index指的是第幾個參數(shù),ref指傳入該參數(shù)的Bean。其執(zhí)行效果與設(shè)值注入完全相同,區(qū)別在于屬性的創(chuàng)建時機(jī)不同。設(shè)值注入創(chuàng)建默認(rèn)的Bean實例后,調(diào)用對應(yīng)的 setter方法注入依賴關(guān)系。構(gòu)造注入則在創(chuàng)建 Bean實例時完成依賴關(guān)系的注入。

1.1.1?自動注入

Spring容器可以自動注入(autowire)相互協(xié)作bean之間的關(guān)聯(lián)關(guān)系。因此,如果可能的話,可以自動讓Spring通過檢查BeanFactory中的內(nèi)容,來替我們指定bean的協(xié)作者(其他被依賴的bean)。由于autowire可以針對單個bean進(jìn)行設(shè)置,因此可以讓有些bean使用autowire,有些bean不采用。autowire的方便之處在減少或者消除屬性或構(gòu)造器參數(shù)的設(shè)置,這樣可以簡化配置文件,如果直接使用property和constructor-arg注入依賴的話,那么將總是覆蓋自動裝配,在xml配置文件中,可以在<bean/>元素中使用autowire屬性指定,如表1-1-2所示。

表1-1-2 autowire屬性

模式

?說明

no

不使用自動裝配。必須通過ref元素指定依賴,這是默認(rèn)設(shè)置。由于顯式指定協(xié)作者可以使配置更靈活、更清晰,因此對于較大的部署配置,推薦采用該設(shè)置。

byName

根據(jù)屬性名自動裝配。此選項將檢查容器并根據(jù)名字查找與屬性完全一致的bean,并將其與屬性自動裝配。

byType

如果容器中存在一個與指定屬性類型相同的bean,那么將與該屬性自動裝配。如果存在多個該類型的bean,那么將會拋出異常,并指出不能使用byType方式進(jìn)行自動裝配。若沒有找到相匹配的bean,則屬性不會被設(shè)置。

如果把配置文件修改為示例1.17所示,則采用自動裝配來組裝計算機(jī)。

示例1.17

?

<bean id="computer" class="s3spring.ch01.computer.Computer" autowire="byName"><property name="display" ref="samsung"></property> </bean>

?

由于使用byName自動裝配,容器會檢查ID和Computer的兩個屬性mainFrame以及display名稱匹配的Bean并注入,由于存在ID為mainFrame的Bean,所以Computer的mainFrame屬性被自動注入,而display是顯式注入,所以覆蓋了display屬性的自動注入。

1.1.1?集合屬性

通過<list/>、<set/>、<map/>及<props/>元素可以定義和設(shè)置與Java Collection類型對應(yīng)List、Set、Map及Properties的值。示例1.18中定義TestBean類,該類有四個屬性,分別是List、Map、Properties、Set類型。

?

private List list; private Map map; private Properties prop; private Set set;

?

對TestBean類的配置如示例1.19所示。

示例1.19

<bean id="testBean" class="com.bean.TestBean"> <!--list屬性的配置 --><property name="list"><list><value>v1</value><value>v2</value></list></property><!-- map屬性的配置 --> <property name="map"><map><entry key="k1"><value>v1</value></entry><entry key="k2"><value>v2</value></entry></map></property> <!-- prop屬性的配置 --><property name="prop"><props><prop key="k1">str1</prop><prop key="k2">str2</prop></props></property><!-- set屬性的配置 --><property name="set"><set><value>v1</value><value>v2</value></set></property> </bean>

程序運行的時候,我們從Spring容器中獲取testBean實例,該實例的四個集合屬性中將會包含指定的對象。

1.1.1?Spring 注入方式的比較

1. 設(shè)值注入的特點

對于習(xí)慣了傳統(tǒng)JavaBean開發(fā)的程序員而言,通過setter方法設(shè)定依賴關(guān)系更加直觀自然。當(dāng)依賴關(guān)系(或繼承關(guān)系)較復(fù)雜時,構(gòu)造注入方式的構(gòu)造函數(shù)相當(dāng)龐大,且需要在構(gòu)造函數(shù)中設(shè)定所有依賴關(guān)系,此時使用設(shè)值注入方式則簡單快捷。除此之外,某些第三方類庫要求組件必須提供默認(rèn)的構(gòu)造函數(shù) (如 Struts 中的 Action),此時構(gòu)造注入方式的依賴注入機(jī)制會突顯局限性,難以完成預(yù)期的功能,必須通過設(shè)值注入實現(xiàn)。

2. 構(gòu)造注入的優(yōu)點

在構(gòu)造期即創(chuàng)建完整、合法的對象,構(gòu)造注入無疑是此Java設(shè)計原則的最佳響應(yīng)者。

而且構(gòu)造注入還避免了編寫繁瑣的setter方法,所有的依賴關(guān)系都在構(gòu)造函數(shù)中設(shè)定,使依賴關(guān)系集中呈現(xiàn),可讀性增加。由于不存在 setter方法,而是在構(gòu)造時由容器一次性設(shè)定依賴關(guān)系。因此,組件在創(chuàng)建之后即處于相對穩(wěn)定狀態(tài),無須擔(dān)心上層代碼在調(diào)用過程中執(zhí)行setter方法時破壞組件之間的依賴關(guān)系。對于 Singleton模式組件,這種破壞將對整個系統(tǒng)產(chǎn)生重大的影響。通過構(gòu)造注入,可以在構(gòu)造函數(shù)中決定依賴關(guān)系的注入順序。對于大量依賴外部服務(wù)的組件而言,依賴關(guān)系的獲取順序至關(guān)重要。

1.1?基于注解的容器配置

基于注解(Annotation)的配置有越來越流行的趨勢,Spring順應(yīng)這種趨勢,從2.5版起提供了完全基于注解配置 Bean、裝配 Bean 的功能,您可以使用基于注解的 Spring IoC 替換原來基于 XML 的配置。

我們?nèi)匀皇褂糜嬎銠C(jī)組裝的例子來講解基于注解的IOC容器配置語法。

1.1.1?使用?@Component注解配置bean

只需要在類的定義語句上方加上一個 @Component 注解,就將該類定義為一個bean了,請看示例1.20,將Computer、MainFrame、SamSungDisplay、LgDisplay配置成bean:

示例1.20?

?

@Component public class Computer { private MainFrame mainFrame;// 主機(jī)private Display display;// 顯示器接口// 輸出計算機(jī)配置信息public void printComputerInfo() {System.out.println("計算機(jī)配置如下:");mainFrame.printMainFrameInfo();// 輸出主機(jī)信息display.printDisplayInfo();// 輸出顯示器信息} }@Component public class MainFrame {private String modelType;// 型號// 輸出主機(jī)信息public void printMainFrameInfo() {System.out.println("主機(jī)型號:" + modelType);} } @Component public class SamSungDisplay implements Display {public void printDisplayInfo() {System.out.println("顯示器:三星顯示器");} } @Component public class LgDisplay implements Display {public void printDisplayInfo() {System.out.println("顯示器:LG顯示器 ");} }

?

如上代碼所示,我們通過@Component注解分別將Computer、MainFrame、SamSungDisplay、LgDisplay配置成了bean(注意,在后面的示例中,我們會默認(rèn)已經(jīng)配置了上述4個bean)。bean名稱默認(rèn)為將第一個字母轉(zhuǎn)換為小寫的類名。如Computer類的bean默認(rèn)名稱是computer。上述代碼的等價xml配置是:

<bean id="samSungDisplay" class="s3spring.ch01.computer.annotation.SamSungDisplay" /> <bean id="lgDisplay" class="s3spring.ch01.computer.annotation.LgDisplay" /> <bean id="mainFrame" class="s3spring.ch01.annotation.computer.MainFrame"/> <bean id="computer" class="s3spring.ch01.annotation.computer.Computer"/>

@Component注解唯一的一個可選參數(shù)是value,用于指定bean的名稱(即id值,所以必須是唯一的),如示例1.21所示,聲明Computer類為一個bean,id為computer:

示例1.21

?

@Component(value=”computer”)

public class Computer { …… }

可以省略參數(shù)名稱,簡寫為:

@Component(”computer”)

public class Computer { …… }

?

Spring還提供了更加細(xì)化的用于定義bean的注解形式:@Repository、@Service、@Controller,它們分別對應(yīng)數(shù)據(jù)訪問層bean,業(yè)務(wù)層bean,和視圖層bean。目前版本中,這些注解與@Component的語義是一樣的,完全通用,在Spring以后的版本中可能會給它們追加更多的語義。所以,我們推薦使用@Repository、@Service、@Controller來替代@Component。

1.1.1?掃描?@Component標(biāo)注的類

在使用?@Component?注解后,Spring 容器必須啟用類掃描機(jī)制,以找到所有使用@Component標(biāo)注的類,將它們作為bean來管理。從Spring 2.5開始, 對 context 命名空間進(jìn)行了擴(kuò)展,提供了這一功能,請看下面的配置,引入context命名空間,并掃描bean:

示例1.22?

?

<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="s3spring.ch1.annotation.computer"/></beans>

?

?

Spring 容器在初始化時會掃描 <context:component-scan/> 標(biāo)簽的 base-package 屬性指定的類包及其遞歸子包中所有的類,找出 @Component標(biāo)注的類,將它們配置成bean。然后,我們就可以通過Spring 容器的工廠方法獲取并使用bean了。請看示例1.23,通過Spring容器獲取Computer bean:

示例1.23?

?

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Computer c = ac.getBean(Computer.class);

?

執(zhí)行示例1.23,如果沒有拋出任何異常,即表示能夠正常獲得bean。

1.1.1?使用?@Scope注解配置bean 的作用域

@Scope用于定義bean的作用域,singleton表示在每個Spring IoC容器中一個bean定義對應(yīng)一個對象實例,即Spring使用單例模式獲取實例。prototype表示一個bean定義對應(yīng)多個對象實例,即非單例模式,我們常稱作多例。默認(rèn)情況下,Spring bean 的作用域為 singleton。示例1.24 將Computer類配置成一個“多例”的bean:

示例1.24

@Component

@Scope(value="prototype")

public class Computer { …… }

可以省略參數(shù)名稱,簡寫為:

@Component

@Scope("prototype")

public class Computer { …… }

1.1.2?使用?@Autowired注解

從Spring 2.5版本起, Spring引入了?@Autowired?注解,它可以對類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,以完成自動裝配依賴的工作。

來看一下示例1.25,使用?@Autowired?為成員變量自動注入依賴:

示例1.25?

?

@Component @Scope("prototype") public class Computer {@Autowiredprivate MainFrame mainFrame;// 主機(jī) @Autowiredprivate Display display;// 顯示器接口// 輸出計算機(jī)配置信息public void printComputerInfo() {System.out.println("計算機(jī)配置如下:");mainFrame.printMainFrameInfo();// 輸出主機(jī)信息display.printDisplayInfo();// 輸出顯示器信息} }

?

?

?

將?@Autowired?標(biāo)注于實例屬性mainFrame和display上面,Spring將直接采用?Java 反射機(jī)制獲取?mainFrame?和?display?屬性的類型,再根據(jù)類型查找“唯一”匹配的bean來進(jìn)行依賴自動注入.(如果bean的類型與屬性的類型相同,或者bean的類型是屬性類型的子類型或接口實現(xiàn),則類型匹配)。一般推薦將?@Autowired放在setter方法之上。

由于和mainFrame屬性類型匹配的bean只有MainFrame 一個,所以自動裝配依賴可以順利進(jìn)行。但是和display?屬性的類型匹配的bean有兩個(SamSungDisplay和LgDisplay都實現(xiàn)了Display接口,而display屬性類型正是?Display),此時Spring 應(yīng)用容器不知道該用哪一個bean為Computer的display屬性注入依賴值,從而導(dǎo)致創(chuàng)建Computer bean失敗,拋出BeanCreationException。異常信息如下:

Error creating bean with name 'computer': Injection of autowired dependencies failed;

……

org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [s3spring.ch1.annotation.computer.Display] is defined: expected single matching bean but found 2: [lgDisplay, samSungDisplay]

那么如何解決根據(jù)類型返回多個bean導(dǎo)致的創(chuàng)建bean失敗的問題呢?答案是指定需要注入的bean 的名稱。要為Computer bean的display屬性注入三星顯示器,就需要告訴Spring我們需要的是符合Display類型,且id為“samSungDisplay”的bean。

指定依賴bean名稱的方法有兩種:

l?把屬性名稱做為依賴bean名稱

l?使用?@Qualifier 注解明確指定依賴bean的名稱,我們將在1.4.5小節(jié)講解

將display屬性改名為“samSungDisplay”,當(dāng)Spring 應(yīng)用容器根據(jù)屬性類型返回多個bean時,會繼續(xù)以反射的方式獲得屬性的名稱?“samSungDisplay”,從而找到同名的bean。請看示例1.26:

示例1.26

?

@Component @Scope("prototype") public class Computer {@Autowiredprivate MainFrame mainFrame;// 主機(jī) @Autowiredprivate Display samSungDisplay;// 顯示器接口// 輸出計算機(jī)配置信息public void printComputerInfo() {System.out.println("計算機(jī)配置如下:");mainFrame.printMainFrameInfo();// 輸出主機(jī)信息samSungDisplay.printDisplayInfo();// 輸出顯示器信息} }

?

我們也可以使用setter方法,構(gòu)造方法和其它的方法,根據(jù)參數(shù)類型和名稱來注入依賴bean,請看示例1.27:

示例1.27

@Component @Scope("prototype") public class Computer {private MainFrame mainFrame;// 主機(jī)private Display display;// 顯示器接口 @Autowired //構(gòu)造函數(shù)的變量名與容器中的對象名保持一致,否則需要@Qualifier指定注入 Bean 的名稱public Computer(MainFrame mainFrame, Display samSungDisplay) {super();this.mainFrame = mainFrame;this.display = samSungDisplay;}…… }

?

1.1.1?使用?@Qualifier注解為自動注入指定依賴bean的名稱

?

Spring 允許我們通過?@Qualifier?注解指定注入 Bean 的名稱。

示例1.28

?

@Component @Scope("prototype") public class Computer {@Autowiredprivate MainFrame mainFrame;// 主機(jī) @Autowired @Qualifier("samSungDisplay")private Display display;// 顯示器接口…… }

?

使用@Qualifier注解為方法指定要注入的依賴bean的名稱。

示例1.29?

?

@Component @Scope("prototype") public class Computer {private MainFrame mainFrame;// 主機(jī)private Display display;// 顯示器接口 @Autowired public Computer( MainFrame mainFrame, @Qualifier("samSungDisplay") Display display ) {super();this.mainFrame = mainFrame;this.display = display;}…… }

?

總結(jié),使用 @Autowired ?注解自動裝配依賴的過程如下:

1)?首先根據(jù)屬性的類型(或方法、構(gòu)造方法參數(shù)的類型)在Spring 應(yīng)用容器中查找類型匹配的bean

2)?如果沒有類型匹配的bean,拋出BeanCreationException;如果只有一個,則注入依賴,完成自動裝配;如果不只一個,則繼續(xù)執(zhí)行步驟3;

3)?如果通過?@Qualifier指定了bean 名稱,則從所有符合類型的bean中返回指定的bean,完成自動裝配;如果沒有通過?@Qualifier制定bean 名稱,則通過反射技術(shù)獲取當(dāng)前屬性的名稱作為bean 名稱返回指定的bean,完成自動裝配;

1.1.1?使用?@Resource 注解注入依賴

Spring 不但支持自己定義的@Component、@Scope、?@Autowired、?@Qualifier注解,還支持幾個由?JSR-250 規(guī)范定義的注解,它們分別是?@Resource、@PostConstruct?以及?@PreDestroy。

@Resource?的作用相當(dāng)于?@Autowired,只不過?@Autowired?默認(rèn)按 byType 自動注入,面?@Resource?默認(rèn)按 byName 自動注入罷了。@Resource?有兩個屬性是比較重要的,分別是 name 和 type,Spring 將@Resource?注解的 name 屬性解析為 Bean 的名字,而 type 屬性則解析為 Bean 的類型。所以如果使用 name 屬性,則使用 byName 的自動注入策略,而使用 type 屬性時則使用 byType 自動注入策略。如果既不指定 name 也不指定 type 屬性,這時將通過反射機(jī)制使用 byName 自動注入策略。

@Resource執(zhí)行結(jié)果,即使name不一致也可以注入,就是按照類型了。

請看示例1.30:

示例1.30

?

@Component @Scope("prototype") public class Computer { @Resourceprivate MainFrame mainFrame;//采用屬性名稱作為依賴bean的名稱@Resource(name=”samSungDisplay”)private Display display;// 采用@Resource注解name參數(shù)值作為依賴bean的名稱…… }

1.1.1?@PostConstruct 和?@PreDestroy

?

Spring 容器中的?Bean 是有生命周期的,Spring 允許在?Bean 在初始化完成后以及?Bean 銷毀前執(zhí)行特定的操作。JSR-250 為初始化之后/銷毀之前指定執(zhí)行方法定義了兩個注解類,分別是 @PostConstruct 和 @PreDestroy,這兩個注解只能應(yīng)用于方法上。標(biāo)注了 @PostConstruct 注解的方法將在類實例化后調(diào)用,而標(biāo)注了 @PreDestroy 的方法將在類銷毀之前調(diào)用。請看示例1.31:

示例1.31

?

@Component @Scope("prototype") public class Computer {…… @PostConstruct public void postConstruct1(){System.out.println("執(zhí)行postConstruct1");}@PreDestroy public void preDestroy1(){System.out.println("執(zhí)行preDestroy1"); }}

?

執(zhí)行示例1.31,在bean被初始化時,會輸出“執(zhí)行postConstruct1”。在bean被銷毀時,會輸出“執(zhí)行preDestroy1”。我們通常可以在標(biāo)注了 @PostConstruct的方法中完成一些資源初始化的工作,在?標(biāo)注了 @PreDestroy 的方法中完成一些釋放資源的操作。注意的是@PreDestroy要在容器關(guān)閉之前,所以要使用以下代碼初始化容器:

?

ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext”); //釋放容器資源,會調(diào)用@PreDestroy注解的方法 context.close();[新添加] 或者 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext”); context.destory();

?

?

?

執(zhí)行示例1.31,在bean被初始化時,會輸出“執(zhí)行postConstruct1”。在bean被銷毀時,會輸出“執(zhí)行preDestroy1”。我們通常可以在標(biāo)注了 @PostConstruct的方法中完成一些資源初始化的工作,在?標(biāo)注了 @PreDestroy 的方法中完成一些釋放資源的操作。注意的是@PreDestroy要在容器關(guān)閉之前,所以要使用以下代碼初始化容器:

?

ConfigurableApplicationContext context =

new ClassPathXmlApplicationContext(“applicationContext”);

//釋放容器資源,會調(diào)用@PreDestroy注解的方法

context.close();

或者

ClassPathXmlApplicationContext context =

new ClassPathXmlApplicationContext(“applicationContext”);

context.destory();

注意:如果Bean類配置了@Scope("prototype")則不會調(diào)用@PreDestory注解的方法.


本章總結(jié)

?

?Spring框架

?Spring 是用于簡化企業(yè)應(yīng)用程序開發(fā)過程的開源框架

?Spring 的核心是一個控制反轉(zhuǎn)容器

?Spring 提供了AOP實現(xiàn)

?Spring 提供了常用WEB框架整合的支持

?Spring 提供了對ORM技術(shù)整合的支持

?Spring Bean 封裝機(jī)制

?Spring以Bean的方式管理所有的組件

?Spring包括兩種不同的容器:BeanFactory 和 ApplicationContext

?依賴注入

?設(shè)置注入

?構(gòu)造器注入

?自動注入

?集合注入

?基于注解配置應(yīng)用容器

?@Component

?@scope

?@Autowired

?@Qualifier

? @Resource

?@PostConstruct?和?@PreDestroy。


任務(wù)實訓(xùn)部分

?

1: 使用Spring獲取Bean對象

訓(xùn)練技能點

?Spring Bean的管理

?Bean的配置

?Spring容器的創(chuàng)建

需求說明

我們在配置電腦的時候,不同型號對應(yīng)不同的硬盤,先要求編寫Spring程序,能夠根據(jù)不同的硬盤型號,得到不同的硬盤實例。

實現(xiàn)思路

(1)?定義硬盤接口。

(2)?定義不同型號的硬盤實現(xiàn)類。

(3)?在Spring配置文件中配置硬盤實現(xiàn)類。

(4)?創(chuàng)建ClassPathXmlApplicationContext并獲取硬盤對象。

關(guān)鍵代碼

(1)?定義硬盤接口。

public interface HardDisk {

public void printHardDiskInfo();//輸出硬盤信息

}

(2)?定義兩個硬盤實現(xiàn)類。

//希捷硬盤

public class SeaGateHardDisk implements HardDisk {

public void printHardDiskInfo() {

System.out.println("希捷160G硬盤");

}

}

//三星硬盤

public class SamSungHardDisk implements HardDisk {

public void printHardDiskInfo() {

System.out.println("三星250G硬盤");

}

}

(3)?使用<bean>標(biāo)簽對三星硬盤、希捷硬盤進(jìn)行配置,三星硬盤的標(biāo)識為samSungHardDisk,希捷硬盤的標(biāo)識為seaGateHardDisk,配置文件中的的關(guān)鍵代碼如下所示。

//三星硬盤的配置

<bean id="samSungHardDisk" class="bean.SamSungHardDisk"/>

//希捷硬盤的配置

<bean id="seaGateHardDisk" class="bean.SeaGateHardDisk"/>

(4)?編寫測試類測試。

ApplicationContext context =

???????new ClassPathXmlApplicationContext("applicationContext.xml");

// 獲取三星硬盤

HardDisk hardDisk = (HardDisk) context.getBean("samSungHardDisk");

hardDisk.printHardDiskInfo();

// 獲取希捷硬盤

hardDisk = (HardDisk) context.getBean("seaGateHardDisk");

hardDisk.printHardDiskInfo();

2:?設(shè)值注入實現(xiàn)打印機(jī)組裝

訓(xùn)練技能點

?Spring設(shè)值注入

需求說明

打印機(jī)由墨盒和紙張組成,墨盒分彩色墨盒和黑白墨盒,紙張有A3紙和A4紙。我們在打印的時候,經(jīng)常切換墨盒和紙張,現(xiàn)要求編寫一個Spring程序組裝一臺打印機(jī)并輸出組成該打印機(jī)的紙張和墨盒信息。

實現(xiàn)思路

(1)?定義墨盒接口(Ink)和紙張接口(Paper),Ink接口中聲明方法 printInkInfo()輸出墨盒信息,Paper接口中聲明方法printPaperInfo()輸出紙張信息。

(2)?定義打印機(jī)類(Printer)。打印機(jī)類中包含方法printerInfo(),輸出打印機(jī)的配置。

(3)?定義墨盒實現(xiàn)類(ColorInk和GrayInk)和紙張實現(xiàn)類(A3Paper和A4Paper)。

(4)?Spring配置文件,先配置彩色墨盒和黑白墨盒,然后配置A3紙和A4紙,最后配置打印機(jī),使用設(shè)值方式在打印機(jī)中注入墨盒和紙張。

(5)?編寫測試類輸出打印機(jī)信息。

?

3:?使用構(gòu)造注入重新組裝打印機(jī)

訓(xùn)練技能點

?Spring構(gòu)造注入

需求說明

任務(wù)實訓(xùn)1的基礎(chǔ)上,使用構(gòu)造注入重新組裝打印機(jī)。

實現(xiàn)思路

(1)?在Printer類中增加帶參構(gòu)造方法。

(2)?修改配置文件,改為構(gòu)造注入。

4:?使用ByName自動注入重新組裝打印機(jī)

訓(xùn)練技能點

?Spring自動注入

需求說明

升級實訓(xùn)任務(wù)3,打印機(jī)包括硬盤、顯示器、電源,要求使用Spring程序組裝打印機(jī),并輸出打印機(jī)的配置信息。

實現(xiàn)思路

(1)?添加電源類Power,該類有一個方法printPowerInfo(),用于輸出電源信息。

(2)?修改配置文件為ByName自動注入。

(3)?編寫測試類進(jìn)行測試。

關(guān)鍵代碼

(1)?編寫電源類:

public class Power {

private String type;// 電源型號

public void printPowerInfo() {

System.out.println("電源:" + type);

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

}

(2)?在打印機(jī)類中增加屬性:

private Power power;// 電源

public Power getPower() {

return power;

}

public void setPower(Power power) {

this.power = power;

}

(3)?修改Spring配置文件,添加以下配置:

<bean id="power" class="bean.Power">

??<property name="type">

<value>長城</value>

??</property>

</bean>

<bean id="printer" class="bean.Printer" autowire="byName">

5:?使用Spring管理部門對象

訓(xùn)練技能點

?list元素的使用

需求說明

某公司銷售部有三名員工,請編寫Spring程序輸出銷售部的部門名稱、該部門所有員工的員工姓名和員工地址。要求使用集合元素實現(xiàn)該需求。

實現(xiàn)思路

(1)?創(chuàng)建EmpVo類和DeptVo類。

(2)?DeptVo類中定義List集合屬性emps。

(3)?配置Spring文件。

(4)?編寫測試類,輸出給部門詳細(xì)信息。

關(guān)鍵代碼

(1)?員工信息包括員工姓名和員工地址,我們可以在員工類中增加員工姓名屬性和員工地址屬性。

public class EmpVo {

private String name;//員工名稱

private String adress;//員工地址

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAdress() {

return adress;

}

public void setAdress(String adress) {

this.adress = adress;

}

}

部門中可以包含多個員工,我們可以在部門類中增加兩個屬性,分別是部門名稱和部門員工集合,關(guān)鍵代碼如下所示。

private String deptName;// 部門名稱

private List emps;// 部門員工集合

(2)?編寫Spring配置文件,對部門的配置如下所示。

<bean id="dept" class="bean.DeptVo">

<property name="deptName">

<value>銷售部</value>

</property>

<property name="emps">

<list>

<ref bean="emp0" />

<ref bean="emp1" />

</list>

????????</property>

</bean>


鞏固練習(xí)

?

一.選擇題

1. 有關(guān)Spring,以下說法錯誤的是()。

???A. Spring是一個輕量級框架。

???B. Spring提供依賴注入容器、AOP實現(xiàn)、DAO/ORM支持、Web集成等功能。

???C. Spring的目標(biāo)是使現(xiàn)有的技術(shù)變的更加好用。

???D. Spring不支持自動注入。

2. 以下關(guān)于依賴注入的選項中,說法正確的是()。

???A. 依賴注入的目標(biāo)是在代碼之外管理程序組件間的依賴關(guān)系

???B. 依賴注入就是“面向切面編程”

???C. 依賴注入是面向?qū)ο蠹夹g(shù)的替代品

???D. 依賴注入會增大程序的規(guī)模

3. 關(guān)于IOC的理解,以下說法正確的是()。

???A. 控制反轉(zhuǎn)

???B. 對象被動接受依賴類

???C. 對象主動尋找依賴類

???D. 必須使用接口

4. 下列選項中,屬于Spring依賴注入方式的是()。

???A. set方法注入

???B. 構(gòu)造方法注入

???C. get方法注入

???D. 接口注入

5. 以下關(guān)于在Spring中配置Bean的id屬性的說法中,正確的是()。

???A. id屬性值可以重復(fù)

???B. id屬性值不可以重復(fù)

???C. id屬性是必需的,沒有id屬性時會報鍺

D. id屬性不是必需的

6. 下列哪一個注解用于聲明一個bean()。

???A. @Resource

???B. @Component

???C. @Scope

D. @Qualifier

7. 下列關(guān)于使用注解來進(jìn)行依賴注入的描述正確的是()。

???A. ?@Autowired?默認(rèn)按 byType 自動注入依賴

B. @Autowired?默認(rèn)按 byName 自動注入依賴

???C. @Resource?默認(rèn)按?byType 自動注入依賴

D. @Resource?默認(rèn)按?byName 自動注入依賴

?

二.操作題

1.某程序系統(tǒng)中有如下幾個類。

public class Equip {//裝備

private String name;//裝備名稱

private String type;//裝備類型,頭盔、鎧甲等

private Long speedPlus;//速度增效

private Long attackPlus;//攻擊增效

private Long defencePlus;//防御增效

//Getters & Setters

. . .

}

public class Player {// 玩家

private Equip armet;// 頭盔

private Equip loricae;// 鎧甲

private Equip boot;// 靴子

private Equip ring;// 指環(huán)

// Getters & Setters

public void updateEquip(Equip equip) {

if ("頭盔".equals(equip.getType())) {

System.out.println(armet.getName() + "升級為" + equip.getName());

this.armet = equip;

}

???. . .

}

}

根據(jù)以上信息,使用Spring DI配置一個擁有如下裝備的玩家,如表1-3-1所示。

表1-3-1 裝備信息

裝備

戰(zhàn)神頭盔

連環(huán)鎖子甲

波斯追風(fēng)靴

藍(lán)魔指環(huán)

速度增效

2

6

8

8

攻擊增效

4

4

2

12

防御增效

6

15

3

2

?

2.編寫一個程序,實現(xiàn)對員工信息的CURD,要求DAO類中編寫5個方法:

get(int id)、save(EmpVo emp)、delete(int id)、update(EmpVo emp)、findAll()方法,編寫B(tài)IZ類,BIZ類中一個方法:doUpdate(EmpVo emp),方法功能為指定編號的員工如果存在,把薪水在原有基礎(chǔ)上增加500;如果不存在,則提示該員工不存在,更改失敗。使用Spring管理DAO和BIZ,并從Spring容器中獲取BIZ實例進(jìn)行測試。

提示:創(chuàng)建EmpBiz接口和實現(xiàn)類,在實現(xiàn)類中增加DAO屬性。

public class EmpBizImpl implements EmpBiz {

private EmpDAO empDAO;

public void doUpdate(EmpVo emp)

{

//調(diào)用DAO類方法操作

}

//setter & getter

}

3.?自從世界上出現(xiàn)飛機(jī)以來,飛機(jī)的結(jié)構(gòu)形式雖然在不斷改進(jìn),飛機(jī)類型不斷增多,但到目前為止,除了極少數(shù)特殊形式的飛機(jī)之外,大多數(shù)飛機(jī)都是由下面六個主要部分組成,即:兩支機(jī)翼、一個機(jī)身、兩支尾翼、一個起落裝置、一個操縱系統(tǒng)和四個動力裝置。請使用Spring的依賴注入組裝一架飛機(jī)。

提示:

編寫六個接口,分別對應(yīng)機(jī)翼、機(jī)身、尾翼、起落裝置、操縱系統(tǒng)、動力裝置。在飛機(jī)類中增加兩個機(jī)翼屬性,分別表示左機(jī)翼和右機(jī)翼,尾翼和動力裝置采用相同的處理。

?

4.移動公司某營業(yè)點需要一個會員賬戶管理系統(tǒng),該系統(tǒng)需要實現(xiàn)以下功能

(1)顯示所有會員賬戶信息。

(2)為指定的會員賬戶充值。

(3)刪除指定的賬戶。

(4)禁用或者啟用指定的賬戶。

(5)根據(jù)狀態(tài)查詢會員賬戶。

系統(tǒng)首頁參考界面如圖1.3.1所示:

轉(zhuǎn)存失敗重新上傳取消

圖1.3.1 賬戶管理系統(tǒng)首頁

當(dāng)點擊“充值”時,如果該會員狀態(tài)為禁用狀態(tài),則給出“禁用狀態(tài)的會員不能充值”提示,點擊“啟用”可以將會員狀態(tài)更改為“啟用狀態(tài)”。參考界面如圖1.3.2。

轉(zhuǎn)存失敗重新上傳取消

圖1.3.2 充值失敗提示

會員充值界面如圖1.3.3所示。

轉(zhuǎn)存失敗重新上傳取消

圖1.3.3會員充值界面

當(dāng)會員充值成功之后,系統(tǒng)跳轉(zhuǎn)至首頁,顯示當(dāng)前最新會員信息。

點擊“刪除”將刪除會員信息,刪除成功之后,系統(tǒng)首頁將顯示最新的會員信息。

請根據(jù)以上需求完成以下內(nèi)容:

該系統(tǒng)的數(shù)據(jù)庫設(shè)計,DAO層的編寫,業(yè)務(wù)邏輯層的實現(xiàn),并使用Spring管理業(yè)務(wù)邏輯層對象。

提示:

在業(yè)務(wù)邏輯層增加DAO類屬性,使用Spring在Biz中注入DAO,編寫測試代碼,對Biz中方法進(jìn)行測試,不需要WEB層的開發(fā)。

總結(jié)

以上是生活随笔為你收集整理的Spring入门 IOC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

亚洲色无码一区二区三区 | 欧美国产日韩亚洲中文 | 中文字幕 人妻熟女 | 欧美乱妇无乱码大黄a片 | 亚洲区小说区激情区图片区 | 亚洲国产av美女网站 | 国产高清不卡无码视频 | 午夜福利试看120秒体验区 | 亚洲码国产精品高潮在线 | 国产激情无码一区二区 | 狂野欧美性猛交免费视频 | 国产舌乚八伦偷品w中 | 日韩 欧美 动漫 国产 制服 | 精品久久久无码人妻字幂 | 99精品视频在线观看免费 | 国产精品爱久久久久久久 | 永久黄网站色视频免费直播 | 国产真人无遮挡作爱免费视频 | 一本久道高清无码视频 | 亚洲精品鲁一鲁一区二区三区 | 性啪啪chinese东北女人 | 大色综合色综合网站 | 久久精品99久久香蕉国产色戒 | 3d动漫精品啪啪一区二区中 | 国产精品久免费的黄网站 | 国产内射老熟女aaaa | 人人澡人人妻人人爽人人蜜桃 | 午夜精品久久久内射近拍高清 | 麻豆人妻少妇精品无码专区 | 伊人久久大香线蕉午夜 | 在线 国产 欧美 亚洲 天堂 | 激情国产av做激情国产爱 | 青春草在线视频免费观看 | 中文字幕+乱码+中文字幕一区 | 无码任你躁久久久久久久 | 宝宝好涨水快流出来免费视频 | 久热国产vs视频在线观看 | 欧美xxxx黑人又粗又长 | 日韩亚洲欧美中文高清在线 | 玩弄人妻少妇500系列视频 | 久久伊人色av天堂九九小黄鸭 | 无码播放一区二区三区 | 成 人 网 站国产免费观看 | 乌克兰少妇xxxx做受 | 午夜嘿嘿嘿影院 | 久久久久国色av免费观看性色 | 久久久久亚洲精品男人的天堂 | 人人妻人人澡人人爽欧美一区九九 | 成人三级无码视频在线观看 | 欧美性生交xxxxx久久久 | 色综合久久久久综合一本到桃花网 | 日日摸夜夜摸狠狠摸婷婷 | 人人爽人人澡人人人妻 | 国产av剧情md精品麻豆 | 18精品久久久无码午夜福利 | 精品无码av一区二区三区 | 国产精品99久久精品爆乳 | 乱人伦人妻中文字幕无码 | 精品久久综合1区2区3区激情 | 国产精品无码一区二区三区不卡 | 丰满岳乱妇在线观看中字无码 | 亚洲色偷偷偷综合网 | 无码国模国产在线观看 | 国产在线无码精品电影网 | 377p欧洲日本亚洲大胆 | 亚洲欧美日韩国产精品一区二区 | 亚洲国产成人av在线观看 | 九九久久精品国产免费看小说 | 动漫av一区二区在线观看 | 亚洲另类伦春色综合小说 | 野狼第一精品社区 | 性史性农村dvd毛片 | 人人妻人人澡人人爽欧美精品 | 一本久道高清无码视频 | 国产乱人伦av在线无码 | 国产黄在线观看免费观看不卡 | 亚洲一区二区三区在线观看网站 | 国产国语老龄妇女a片 | 国产高潮视频在线观看 | 亚洲精品中文字幕 | 人妻人人添人妻人人爱 | av在线亚洲欧洲日产一区二区 | 99久久精品午夜一区二区 | 中文无码精品a∨在线观看不卡 | 未满小14洗澡无码视频网站 | 桃花色综合影院 | 欧美成人免费全部网站 | 亚洲色成人中文字幕网站 | 欧美xxxxx精品 | 成人免费视频在线观看 | 亚洲性无码av中文字幕 | 亚洲综合另类小说色区 | 久久亚洲国产成人精品性色 | 亚洲成熟女人毛毛耸耸多 | 激情内射日本一区二区三区 | 无码精品人妻一区二区三区av | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美真人作爱免费视频 | 国产超级va在线观看视频 | 波多野结衣乳巨码无在线观看 | 中文字幕人成乱码熟女app | 理论片87福利理论电影 | 亚洲一区av无码专区在线观看 | 日韩欧美成人免费观看 | 色综合久久88色综合天天 | 激情人妻另类人妻伦 | 性生交大片免费看女人按摩摩 | 无码纯肉视频在线观看 | 波多野结衣 黑人 | 樱花草在线社区www | 亚洲热妇无码av在线播放 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 午夜丰满少妇性开放视频 | 国产性生交xxxxx无码 | 亚洲综合另类小说色区 | 色五月五月丁香亚洲综合网 | 女人被男人躁得好爽免费视频 | 欧美 日韩 人妻 高清 中文 | 蜜桃臀无码内射一区二区三区 | 丰满人妻一区二区三区免费视频 | 国产av一区二区三区最新精品 | 久久97精品久久久久久久不卡 | ass日本丰满熟妇pics | 成人精品天堂一区二区三区 | 亚洲成在人网站无码天堂 | 日本护士xxxxhd少妇 | 欧美色就是色 | 亚洲综合久久一区二区 | 亚洲国产精品美女久久久久 | 女人和拘做爰正片视频 | 波多野结衣一区二区三区av免费 | 亚洲毛片av日韩av无码 | 国产精品久久久一区二区三区 | 精品成人av一区二区三区 | 国产精品va在线观看无码 | 红桃av一区二区三区在线无码av | 97人妻精品一区二区三区 | 在教室伦流澡到高潮hnp视频 | 欧美 丝袜 自拍 制服 另类 | 欧美国产日产一区二区 | yw尤物av无码国产在线观看 | 97久久国产亚洲精品超碰热 | 国模大胆一区二区三区 | 无人区乱码一区二区三区 | 色婷婷综合激情综在线播放 | 中文无码成人免费视频在线观看 | 国产熟女一区二区三区四区五区 | 国产特级毛片aaaaaaa高清 | 亲嘴扒胸摸屁股激烈网站 | 亚洲а∨天堂久久精品2021 | 精品夜夜澡人妻无码av蜜桃 | 老子影院午夜伦不卡 | 国产人妻精品午夜福利免费 | 好屌草这里只有精品 | 亲嘴扒胸摸屁股激烈网站 | 国产情侣作爱视频免费观看 | 欧美人与动性行为视频 | 日日天干夜夜狠狠爱 | 国产精品久久久久无码av色戒 | 国产sm调教视频在线观看 | 久久国产精品二国产精品 | 99久久人妻精品免费二区 | 秋霞特色aa大片 | 亚洲国产精品久久久天堂 | 网友自拍区视频精品 | 亚洲精品中文字幕久久久久 | 精品久久综合1区2区3区激情 | 四虎国产精品一区二区 | 国产精品国产三级国产专播 | 成人av无码一区二区三区 | 3d动漫精品啪啪一区二区中 | 暴力强奷在线播放无码 | 久在线观看福利视频 | 美女张开腿让人桶 | 亚洲精品一区二区三区四区五区 | 帮老师解开蕾丝奶罩吸乳网站 | 国产乱子伦视频在线播放 | 色婷婷av一区二区三区之红樱桃 | 东北女人啪啪对白 | 男女爱爱好爽视频免费看 | 青青青爽视频在线观看 | 九九在线中文字幕无码 | 色一情一乱一伦 | 日本一区二区更新不卡 | 日本丰满护士爆乳xxxx | 四虎国产精品免费久久 | 日本va欧美va欧美va精品 | 久久午夜无码鲁丝片秋霞 | 久久精品国产99精品亚洲 | 水蜜桃亚洲一二三四在线 | 日日碰狠狠躁久久躁蜜桃 | 欧洲极品少妇 | 中文字幕无码免费久久99 | 天堂久久天堂av色综合 | 麻豆成人精品国产免费 | 欧美精品免费观看二区 | 久久久精品国产sm最大网站 | 国精产品一区二区三区 | 国产熟妇高潮叫床视频播放 | 亚洲乱码中文字幕在线 | 国产午夜无码视频在线观看 | 国产明星裸体无码xxxx视频 | 天干天干啦夜天干天2017 | 在线а√天堂中文官网 | av人摸人人人澡人人超碰下载 | 国产精品怡红院永久免费 | 99精品久久毛片a片 | 一二三四社区在线中文视频 | 国产亚洲日韩欧美另类第八页 | 欧洲熟妇精品视频 | 国产区女主播在线观看 | 亚洲精品一区二区三区在线观看 | 黄网在线观看免费网站 | 少妇性荡欲午夜性开放视频剧场 | 国产精品办公室沙发 | 国内老熟妇对白xxxxhd | 丰腴饱满的极品熟妇 | 国产精品久久国产三级国 | 亚洲 另类 在线 欧美 制服 | 日韩欧美群交p片內射中文 | 国产黄在线观看免费观看不卡 | 亚洲国产午夜精品理论片 | 午夜免费福利小电影 | 4hu四虎永久在线观看 | 久在线观看福利视频 | 国产精品久久久 | 玩弄少妇高潮ⅹxxxyw | 久久久久免费看成人影片 | 红桃av一区二区三区在线无码av | 婷婷五月综合激情中文字幕 | 麻豆精品国产精华精华液好用吗 | 狠狠色色综合网站 | 麻豆国产人妻欲求不满 | 国产农村妇女高潮大叫 | 丰满诱人的人妻3 | 国产精品无套呻吟在线 | 在线精品国产一区二区三区 | 国产熟妇高潮叫床视频播放 | 四虎影视成人永久免费观看视频 | 亚洲男人av天堂午夜在 | 亚洲综合精品香蕉久久网 | 无码国内精品人妻少妇 | 在线观看国产一区二区三区 | 亚洲男人av香蕉爽爽爽爽 | 白嫩日本少妇做爰 | 国产亚洲欧美日韩亚洲中文色 | 亚洲自偷精品视频自拍 | 亚洲国产精品无码久久久久高潮 | 国产九九九九九九九a片 | 久久99久久99精品中文字幕 | 日本熟妇乱子伦xxxx | 在线а√天堂中文官网 | 在线欧美精品一区二区三区 | 大肉大捧一进一出视频出来呀 | 久久久精品成人免费观看 | 成人无码影片精品久久久 | 最近中文2019字幕第二页 | 午夜免费福利小电影 | 又粗又大又硬毛片免费看 | 亚洲性无码av中文字幕 | 3d动漫精品啪啪一区二区中 | 无码国模国产在线观看 | 亚洲成av人影院在线观看 | 双乳奶水饱满少妇呻吟 | 日本精品人妻无码免费大全 | av人摸人人人澡人人超碰下载 | 亚洲爆乳精品无码一区二区三区 | 国产无av码在线观看 | 久久久婷婷五月亚洲97号色 | 娇妻被黑人粗大高潮白浆 | 国产精品无套呻吟在线 | 国产精品亚洲五月天高清 | 在线欧美精品一区二区三区 | 欧洲熟妇色 欧美 | 乌克兰少妇xxxx做受 | 99精品国产综合久久久久五月天 | 97人妻精品一区二区三区 | 中文字幕无码人妻少妇免费 | 伊在人天堂亚洲香蕉精品区 | 国产婷婷色一区二区三区在线 | 亚洲精品国产精品乱码视色 | 青青青手机频在线观看 | 人人爽人人爽人人片av亚洲 | 日韩av无码中文无码电影 | 欧美 日韩 亚洲 在线 | 久久99久久99精品中文字幕 | 中文亚洲成a人片在线观看 | 久久久久久a亚洲欧洲av冫 | 国产精品无套呻吟在线 | 夜精品a片一区二区三区无码白浆 | 高潮毛片无遮挡高清免费 | 国产精品久久久久久久影院 | 午夜男女很黄的视频 | 久久无码中文字幕免费影院蜜桃 | 国产精品永久免费视频 | 精品aⅴ一区二区三区 | 呦交小u女精品视频 | 欧美日韩一区二区综合 | 亚洲国产高清在线观看视频 | 久久亚洲中文字幕无码 | 久久国内精品自在自线 | 国产一区二区三区精品视频 | 亚洲熟妇色xxxxx欧美老妇y | 午夜精品一区二区三区的区别 | 日本乱人伦片中文三区 | 奇米影视888欧美在线观看 | 天天综合网天天综合色 | 国产精品a成v人在线播放 | 夫妻免费无码v看片 | 亚洲色欲久久久综合网东京热 | 国产人妻精品一区二区三区 | 伊人久久大香线蕉午夜 | 无码av免费一区二区三区试看 | 少妇愉情理伦片bd | 日韩亚洲欧美精品综合 | 日韩精品成人一区二区三区 | 中文字幕av无码一区二区三区电影 | 亚洲精品久久久久avwww潮水 | 中文字幕精品av一区二区五区 | 国产免费无码一区二区视频 | 亚洲中文字幕在线无码一区二区 | 国内揄拍国内精品人妻 | 99国产精品白浆在线观看免费 | 亚洲综合在线一区二区三区 | 99久久精品国产一区二区蜜芽 | 欧美老妇交乱视频在线观看 | 亚洲性无码av中文字幕 | 成在人线av无码免费 | 蜜桃视频韩日免费播放 | 久久久国产精品无码免费专区 | 波多野结衣av在线观看 | 伊人久久大香线蕉av一区二区 | 国产精品无码mv在线观看 | 极品嫩模高潮叫床 | 高清不卡一区二区三区 | 人妻有码中文字幕在线 | 成熟女人特级毛片www免费 | 亚洲国产精品无码一区二区三区 | 国产9 9在线 | 中文 | 国产suv精品一区二区五 | 国产精品99久久精品爆乳 | 乌克兰少妇性做爰 | 欧美 日韩 人妻 高清 中文 | 77777熟女视频在线观看 а天堂中文在线官网 | 黑人巨大精品欧美黑寡妇 | 亚洲欧美日韩成人高清在线一区 | 一区二区传媒有限公司 | 麻豆蜜桃av蜜臀av色欲av | 中文字幕 人妻熟女 | 18黄暴禁片在线观看 | 99久久婷婷国产综合精品青草免费 | 婷婷五月综合缴情在线视频 | 动漫av一区二区在线观看 | 高中生自慰www网站 | 色婷婷综合激情综在线播放 | 日韩精品无码免费一区二区三区 | 无码一区二区三区在线 | 午夜无码区在线观看 | 人人妻人人澡人人爽人人精品 | 99re在线播放 | 三级4级全黄60分钟 | 欧美老妇与禽交 | 亚洲国产av精品一区二区蜜芽 | 大地资源网第二页免费观看 | 日本xxxx色视频在线观看免费 | 伊人久久大香线蕉av一区二区 | 久久精品国产一区二区三区肥胖 | 亚洲熟女一区二区三区 | 欧美丰满老熟妇xxxxx性 | 国产高清av在线播放 | 无套内谢老熟女 | 丰满诱人的人妻3 | 无码人妻av免费一区二区三区 | 青青草原综合久久大伊人精品 | 十八禁视频网站在线观看 | 亚洲国产日韩a在线播放 | 日日噜噜噜噜夜夜爽亚洲精品 | 乱中年女人伦av三区 | av香港经典三级级 在线 | 亚洲成a人片在线观看无码 | 欧美喷潮久久久xxxxx | 波多野结衣高清一区二区三区 | 国产精品资源一区二区 | 日韩欧美成人免费观看 | 久久久久久久人妻无码中文字幕爆 | 欧美日韩人成综合在线播放 | 国产精品国产三级国产专播 | 免费乱码人妻系列无码专区 | 四虎国产精品一区二区 | 久久久久久九九精品久 | 国产成人午夜福利在线播放 | 国产av无码专区亚洲a∨毛片 | 最新版天堂资源中文官网 | 久久精品人妻少妇一区二区三区 | 色综合久久中文娱乐网 | 欧美日韩人成综合在线播放 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚拍精品一区二区三区探花 | 久久久久久久人妻无码中文字幕爆 | 国产av一区二区精品久久凹凸 | 亚洲一区二区三区在线观看网站 | 国产人妻精品一区二区三区不卡 | 国产熟女一区二区三区四区五区 | 精品成在人线av无码免费看 | 中文字幕精品av一区二区五区 | 亚洲色偷偷男人的天堂 | 六十路熟妇乱子伦 | a在线观看免费网站大全 | 伊人久久大香线焦av综合影院 | 97色伦图片97综合影院 | 国内精品九九久久久精品 | 成人一在线视频日韩国产 | 牲欲强的熟妇农村老妇女 | 欧美35页视频在线观看 | 国产区女主播在线观看 | 乱人伦人妻中文字幕无码 | 国产精品美女久久久久av爽李琼 | 欧美三级不卡在线观看 | 国产精品第一区揄拍无码 | 99久久人妻精品免费一区 | 亚洲熟妇色xxxxx欧美老妇 | 欧美人与牲动交xxxx | 国产精品办公室沙发 | 亚洲精品国产品国语在线观看 | 午夜嘿嘿嘿影院 | 少女韩国电视剧在线观看完整 | 最新版天堂资源中文官网 | 午夜理论片yy44880影院 | 中文字幕人妻无码一夲道 | 免费看少妇作爱视频 | 亚洲精品一区二区三区在线观看 | 国产亚洲欧美日韩亚洲中文色 | 国内精品人妻无码久久久影院蜜桃 | 亚洲乱码中文字幕在线 | 国产亚洲欧美日韩亚洲中文色 | 天堂一区人妻无码 | 免费国产成人高清在线观看网站 | 亚洲狠狠婷婷综合久久 | 欧美人与牲动交xxxx | 少妇性l交大片欧洲热妇乱xxx | 成熟女人特级毛片www免费 | 97色伦图片97综合影院 | 亚洲日本va中文字幕 | 成熟人妻av无码专区 | 久久久久av无码免费网 | 99久久精品无码一区二区毛片 | 国产国语老龄妇女a片 | 水蜜桃亚洲一二三四在线 | 无码人妻精品一区二区三区不卡 | 亚洲成av人片天堂网无码】 | 强辱丰满人妻hd中文字幕 | 最近的中文字幕在线看视频 | 97久久国产亚洲精品超碰热 | 国产精品久久久一区二区三区 | 中文字幕日产无线码一区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 粉嫩少妇内射浓精videos | 无码纯肉视频在线观看 | 久久精品国产99精品亚洲 | 又紧又大又爽精品一区二区 | 人妻互换免费中文字幕 | 欧美精品无码一区二区三区 | 精品人人妻人人澡人人爽人人 | 精品日本一区二区三区在线观看 | 少妇性l交大片 | 日日摸夜夜摸狠狠摸婷婷 | 亚洲无人区一区二区三区 | 少妇的肉体aa片免费 | 无码吃奶揉捏奶头高潮视频 | 亚洲中文无码av永久不收费 | 色欲久久久天天天综合网精品 | 玩弄中年熟妇正在播放 | 成人无码视频在线观看网站 | 日本熟妇大屁股人妻 | 55夜色66夜色国产精品视频 | 中文字幕无码视频专区 | 99riav国产精品视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 小泽玛莉亚一区二区视频在线 | 中文字幕无码免费久久99 | 中文字幕色婷婷在线视频 | 天堂久久天堂av色综合 | 国产在线aaa片一区二区99 | 国产人妻精品一区二区三区不卡 | 色综合久久88色综合天天 | yw尤物av无码国产在线观看 | 98国产精品综合一区二区三区 | 成人无码精品1区2区3区免费看 | 国产成人无码午夜视频在线观看 | 蜜桃av抽搐高潮一区二区 | 免费无码一区二区三区蜜桃大 | 亚洲爆乳无码专区 | 国产无套粉嫩白浆在线 | 国产精品视频免费播放 | 亚洲国产av精品一区二区蜜芽 | 亚洲人成影院在线观看 | 亚洲精品久久久久中文第一幕 | 狂野欧美激情性xxxx | 亚洲 另类 在线 欧美 制服 | 欧美人妻一区二区三区 | 少妇太爽了在线观看 | 亚洲色无码一区二区三区 | 日本高清一区免费中文视频 | 久久精品国产一区二区三区肥胖 | 成人毛片一区二区 | 亚洲综合另类小说色区 | 国产又爽又猛又粗的视频a片 | 国产人成高清在线视频99最全资源 | 亚洲性无码av中文字幕 | 久久综合给合久久狠狠狠97色 | 色婷婷香蕉在线一区二区 | 国模大胆一区二区三区 | 国产va免费精品观看 | 亚洲伊人久久精品影院 | 国内精品一区二区三区不卡 | a片免费视频在线观看 | 人妻体内射精一区二区三四 | 少妇性l交大片欧洲热妇乱xxx | 乱人伦人妻中文字幕无码久久网 | 国产精品嫩草久久久久 | 久久综合九色综合欧美狠狠 | 国产真实夫妇视频 | 婷婷色婷婷开心五月四房播播 | 久久久亚洲欧洲日产国码αv | 日韩在线不卡免费视频一区 | 日韩人妻少妇一区二区三区 | 日本va欧美va欧美va精品 | √8天堂资源地址中文在线 | 奇米影视7777久久精品人人爽 | 国产人妻精品午夜福利免费 | 日韩欧美群交p片內射中文 | 日韩av无码一区二区三区 | 真人与拘做受免费视频 | 伊人久久大香线焦av综合影院 | 婷婷丁香六月激情综合啪 | 欧美一区二区三区视频在线观看 | 欧美人与善在线com | 欧洲精品码一区二区三区免费看 | 狂野欧美性猛交免费视频 | 麻豆果冻传媒2021精品传媒一区下载 | 黑人大群体交免费视频 | 国产精品va在线播放 | 国产又爽又黄又刺激的视频 | 久久久久成人精品免费播放动漫 | 激情国产av做激情国产爱 | 美女毛片一区二区三区四区 | 风流少妇按摩来高潮 | 亚洲а∨天堂久久精品2021 | 日本xxxx色视频在线观看免费 | 性色欲网站人妻丰满中文久久不卡 | 水蜜桃亚洲一二三四在线 | 日日碰狠狠躁久久躁蜜桃 | 激情内射亚州一区二区三区爱妻 | 中文字幕av日韩精品一区二区 | 久久综合给久久狠狠97色 | 98国产精品综合一区二区三区 | 国产成人午夜福利在线播放 | 国内少妇偷人精品视频免费 | 熟妇人妻激情偷爽文 | 国产成人久久精品流白浆 | 国产亚洲精品久久久闺蜜 | 国产精品igao视频网 | 青青青爽视频在线观看 | 国产精品美女久久久网av | 精品国产一区av天美传媒 | 亚洲欧美精品aaaaaa片 | 久久99久久99精品中文字幕 | 精品国产麻豆免费人成网站 | 日产精品高潮呻吟av久久 | 四虎国产精品免费久久 | 无码人妻少妇伦在线电影 | 无码人妻黑人中文字幕 | 熟妇人妻无码xxx视频 | 狂野欧美性猛xxxx乱大交 | 亚洲人成影院在线无码按摩店 | 欧美国产日产一区二区 | 人妻少妇精品无码专区动漫 | 日本va欧美va欧美va精品 | 精品乱码久久久久久久 | 亚洲成av人综合在线观看 | 欧美日韩一区二区三区自拍 | 欧美35页视频在线观看 | 久久久久久久久888 | 国产精品久久久午夜夜伦鲁鲁 | 日韩亚洲欧美中文高清在线 | 亚洲精品一区二区三区在线观看 | 国产无av码在线观看 | 亚洲爆乳无码专区 | 丰满妇女强制高潮18xxxx | 强辱丰满人妻hd中文字幕 | 天天做天天爱天天爽综合网 | 小泽玛莉亚一区二区视频在线 | 亚洲熟妇色xxxxx欧美老妇y | av香港经典三级级 在线 | 亚洲一区二区三区在线观看网站 | 日韩欧美中文字幕公布 | 亚洲精品国产品国语在线观看 | 国产偷自视频区视频 | 色综合久久久无码网中文 | 又大又硬又爽免费视频 | 国产va免费精品观看 | 久久亚洲日韩精品一区二区三区 | 妺妺窝人体色www婷婷 | 国产精品久久久久久亚洲影视内衣 | 欧美第一黄网免费网站 | 精品乱子伦一区二区三区 | 国产成人av免费观看 | 精品偷拍一区二区三区在线看 | 亚洲日韩一区二区三区 | 亚洲伊人久久精品影院 | 成人无码影片精品久久久 | 呦交小u女精品视频 | 未满成年国产在线观看 | 无遮挡啪啪摇乳动态图 | 日日摸天天摸爽爽狠狠97 | 久久国内精品自在自线 | 国产精品久久久久无码av色戒 | 国产一区二区不卡老阿姨 | 在线播放亚洲第一字幕 | 久久99国产综合精品 | 国产成人无码av在线影院 | 少妇性俱乐部纵欲狂欢电影 | 久久精品国产一区二区三区 | 永久黄网站色视频免费直播 | 国内少妇偷人精品视频免费 | 久久午夜夜伦鲁鲁片无码免费 | 精品一区二区三区波多野结衣 | 亚洲va欧美va天堂v国产综合 | 未满小14洗澡无码视频网站 | 欧美国产亚洲日韩在线二区 | 久久久久久久人妻无码中文字幕爆 | 国产熟妇高潮叫床视频播放 | 在线成人www免费观看视频 | 欧美三级不卡在线观看 | 三上悠亚人妻中文字幕在线 | 牛和人交xxxx欧美 | 九九综合va免费看 | 国产成人无码午夜视频在线观看 | 好爽又高潮了毛片免费下载 | 中文字幕无线码免费人妻 | 日本精品高清一区二区 | 国产色视频一区二区三区 | 婷婷五月综合激情中文字幕 | 国产精品无码mv在线观看 | 久久www免费人成人片 | 国产午夜福利亚洲第一 | 青草青草久热国产精品 | 久久久婷婷五月亚洲97号色 | 久久无码中文字幕免费影院蜜桃 | 西西人体www44rt大胆高清 | 久精品国产欧美亚洲色aⅴ大片 | 中文毛片无遮挡高清免费 | 一本加勒比波多野结衣 | 97夜夜澡人人爽人人喊中国片 | 亚洲第一网站男人都懂 | 成人影院yy111111在线观看 | 亚洲 另类 在线 欧美 制服 | 免费人成在线观看网站 | 亚洲国产午夜精品理论片 | 熟妇人妻激情偷爽文 | 亚洲欧美日韩成人高清在线一区 | 中文字幕av日韩精品一区二区 | 欧美 丝袜 自拍 制服 另类 | 国产九九九九九九九a片 | 欧洲美熟女乱又伦 | 亚洲精品无码国产 | 免费视频欧美无人区码 | 久久精品女人天堂av免费观看 | 99久久久无码国产精品免费 | 性色欲网站人妻丰满中文久久不卡 | 国产精品第一国产精品 | 99久久久无码国产精品免费 | 人妻夜夜爽天天爽三区 | 久久人人爽人人人人片 | 天堂亚洲免费视频 | 国产亚洲精品精品国产亚洲综合 | 亚洲日韩av一区二区三区中文 | 日韩成人一区二区三区在线观看 | 色欲av亚洲一区无码少妇 | 99riav国产精品视频 | 亚洲欧美日韩国产精品一区二区 | 国语自产偷拍精品视频偷 | 狂野欧美激情性xxxx | 欧美人妻一区二区三区 | 嫩b人妻精品一区二区三区 | 亚洲一区二区三区播放 | 精品国精品国产自在久国产87 | 人妻夜夜爽天天爽三区 | 狂野欧美激情性xxxx | 日韩精品无码一本二本三本色 | 久久精品人人做人人综合试看 | 亚洲精品国产精品乱码不卡 | 一本久久伊人热热精品中文字幕 | 国产亚洲欧美日韩亚洲中文色 | 国产后入清纯学生妹 | 精品国产精品久久一区免费式 | 国产亚洲精品精品国产亚洲综合 | 欧美变态另类xxxx | 高中生自慰www网站 | 亚洲一区二区三区四区 | 无码人妻精品一区二区三区下载 | 色综合久久久无码中文字幕 | 成 人影片 免费观看 | 亚洲精品综合一区二区三区在线 | 日本护士xxxxhd少妇 | 亚洲精品中文字幕久久久久 | 天天躁日日躁狠狠躁免费麻豆 | 中文无码成人免费视频在线观看 | 大乳丰满人妻中文字幕日本 | 久久99热只有频精品8 | 88国产精品欧美一区二区三区 | 激情内射日本一区二区三区 | 动漫av一区二区在线观看 | 男人扒开女人内裤强吻桶进去 | 成人女人看片免费视频放人 | 日韩精品成人一区二区三区 | 精品日本一区二区三区在线观看 | 99国产欧美久久久精品 | 久久午夜无码鲁丝片午夜精品 | 亚洲精品中文字幕久久久久 | 一个人免费观看的www视频 | 丰满人妻精品国产99aⅴ | 精品人妻中文字幕有码在线 | 性色av无码免费一区二区三区 | 久久综合狠狠综合久久综合88 | 98国产精品综合一区二区三区 | 三上悠亚人妻中文字幕在线 | 欧美日韩色另类综合 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产成人亚洲综合无码 | 精品国产成人一区二区三区 | 亚洲 激情 小说 另类 欧美 | 亚洲精品综合五月久久小说 | 久久97精品久久久久久久不卡 | 欧美日韩人成综合在线播放 | 大色综合色综合网站 | 欧美性生交活xxxxxdddd | 中文精品久久久久人妻不卡 | 亚洲成色www久久网站 | 久久国产自偷自偷免费一区调 | 荫蒂添的好舒服视频囗交 | 日韩av无码一区二区三区 | 麻豆国产人妻欲求不满谁演的 | 在线成人www免费观看视频 | 中文字幕无码免费久久99 | 人妻少妇精品无码专区动漫 | 国产成人一区二区三区在线观看 | 日韩欧美群交p片內射中文 | 麻豆av传媒蜜桃天美传媒 | 一本大道伊人av久久综合 | 国产真人无遮挡作爱免费视频 | 国产精品办公室沙发 | 理论片87福利理论电影 | 麻豆精品国产精华精华液好用吗 | 无码吃奶揉捏奶头高潮视频 | 人妻有码中文字幕在线 | 国产人妻精品一区二区三区 | 无码国模国产在线观看 | 内射欧美老妇wbb | 亚洲综合久久一区二区 | 亚洲国产精品久久久天堂 | 国产精品毛片一区二区 | 内射老妇bbwx0c0ck | 国产农村乱对白刺激视频 | 亚洲国产精华液网站w | 精品一区二区三区无码免费视频 | 特黄特色大片免费播放器图片 | 国产高清不卡无码视频 | 亚洲男女内射在线播放 | 中文精品久久久久人妻不卡 | 综合网日日天干夜夜久久 | 精品国产麻豆免费人成网站 | 国产亚洲精品久久久ai换 | 永久免费观看国产裸体美女 | 男女爱爱好爽视频免费看 | a在线亚洲男人的天堂 | 偷窥日本少妇撒尿chinese | 国产凸凹视频一区二区 | 一本大道伊人av久久综合 | 天堂无码人妻精品一区二区三区 | 人人妻人人澡人人爽精品欧美 | 国产成人精品无码播放 | 性欧美疯狂xxxxbbbb | 初尝人妻少妇中文字幕 | a国产一区二区免费入口 | 久久熟妇人妻午夜寂寞影院 | 国产亚洲人成在线播放 | 亚洲一区二区三区偷拍女厕 | 2020久久香蕉国产线看观看 | 欧美激情内射喷水高潮 | 亚洲国产欧美在线成人 | 国产人妻人伦精品 | 99精品国产综合久久久久五月天 | 最近免费中文字幕中文高清百度 | 色欲久久久天天天综合网精品 | 国产美女精品一区二区三区 | 亚洲日韩av片在线观看 | 成人无码视频在线观看网站 | 黑森林福利视频导航 | 最新版天堂资源中文官网 | 人人澡人摸人人添 | 国产又爽又黄又刺激的视频 | 亚洲日本va中文字幕 | 国产亚洲精品久久久久久国模美 | 亚洲 激情 小说 另类 欧美 | 熟女少妇在线视频播放 | 国产熟女一区二区三区四区五区 | 国产成人综合在线女婷五月99播放 | 骚片av蜜桃精品一区 | 熟妇人妻中文av无码 | 丰满肥臀大屁股熟妇激情视频 | 欧美乱妇无乱码大黄a片 | 国产精品久久福利网站 | 日本爽爽爽爽爽爽在线观看免 | 国产一区二区不卡老阿姨 | 人人妻人人澡人人爽欧美一区 | 久久午夜夜伦鲁鲁片无码免费 | 精品一区二区三区无码免费视频 | 精品一区二区不卡无码av | 亚洲精品一区二区三区在线 | 99久久亚洲精品无码毛片 | 精品无人国产偷自产在线 | 东京热男人av天堂 | 亚洲综合色区中文字幕 | 国产乱码精品一品二品 | 野狼第一精品社区 | 天堂无码人妻精品一区二区三区 | 丰满人妻精品国产99aⅴ | 欧美日韩一区二区免费视频 | 国产成人精品三级麻豆 | 日日摸天天摸爽爽狠狠97 | 精品国产乱码久久久久乱码 | 少妇人妻偷人精品无码视频 | 日本xxxx色视频在线观看免费 | 亚洲中文字幕无码中字 | 中文字幕无码热在线视频 | 国产 精品 自在自线 | 98国产精品综合一区二区三区 | 国产免费久久久久久无码 | 国产精品久免费的黄网站 | 成人精品视频一区二区 | 九九久久精品国产免费看小说 | 无码午夜成人1000部免费视频 | 国产情侣作爱视频免费观看 | 成人无码精品1区2区3区免费看 | 欧美35页视频在线观看 | 人妻体内射精一区二区三四 | 黑人大群体交免费视频 | 国产精品无码永久免费888 | 国内综合精品午夜久久资源 | 亚洲精品一区二区三区大桥未久 | 久久综合给合久久狠狠狠97色 | 青青草原综合久久大伊人精品 | 国产成人无码a区在线观看视频app | 亚洲第一无码av无码专区 | 亚洲熟妇色xxxxx亚洲 | 国产av无码专区亚洲a∨毛片 | 一区二区三区乱码在线 | 欧洲 | 亚洲色偷偷男人的天堂 | 内射老妇bbwx0c0ck | 欧美一区二区三区视频在线观看 | 一区二区传媒有限公司 | 精品夜夜澡人妻无码av蜜桃 | 亚洲精品中文字幕 | 欧美放荡的少妇 | 欧美自拍另类欧美综合图片区 | 国产亚洲视频中文字幕97精品 | 久久午夜无码鲁丝片 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲精品成人福利网站 | 玩弄少妇高潮ⅹxxxyw | 大地资源网第二页免费观看 | 中文字幕人妻丝袜二区 | 亚洲国产欧美国产综合一区 | 精品国产一区二区三区av 性色 | 在线看片无码永久免费视频 | 免费国产成人高清在线观看网站 | av香港经典三级级 在线 | 免费观看激色视频网站 | 亚洲欧美精品伊人久久 | 精品国产一区二区三区av 性色 | 成人亚洲精品久久久久 | 久久精品人人做人人综合 | 国产成人亚洲综合无码 | 亚洲综合无码久久精品综合 | 夫妻免费无码v看片 | 久久精品中文字幕大胸 | 国产精品内射视频免费 | 国产成人无码av片在线观看不卡 | 精品夜夜澡人妻无码av蜜桃 | 欧美熟妇另类久久久久久多毛 | 久久久久人妻一区精品色欧美 | 国产午夜福利亚洲第一 | 俺去俺来也www色官网 | 婷婷五月综合缴情在线视频 | 国产猛烈高潮尖叫视频免费 | 久久综合给合久久狠狠狠97色 | 精品亚洲韩国一区二区三区 | 精品国偷自产在线视频 | 男女超爽视频免费播放 | 又湿又紧又大又爽a视频国产 | 亚洲精品一区二区三区在线观看 | 在线观看国产午夜福利片 | 亚洲国产av精品一区二区蜜芽 | 2020久久超碰国产精品最新 | 2019nv天堂香蕉在线观看 | 欧美大屁股xxxxhd黑色 | 国产人妻人伦精品1国产丝袜 | 国产无套内射久久久国产 | 国内揄拍国内精品少妇国语 | 综合人妻久久一区二区精品 | 久久精品人人做人人综合 | 一本精品99久久精品77 | 日日碰狠狠丁香久燥 | 精品一区二区三区无码免费视频 | 欧美刺激性大交 | 大地资源网第二页免费观看 | 领导边摸边吃奶边做爽在线观看 | 亚洲色无码一区二区三区 | 乱中年女人伦av三区 | 98国产精品综合一区二区三区 | 亚洲综合色区中文字幕 | 午夜丰满少妇性开放视频 | 国产激情一区二区三区 | 欧美日韩在线亚洲综合国产人 | 免费无码av一区二区 | 日本欧美一区二区三区乱码 | 伊人久久大香线焦av综合影院 | 久久国产精品精品国产色婷婷 | 国产热a欧美热a在线视频 | a片免费视频在线观看 | 国产又爽又猛又粗的视频a片 | 欧美 日韩 人妻 高清 中文 | 国精品人妻无码一区二区三区蜜柚 | 台湾无码一区二区 | 亚洲精品久久久久中文第一幕 | 国产成人无码a区在线观看视频app | 爆乳一区二区三区无码 | 午夜理论片yy44880影院 | 欧美一区二区三区视频在线观看 | 人妻少妇被猛烈进入中文字幕 | 最新国产麻豆aⅴ精品无码 | 国产凸凹视频一区二区 | 免费国产黄网站在线观看 | 成人片黄网站色大片免费观看 | 成熟女人特级毛片www免费 | 永久免费观看国产裸体美女 | 丰满诱人的人妻3 | 亚洲精品国偷拍自产在线麻豆 | 日韩人妻无码中文字幕视频 | www国产精品内射老师 | 久久人妻内射无码一区三区 | 亚洲国产成人av在线观看 | 日本一卡二卡不卡视频查询 | 熟女俱乐部五十路六十路av | 好爽又高潮了毛片免费下载 | 夜夜高潮次次欢爽av女 | 婷婷综合久久中文字幕蜜桃三电影 | 狠狠亚洲超碰狼人久久 | 精品无人区无码乱码毛片国产 | 伊人色综合久久天天小片 | 天天燥日日燥 | 少妇被粗大的猛进出69影院 | 欧美freesex黑人又粗又大 | 亚洲欧美综合区丁香五月小说 | www成人国产高清内射 | 亚欧洲精品在线视频免费观看 | 男女性色大片免费网站 | 国产精品久久国产精品99 | 国产在线精品一区二区高清不卡 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲色www成人永久网址 | 久久精品国产日本波多野结衣 | 波多野结衣av一区二区全免费观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产亚洲精品久久久闺蜜 | 国产午夜福利100集发布 | 成 人 网 站国产免费观看 | 亚洲小说图区综合在线 | 内射巨臀欧美在线视频 | 亚洲成av人综合在线观看 | 日产精品99久久久久久 | 久久天天躁狠狠躁夜夜免费观看 | 澳门永久av免费网站 | ass日本丰满熟妇pics | 97久久国产亚洲精品超碰热 | 欧美国产日韩久久mv | 亚洲欧洲中文日韩av乱码 | 色欲综合久久中文字幕网 | 亚洲精品一区二区三区在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 欧美熟妇另类久久久久久不卡 | 亚洲中文字幕在线观看 | 妺妺窝人体色www在线小说 | 无码av岛国片在线播放 | 精品久久久久久亚洲精品 | 内射欧美老妇wbb | 色一情一乱一伦一视频免费看 | 久久伊人色av天堂九九小黄鸭 | 又黄又爽又色的视频 | 亚洲国产高清在线观看视频 | 亚洲精品一区二区三区在线 | 国产精品资源一区二区 | 久久99久久99精品中文字幕 | 在线播放无码字幕亚洲 | 国精品人妻无码一区二区三区蜜柚 | 国产午夜亚洲精品不卡 | 爱做久久久久久 | 精品国产麻豆免费人成网站 | 国产午夜亚洲精品不卡 | 亚洲日韩一区二区 | 亚洲人成网站免费播放 | 欧美zoozzooz性欧美 | 牲欲强的熟妇农村老妇女视频 | 国产成人精品无码播放 | 性生交大片免费看l | 伊人久久大香线蕉午夜 | 色欲av亚洲一区无码少妇 | 黑人大群体交免费视频 | 熟女体下毛毛黑森林 | 色婷婷久久一区二区三区麻豆 | 国产av人人夜夜澡人人爽麻豆 | 桃花色综合影院 | 亚洲国精产品一二二线 | 波多野结衣av一区二区全免费观看 | 亚洲 激情 小说 另类 欧美 | 欧美人与动性行为视频 | 波多野结衣av一区二区全免费观看 | 久久综合久久自在自线精品自 | 波多野结衣高清一区二区三区 | 国内精品久久久久久中文字幕 | 国产乱人伦偷精品视频 | 国产精品无码成人午夜电影 | 鲁鲁鲁爽爽爽在线视频观看 | 丁香花在线影院观看在线播放 | 曰韩无码二三区中文字幕 | 成人性做爰aaa片免费看 | 久久zyz资源站无码中文动漫 | 亚洲午夜无码久久 | 成人一区二区免费视频 | 漂亮人妻洗澡被公强 日日躁 | 99久久精品国产一区二区蜜芽 | 天天摸天天透天天添 | 国产av人人夜夜澡人人爽麻豆 | 天干天干啦夜天干天2017 | 欧美亚洲国产一区二区三区 | 国产精品久久精品三级 | 亚洲午夜福利在线观看 | 领导边摸边吃奶边做爽在线观看 | 在线看片无码永久免费视频 | 亚洲色www成人永久网址 | 欧美黑人性暴力猛交喷水 | 久久综合香蕉国产蜜臀av | 夜夜影院未满十八勿进 | 欧美性黑人极品hd | 国产三级精品三级男人的天堂 | 精品欧美一区二区三区久久久 | 天堂无码人妻精品一区二区三区 | 免费中文字幕日韩欧美 | 无码国产色欲xxxxx视频 | 99国产精品白浆在线观看免费 | 波多野结衣一区二区三区av免费 | 久久亚洲精品中文字幕无男同 | 中文字幕人成乱码熟女app | 永久免费精品精品永久-夜色 | 宝宝好涨水快流出来免费视频 | 国产猛烈高潮尖叫视频免费 | 男女超爽视频免费播放 | 久久天天躁夜夜躁狠狠 | 成人三级无码视频在线观看 | 精品亚洲韩国一区二区三区 | 国产 精品 自在自线 | 人人妻人人藻人人爽欧美一区 | 兔费看少妇性l交大片免费 | 亚洲欧美中文字幕5发布 | 亚洲国产综合无码一区 | 精品国产一区二区三区av 性色 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲欧美中文字幕5发布 | 中文字幕av日韩精品一区二区 | 亚洲欧美日韩综合久久久 | 亚洲爆乳无码专区 | 欧美野外疯狂做受xxxx高潮 | 久久精品国产精品国产精品污 | 久久亚洲日韩精品一区二区三区 | 樱花草在线播放免费中文 | 色狠狠av一区二区三区 | 久久zyz资源站无码中文动漫 | 成人欧美一区二区三区 | 日韩精品无码一区二区中文字幕 | 亚洲精品一区二区三区在线观看 | 欧美 日韩 亚洲 在线 | 亚洲精品国偷拍自产在线麻豆 | 麻豆国产丝袜白领秘书在线观看 | 婷婷丁香五月天综合东京热 | 国产人妻精品一区二区三区 | 丰满少妇人妻久久久久久 | 乱人伦中文视频在线观看 | 2020久久香蕉国产线看观看 | 噜噜噜亚洲色成人网站 | 国产午夜手机精彩视频 | 无套内谢的新婚少妇国语播放 | 亲嘴扒胸摸屁股激烈网站 | 一本久道高清无码视频 | 免费无码一区二区三区蜜桃大 | 好爽又高潮了毛片免费下载 | 国产猛烈高潮尖叫视频免费 | 免费无码一区二区三区蜜桃大 | 精品国产av色一区二区深夜久久 | 国产农村乱对白刺激视频 | 亚洲 欧美 激情 小说 另类 | 久久久久久久久蜜桃 | 无码吃奶揉捏奶头高潮视频 | 欧美成人高清在线播放 | 国产成人综合色在线观看网站 | 亚洲精品国产精品乱码不卡 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产成人无码专区 | 国产精品久久福利网站 | 久久亚洲日韩精品一区二区三区 | 四虎永久在线精品免费网址 | 久久zyz资源站无码中文动漫 | 久久久久成人片免费观看蜜芽 | 久久天天躁夜夜躁狠狠 | 欧美精品一区二区精品久久 | 亚洲精品一区二区三区在线观看 | 久久99精品久久久久久 | 午夜福利不卡在线视频 | 亚洲精品中文字幕乱码 | 亚洲色www成人永久网址 | 人人妻人人澡人人爽欧美精品 | 在线精品国产一区二区三区 | 中文久久乱码一区二区 | 无套内谢的新婚少妇国语播放 | 四虎国产精品一区二区 | 亚洲七七久久桃花影院 | 婷婷五月综合缴情在线视频 | 国产午夜无码精品免费看 | 偷窥日本少妇撒尿chinese | 少妇性荡欲午夜性开放视频剧场 | 精品夜夜澡人妻无码av蜜桃 | 图片区 小说区 区 亚洲五月 | 永久免费精品精品永久-夜色 | 一本色道婷婷久久欧美 | 色五月五月丁香亚洲综合网 | 欧美成人高清在线播放 | 色欲综合久久中文字幕网 | 久久久精品456亚洲影院 | 婷婷丁香六月激情综合啪 | 国产精品人妻一区二区三区四 | 无码精品国产va在线观看dvd | 欧美自拍另类欧美综合图片区 | 国产97在线 | 亚洲 | а√天堂www在线天堂小说 | 亚洲色欲久久久综合网东京热 | 狠狠综合久久久久综合网 | 中文字幕无码av波多野吉衣 | 青青草原综合久久大伊人精品 | 国产精品资源一区二区 | 荡女精品导航 | 欧美熟妇另类久久久久久多毛 | 久久人人97超碰a片精品 | 亚洲国产一区二区三区在线观看 | 乱人伦人妻中文字幕无码久久网 | a在线亚洲男人的天堂 | 全球成人中文在线 | 啦啦啦www在线观看免费视频 | 麻豆成人精品国产免费 | 精品无人区无码乱码毛片国产 | 亚洲日韩av一区二区三区四区 | 久久这里只有精品视频9 | 国产xxx69麻豆国语对白 | 97精品国产97久久久久久免费 | 国产特级毛片aaaaaa高潮流水 | 午夜男女很黄的视频 | 天天摸天天透天天添 | 国产激情无码一区二区app | 欧美变态另类xxxx | 久久97精品久久久久久久不卡 | 日本精品人妻无码免费大全 | 亚洲中文字幕无码中文字在线 | 中文字幕日韩精品一区二区三区 | 久久99精品久久久久久 | 久久久中文字幕日本无吗 | 久久这里只有精品视频9 | 乱码av麻豆丝袜熟女系列 | 51国偷自产一区二区三区 | 国产成人精品一区二区在线小狼 | 在线天堂新版最新版在线8 | 中文字幕色婷婷在线视频 | 青草青草久热国产精品 | 丰满诱人的人妻3 | 老子影院午夜伦不卡 | 内射后入在线观看一区 | 亚洲一区av无码专区在线观看 | 熟女少妇人妻中文字幕 | 俄罗斯老熟妇色xxxx | 国产精品高潮呻吟av久久 | 人人妻人人澡人人爽人人精品 | 又湿又紧又大又爽a视频国产 | 亚洲综合无码久久精品综合 | 国产激情艳情在线看视频 | 免费乱码人妻系列无码专区 | 欧美精品免费观看二区 | 久久 国产 尿 小便 嘘嘘 | av无码久久久久不卡免费网站 | 亚洲第一网站男人都懂 | 极品尤物被啪到呻吟喷水 | 夜夜夜高潮夜夜爽夜夜爰爰 | 55夜色66夜色国产精品视频 | 精品国产一区二区三区四区在线看 | 人人妻人人澡人人爽欧美一区 | 色婷婷综合中文久久一本 | www国产亚洲精品久久网站 | 男女超爽视频免费播放 | 亚洲欧美国产精品专区久久 | 亚洲人成影院在线观看 | 乌克兰少妇性做爰 | 偷窥村妇洗澡毛毛多 | 中文字幕乱码亚洲无线三区 | 久久97精品久久久久久久不卡 | 国产成人av免费观看 | 无码人妻丰满熟妇区毛片18 | 中文字幕无线码免费人妻 | 少妇的肉体aa片免费 | 色一情一乱一伦一区二区三欧美 | 中文字幕无线码 | 国产成人精品优优av | 性史性农村dvd毛片 | 久久久精品欧美一区二区免费 | 2019nv天堂香蕉在线观看 | 福利一区二区三区视频在线观看 | 亚洲人交乣女bbw | 精品国产精品久久一区免费式 | 亚洲无人区一区二区三区 | 午夜精品久久久久久久久 | 亚洲天堂2017无码 | 国产成人无码午夜视频在线观看 | 老熟女重囗味hdxx69 | 在线成人www免费观看视频 | 亚洲成a人一区二区三区 | 精品日本一区二区三区在线观看 | 精品日本一区二区三区在线观看 | 日韩av无码一区二区三区不卡 | 国产卡一卡二卡三 | 无码一区二区三区在线 | 中文无码伦av中文字幕 | 野狼第一精品社区 | 波多野结衣av在线观看 | 高潮毛片无遮挡高清免费视频 | 中国大陆精品视频xxxx | 日本在线高清不卡免费播放 | 亚洲色www成人永久网址 | 成人aaa片一区国产精品 | 人人超人人超碰超国产 | 最新国产乱人伦偷精品免费网站 | 欧洲精品码一区二区三区免费看 | 少妇性俱乐部纵欲狂欢电影 | 亚洲精品中文字幕 | 精品人妻人人做人人爽夜夜爽 | 日日碰狠狠躁久久躁蜜桃 | 18精品久久久无码午夜福利 | 高潮毛片无遮挡高清免费 | 国产做国产爱免费视频 | 成人欧美一区二区三区黑人 | 久久人人爽人人爽人人片av高清 | 狂野欧美性猛xxxx乱大交 | www国产亚洲精品久久久日本 | 国产又粗又硬又大爽黄老大爷视 | 亚洲国产精品无码一区二区三区 | 国产精品久久久久久久影院 | 久久亚洲中文字幕无码 | 7777奇米四色成人眼影 | 少妇太爽了在线观看 | 老熟女乱子伦 | 99精品视频在线观看免费 | 国产精品第一国产精品 | 亚洲热妇无码av在线播放 | 国产精品无套呻吟在线 | 国产乱人无码伦av在线a | 欧美野外疯狂做受xxxx高潮 | 在线播放无码字幕亚洲 | 欧美老妇交乱视频在线观看 | 精品国产青草久久久久福利 | 国产亚洲tv在线观看 | 国产精品va在线观看无码 | 真人与拘做受免费视频一 | 一个人看的视频www在线 | 荫蒂被男人添的好舒服爽免费视频 | 欧美猛少妇色xxxxx | 日本成熟视频免费视频 | 97夜夜澡人人双人人人喊 | 欧美黑人性暴力猛交喷水 | 国产亚洲精品久久久久久 | 兔费看少妇性l交大片免费 | 亚洲精品中文字幕乱码 | 久久精品一区二区三区四区 | 青青久在线视频免费观看 | 久久综合给合久久狠狠狠97色 | 爆乳一区二区三区无码 | 亚洲自偷精品视频自拍 | 精品国产青草久久久久福利 | 又大又硬又黄的免费视频 | 国产人妻大战黑人第1集 | 久久久婷婷五月亚洲97号色 | 日本护士毛茸茸高潮 | 亚洲精品国偷拍自产在线观看蜜桃 | 伊在人天堂亚洲香蕉精品区 | 欧美日韩色另类综合 | 亚洲欧美综合区丁香五月小说 | 人妻人人添人妻人人爱 | 老熟妇乱子伦牲交视频 | 欧美丰满少妇xxxx性 | 亚洲国产综合无码一区 | 国产成人精品久久亚洲高清不卡 | 精品久久久久久亚洲精品 | 日本精品人妻无码免费大全 | 亚洲热妇无码av在线播放 | 少女韩国电视剧在线观看完整 | 国产精品.xx视频.xxtv | 午夜无码人妻av大片色欲 | 国产另类ts人妖一区二区 | 丰满人妻一区二区三区免费视频 | 亚洲精品久久久久中文第一幕 | 久久无码中文字幕免费影院蜜桃 | 精品国产一区av天美传媒 | 久久久国产精品无码免费专区 | 亚洲经典千人经典日产 | 精品无码一区二区三区的天堂 | 日本精品人妻无码免费大全 | 双乳奶水饱满少妇呻吟 | 久久久久久av无码免费看大片 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲男女内射在线播放 | 日韩精品a片一区二区三区妖精 | 女人被爽到呻吟gif动态图视看 | 国产免费无码一区二区视频 | 成人免费视频视频在线观看 免费 | 99久久无码一区人妻 | 露脸叫床粗话东北少妇 | 日韩精品乱码av一区二区 | 久久精品人人做人人综合试看 | 亚洲一区二区三区四区 | 久久午夜夜伦鲁鲁片无码免费 | 欧美性生交活xxxxxdddd | 麻豆国产人妻欲求不满 | 亚洲成熟女人毛毛耸耸多 | 亚洲成av人片天堂网无码】 | 精品 日韩 国产 欧美 视频 | 成在人线av无码免观看麻豆 | 一区二区三区高清视频一 | 高潮喷水的毛片 | 在线亚洲高清揄拍自拍一品区 | 亚洲精品成人福利网站 | 最新版天堂资源中文官网 | 成人三级无码视频在线观看 | 国产av一区二区精品久久凹凸 | 性啪啪chinese东北女人 | 国产黄在线观看免费观看不卡 | 中文字幕日产无线码一区 | 亚洲欧美日韩成人高清在线一区 | 精品aⅴ一区二区三区 | 亚洲熟悉妇女xxx妇女av | 欧美性猛交xxxx富婆 | 国产免费观看黄av片 | 精品人妻人人做人人爽 | 亚洲第一无码av无码专区 | 精品国产青草久久久久福利 | 亚洲日本va午夜在线电影 | 99久久婷婷国产综合精品青草免费 | 亚洲欧美综合区丁香五月小说 | 天天做天天爱天天爽综合网 | 国产绳艺sm调教室论坛 | 中文字幕无码av波多野吉衣 | 亚洲无人区午夜福利码高清完整版 | av在线亚洲欧洲日产一区二区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲 激情 小说 另类 欧美 | 亚洲中文字幕在线无码一区二区 | 国产在线精品一区二区三区直播 | 亚洲成av人综合在线观看 | 六十路熟妇乱子伦 | 狠狠色噜噜狠狠狠狠7777米奇 | 色窝窝无码一区二区三区色欲 | 国产精品毛多多水多 | 国产精品爱久久久久久久 | 久久久中文久久久无码 | 国产色在线 | 国产 | 日本高清一区免费中文视频 | 国产另类ts人妖一区二区 | 欧美xxxxx精品 | 美女毛片一区二区三区四区 | 未满成年国产在线观看 | 粉嫩少妇内射浓精videos | 久久国产36精品色熟妇 | 大地资源中文第3页 | 天干天干啦夜天干天2017 | 亚洲色成人中文字幕网站 | 久久久久久亚洲精品a片成人 | 久久99精品国产.久久久久 | 国产三级久久久精品麻豆三级 | 国产另类ts人妖一区二区 | 国产色在线 | 国产 | 日韩精品成人一区二区三区 | 国产亚洲视频中文字幕97精品 | 亚洲无人区午夜福利码高清完整版 | 亚洲欧洲中文日韩av乱码 | 天堂久久天堂av色综合 | 亚洲精品一区二区三区婷婷月 | 国产精品国产三级国产专播 | 亚洲色无码一区二区三区 | 日本丰满护士爆乳xxxx | 日韩亚洲欧美中文高清在线 | 国产va免费精品观看 | 四十如虎的丰满熟妇啪啪 | 国产口爆吞精在线视频 | 夜夜高潮次次欢爽av女 | 18禁黄网站男男禁片免费观看 | 1000部啪啪未满十八勿入下载 | 综合人妻久久一区二区精品 | 樱花草在线播放免费中文 | 亲嘴扒胸摸屁股激烈网站 | 久久伊人色av天堂九九小黄鸭 | 色 综合 欧美 亚洲 国产 | 97色伦图片97综合影院 | 人人妻人人澡人人爽欧美一区 | 久久精品国产日本波多野结衣 | 精品国精品国产自在久国产87 | 动漫av一区二区在线观看 | 亚洲熟悉妇女xxx妇女av | 久久久久久国产精品无码下载 | 窝窝午夜理论片影院 | 国产极品美女高潮无套在线观看 | 熟妇人妻无乱码中文字幕 | 国内综合精品午夜久久资源 | 精品偷拍一区二区三区在线看 | 成人av无码一区二区三区 | 俄罗斯老熟妇色xxxx | 一本色道久久综合亚洲精品不卡 | 西西人体www44rt大胆高清 | 无码免费一区二区三区 | 久久久中文久久久无码 | 久久综合九色综合欧美狠狠 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产精品久久久久久亚洲毛片 | 偷窥村妇洗澡毛毛多 | 欧美肥老太牲交大战 | 欧美兽交xxxx×视频 | 学生妹亚洲一区二区 | 久久无码专区国产精品s | 精品欧美一区二区三区久久久 | 中文字幕无码免费久久9一区9 | 亚洲中文字幕在线观看 | 国产精品二区一区二区aⅴ污介绍 | 国产真实夫妇视频 | 少妇激情av一区二区 | 美女极度色诱视频国产 | 国产亚av手机在线观看 | 精品无人国产偷自产在线 | 亚洲无人区一区二区三区 | 人人爽人人澡人人人妻 | 精品国产成人一区二区三区 | 日本在线高清不卡免费播放 | 野外少妇愉情中文字幕 | 人人妻人人澡人人爽欧美精品 | 婷婷综合久久中文字幕蜜桃三电影 | 午夜精品久久久久久久 | 三级4级全黄60分钟 | 国产亚洲精品久久久闺蜜 | 亚洲国产综合无码一区 | 性欧美牲交在线视频 | 亚洲欧美综合区丁香五月小说 | 老子影院午夜伦不卡 | 亚欧洲精品在线视频免费观看 | 欧美猛少妇色xxxxx | 国产激情艳情在线看视频 | 日产国产精品亚洲系列 | 国产精品无码成人午夜电影 | 国产成人综合在线女婷五月99播放 | 亚洲精品久久久久久久久久久 | 亚洲综合精品香蕉久久网 | 久久99久久99精品中文字幕 | 蜜臀aⅴ国产精品久久久国产老师 | 天堂一区人妻无码 | 免费无码av一区二区 | 中文字幕 人妻熟女 | 国产精品对白交换视频 | 久久精品国产亚洲精品 | 久久国产劲爆∧v内射 | 98国产精品综合一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲欧美国产精品专区久久 | 狠狠亚洲超碰狼人久久 | 少妇性俱乐部纵欲狂欢电影 | 欧美激情综合亚洲一二区 | 精品一区二区三区无码免费视频 | 亚洲一区二区三区香蕉 | 东京无码熟妇人妻av在线网址 | 欧洲vodafone精品性 | 欧美激情综合亚洲一二区 | 久久99热只有频精品8 | 日本在线高清不卡免费播放 | 亚洲自偷精品视频自拍 | 国产成人精品优优av | 六十路熟妇乱子伦 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲乱码国产乱码精品精 | 无码任你躁久久久久久久 | 国产精品a成v人在线播放 | 曰韩无码二三区中文字幕 | 日本丰满护士爆乳xxxx | 99久久无码一区人妻 | 国产极品美女高潮无套在线观看 | 久久久精品成人免费观看 | 在教室伦流澡到高潮hnp视频 | 亚洲精品美女久久久久久久 | 国产午夜无码精品免费看 | 国产精品久久久久久亚洲毛片 | 色综合久久久无码中文字幕 | 帮老师解开蕾丝奶罩吸乳网站 | 麻豆果冻传媒2021精品传媒一区下载 | 大地资源中文第3页 | 欧美亚洲日韩国产人成在线播放 | 伦伦影院午夜理论片 | 久久综合香蕉国产蜜臀av | 在线欧美精品一区二区三区 | 精品国产青草久久久久福利 | 人人妻人人藻人人爽欧美一区 | 成年美女黄网站色大免费视频 | 国产后入清纯学生妹 | 少妇人妻av毛片在线看 | 亚洲国产成人av在线观看 | 国产综合在线观看 | 日日天干夜夜狠狠爱 | 日韩av无码中文无码电影 | 人人妻人人澡人人爽欧美一区九九 | 国产精品va在线播放 | 青青久在线视频免费观看 | 麻豆成人精品国产免费 | 在教室伦流澡到高潮hnp视频 | 国产精品久久久久久久9999 | 日本熟妇浓毛 | 性开放的女人aaa片 | 免费人成在线观看网站 | 国产激情无码一区二区 | 99视频精品全部免费免费观看 | 日产精品99久久久久久 | 亚洲中文无码av永久不收费 | 久久午夜无码鲁丝片午夜精品 | 国产免费久久精品国产传媒 | 大乳丰满人妻中文字幕日本 | 丰满人妻一区二区三区免费视频 | 宝宝好涨水快流出来免费视频 | 国产亚洲精品久久久久久国模美 | 黑人巨大精品欧美一区二区 | 18无码粉嫩小泬无套在线观看 | 欧美老人巨大xxxx做受 | 亚洲国产欧美国产综合一区 | 福利一区二区三区视频在线观看 | 精品无人区无码乱码毛片国产 | 一个人看的视频www在线 | 一区二区传媒有限公司 | 夜夜影院未满十八勿进 | 精品一区二区三区波多野结衣 | 欧美激情一区二区三区成人 | 国产亚洲视频中文字幕97精品 | 亚洲成av人片在线观看无码不卡 | 国产精品久免费的黄网站 | 国产电影无码午夜在线播放 | 丰满人妻翻云覆雨呻吟视频 | 日本护士毛茸茸高潮 | 中文无码成人免费视频在线观看 | а√天堂www在线天堂小说 | 丁香花在线影院观看在线播放 | 亚洲中文字幕av在天堂 | 少妇人妻av毛片在线看 | 无码一区二区三区在线观看 | 天堂а√在线中文在线 | 亚洲男人av天堂午夜在 | 国产精品对白交换视频 | 国产精品久久久午夜夜伦鲁鲁 | 激情亚洲一区国产精品 | 国产片av国语在线观看 | 国产精品久久国产三级国 | 天海翼激烈高潮到腰振不止 | 亚洲人成网站在线播放942 | 日日麻批免费40分钟无码 | 婷婷丁香六月激情综合啪 | v一区无码内射国产 | 欧美 丝袜 自拍 制服 另类 | 久9re热视频这里只有精品 | 无码纯肉视频在线观看 | a国产一区二区免费入口 | 欧美人与禽猛交狂配 | 免费视频欧美无人区码 | 伊人久久婷婷五月综合97色 | 亚洲成av人综合在线观看 | 伊在人天堂亚洲香蕉精品区 | 乱码av麻豆丝袜熟女系列 | 国内少妇偷人精品视频免费 | 成人无码视频在线观看网站 | 欧美一区二区三区视频在线观看 | 国产综合色产在线精品 | 国内精品久久毛片一区二区 | 亚洲一区二区三区在线观看网站 | 亚洲欧美日韩国产精品一区二区 | 久久久精品人妻久久影视 | 久久成人a毛片免费观看网站 | 日本大乳高潮视频在线观看 | 久久午夜夜伦鲁鲁片无码免费 | 国产亚洲精品精品国产亚洲综合 | 久久国产精品偷任你爽任你 | 色婷婷av一区二区三区之红樱桃 | 女人高潮内射99精品 | 久精品国产欧美亚洲色aⅴ大片 | 人人澡人人妻人人爽人人蜜桃 | 男人和女人高潮免费网站 | 综合激情五月综合激情五月激情1 | 亚洲国产精品美女久久久久 | 樱花草在线社区www | 久久午夜无码鲁丝片 | 欧美亚洲日韩国产人成在线播放 | 色欲人妻aaaaaaa无码 | 亚洲成色www久久网站 | 最新国产麻豆aⅴ精品无码 | 福利一区二区三区视频在线观看 | 亚洲精品久久久久avwww潮水 | 伊人久久大香线蕉午夜 | 国产真实夫妇视频 | 天天躁日日躁狠狠躁免费麻豆 | 大乳丰满人妻中文字幕日本 | 久久精品国产亚洲精品 | 国产成人精品视频ⅴa片软件竹菊 | 伦伦影院午夜理论片 | 久久精品中文闷骚内射 | 国产在线aaa片一区二区99 | 欧洲精品码一区二区三区免费看 | 中文字幕无码免费久久9一区9 | 免费国产成人高清在线观看网站 | 亚洲精品国偷拍自产在线麻豆 | 亚洲午夜福利在线观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产精品.xx视频.xxtv | 欧美 亚洲 国产 另类 | 成在人线av无码免费 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 一区二区三区乱码在线 | 欧洲 | 一本色道婷婷久久欧美 | 亚洲无人区午夜福利码高清完整版 | 午夜无码区在线观看 | 三上悠亚人妻中文字幕在线 | 伊人久久大香线蕉av一区二区 | 久久久久久久人妻无码中文字幕爆 | а天堂中文在线官网 | 4hu四虎永久在线观看 | 欧美日本精品一区二区三区 | 国产99久久精品一区二区 | 国产精品亚洲а∨无码播放麻豆 | 天堂а√在线地址中文在线 | 国产精品99久久精品爆乳 | 青草青草久热国产精品 | 狠狠噜狠狠狠狠丁香五月 | 亚洲区小说区激情区图片区 | 色婷婷av一区二区三区之红樱桃 | 蜜桃视频插满18在线观看 | 亚洲中文字幕久久无码 | 九一九色国产 | 99精品国产综合久久久久五月天 | 欧美精品一区二区精品久久 | 超碰97人人做人人爱少妇 | 国产人妻精品一区二区三区不卡 | 免费无码一区二区三区蜜桃大 | 装睡被陌生人摸出水好爽 | 久久久中文久久久无码 | 激情爆乳一区二区三区 | 精品无码成人片一区二区98 |