国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

初學(xué)者,Spring快速入門

 更新時間:2021年09月03日 16:53:47   作者:王延領(lǐng)  
本文主要講解了Spring框架的基礎(chǔ)知識,Spring是一個輕量級的開源框架,它是為簡化企業(yè)級應(yīng)用開發(fā)而生。文中運(yùn)用代碼非常詳細(xì)的介紹了相關(guān)知識,需要了解的小伙伴可以參考一下哦

1.spring

Spring 框架可以說是Java 世界最為成功的框架,在企業(yè)實際應(yīng)用中,大部分的企業(yè)架構(gòu)都基于Spring 框架。它的成功來自于理念,而不是技術(shù),它最為核心的理念是IoC (控制反轉(zhuǎn))和AOP (面向切面編程),其中IoC 是Spring的基礎(chǔ),而AOP 則是其重要的功能,最為典型的當(dāng)屬數(shù)據(jù)庫事務(wù)的使用。

Spring最根本的使命是解決企業(yè)級應(yīng)用開發(fā)的復(fù)雜性,即簡化Java開發(fā)。

1.1.優(yōu)點(diǎn)

1.方便解耦,簡化開發(fā)

Spring就是一個大工廠,可以將所有對象的創(chuàng)建和依賴關(guān)系的維護(hù),交給Spring管理。

2.AOP編程的支持

Spring提供面向切面編程,可以方便的實現(xiàn)對程序進(jìn)行權(quán)限攔截、運(yùn)行監(jiān)控等功能。

3.聲明式事務(wù)的支持

只需要通過配置就可以完成對事務(wù)的管理,而無需手動編程。

4.方便程序的測試

Spring對Junit4支持,可以通過注解方便的測試Spring程序。

5.方便集成各種優(yōu)秀框架

Spring不排斥各種優(yōu)秀的開源框架,其內(nèi)部提供了對各種優(yōu)秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。

6.降低JavaEE API的使用難度

Spring對JavaEE開發(fā)中非常難用的一些API(JDBC、JavaMail、遠(yuǎn)程調(diào)用等),都提供了封裝,使這些API應(yīng)用難度大大降低。

1.2.缺點(diǎn)

1.Spring明明一個很輕量級的框架,卻給人感覺大而全

2.Spring依賴反射,反射影響性能

3.使用門檻升高,入門Spring需要較長時間

1.3.Spring框架的組成結(jié)構(gòu)圖

Spring 總共大約有 20 個模塊, 由 1300 多個不同的文件構(gòu)成。 而這些組件被分別整合在核心容器(Core Container) 、 AOP(Aspect Oriented Programming)和設(shè)備支持(Instrmentation) 、數(shù)據(jù)訪問與集成(Data Access/Integeration) 、 Web、 消息(Messaging) 、 Test等 6 個模塊中。 以下是 Spring 5 的模塊結(jié)構(gòu)圖:

組成 Spring 框架的每個模塊(或組件)都可以單獨(dú)存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。每個模塊的功能如下:

1.3.1.核心容器

Spring的核心容器是其他模塊建立的基礎(chǔ),有spring-core、spring-beans、spring-context、spring-context-support和spring-expression(Spring表達(dá)式語言)等模塊組成。

spring-core 模塊:提供了框架的基本組成部分,包括控制反轉(zhuǎn)(Inversion of Control,IOC)和依賴注入(Dependency Injection,DI)功能。

spring-beans 模塊:提供了BeanFactory,是工廠模式的一個經(jīng)典實現(xiàn),Spring將管理對象稱為Bean。

spring-context 模塊:建立在Core和Beans模塊的基礎(chǔ)之上,提供一個框架式的對象訪問方式,是訪問定義和配置的任何對象的媒介。ApplicationContext接口是Context模塊的焦點(diǎn)。

spring-context-support 模塊:支持整合第三方庫到Spring應(yīng)用程序上下文,特別是用于高速緩存(EhCache、JCache)和任務(wù)調(diào)度(CommonJ、Quartz)的支持。

Spring-expression 模塊:提供了強(qiáng)大的表達(dá)式語言去支持運(yùn)行時查詢和操作對象圖。這是對JSP2.1規(guī)范中規(guī)定的統(tǒng)一表達(dá)式語言(Unified EL)的擴(kuò)展。該語言支持設(shè)置和獲取屬性值、屬性分配、方法調(diào)用、訪問數(shù)組、集合和索引器的內(nèi)容、邏輯和算術(shù)運(yùn)算、變量命名以及從Spring的IOC容器中以名稱檢索對象。它還支持列表投影、選擇以及常用的列表聚合。

1.3.2.AOP 和設(shè)備支持

由spring-aop、 spring-aspects 和 spring-instrument等 3 個模塊組成。

spring-aop 模塊:是 Spring 的另一個核心模塊,提供了一個符合 AOP 要求的面向切面的編程實現(xiàn)。 作為繼 OOP(面向?qū)ο缶幊蹋?后, 對程序員影響最大的編程思想之一, AOP 極大地開拓了人們對于編程的思路。 在 Spring 中, 以動態(tài)代理技術(shù)為基礎(chǔ),允許定義方法攔截器和切入點(diǎn),將代碼按照功能進(jìn)行分離,以便干凈地解耦。

spring-aspects 模塊:提供了與AspectJ的集成功能,AspectJ是一個功能強(qiáng)大且成熟的AOP框架。

spring-instrument 模塊:是 AOP 的一個支援模塊, 提供了類植入(Instrumentation)支持和類加載器的實現(xiàn),可以在特定的應(yīng)用服務(wù)器中使用。主要作用是在 JVM 啟用時, 生成一個代理類, 程序員通過代理類在運(yùn)行時修改類的字節(jié), 從而改變一個類的功能, 實現(xiàn) AOP 的功能。

1.3.3.數(shù)據(jù)訪問與集成

由 spring-jdbc、spring-orm、spring-oxm、spring-jms 和 spring-tx 等 5 個模塊組成。

spring-jdbc 模塊:提供了一個JDBC的抽象層,消除了煩瑣的JDBC編碼和數(shù)據(jù)庫廠商特有的錯誤代碼解析, 用于簡化JDBC。主要是提供 JDBC 模板方式、 關(guān)系數(shù)據(jù)庫對象化方式、 SimpleJdbc 方式、 事務(wù)管理來簡化 JDBC 編程, 主要實現(xiàn)類是 JdbcTemplate、 SimpleJdbcTemplate 以及 NamedParameterJdbcTemplate。

spring-orm 模塊:是 ORM 框架支持模塊, 主要集成 Hibernate, Java Persistence API (JPA) 和Java Data Objects (JDO) 用于資源管理、 數(shù)據(jù)訪問對象(DAO)的實現(xiàn)和事務(wù)策略。

spring-oxm 模塊:主要提供一個抽象層以支撐 OXM(OXM 是 Object-to-XML-Mapping 的縮寫, 它是一個 O/M-mapper, 將 java 對象映射成 XML 數(shù)據(jù), 或者將 XML 數(shù)據(jù)映射成 java 對象) , 例如: JAXB,Castor,XMLBeans,JiBX 和 XStream 等。

spring-jms模塊(Java Messaging Service):指Java消息傳遞服務(wù),包含用于生產(chǎn)和使用消息的功能。自Spring4.1以后,提供了與spring-messaging模塊的集成。

spring-tx 模塊:事務(wù)模塊,支持用于實現(xiàn)特殊接口和所有POJO(普通Java對象)類的編程和聲明式事務(wù)管理。

1.3.4.Web

由spring-websocket、spring-webmvc、spring-web、portlet和spring-webflux模塊等 5 個模塊組成。

spring-websocket 模塊:Spring4.0以后新增的模塊,實現(xiàn)雙工異步通訊協(xié)議,實現(xiàn)了WebSocket和SocketJS,提供Socket通信和web端的推送功能。

spring-webmvc 模塊:也稱為Web-Servlet模塊,包含用于web應(yīng)用程序的Spring MVC和REST Web Services實現(xiàn)。Spring MVC框架提供了領(lǐng)域模型代碼和Web表單之間的清晰分離,并與Spring Framework的所有其他功能集成。

spring-web 模塊:提供了基本的Web開發(fā)集成功能,包括使用Servlet監(jiān)聽器初始化一個IOC容器以及Web應(yīng)用上下文,自動載入WebApplicationContext特性的類,Struts集成類、文件上傳的支持類、Filter類和大量輔助工具類。

portlet 模塊:實現(xiàn)web模塊功能的聚合,類似于Servlet模塊的功能,提供了Portlet環(huán)境下的MVC實現(xiàn)。

spring-webflux 模塊:是一個新的非堵塞函數(shù)式 Reactive Web 框架, 可以用來建立異步的, 非阻塞,事件驅(qū)動的服務(wù), 并且擴(kuò)展性非常好。

1.3.5.消息(Messaging)

即 spring-messaging 模塊。

spring-messaging 是從 Spring4 開始新加入的一個模塊, 該模塊提供了對消息傳遞體系結(jié)構(gòu)和協(xié)議的支持。

1.3.6.Test

即 spring-test 模塊。

spring-test 模塊主要為測試提供支持的,支持使用JUnit或TestNG對Spring組件進(jìn)行單元測試和集成測試。

2.Spring核心ioc

Ioc—Inversion of Control,即“控制反轉(zhuǎn)”,不是什么技術(shù),而是一種設(shè)計思想。在Java開發(fā)中,Ioc意味著將你設(shè)計好的對象交給容器控制,而不是傳統(tǒng)的在你的對象內(nèi)部直接控制。就是不實例化了。先注入。

誰控制誰,控制什么:傳統(tǒng)Java SE程序設(shè)計,我們直接在對象內(nèi)部通過new進(jìn)行創(chuàng)建對象,是程序主動去創(chuàng)建依賴對象;而IoC是有專門一個容器來創(chuàng)建這些對象,即由Ioc容器來控制對象的創(chuàng)建;誰控制誰?當(dāng)然是IoC 容器控制了對象;控制什么?那就是主要控制了外部資源獲取。

為何是反轉(zhuǎn),哪些方面反轉(zhuǎn)了:有反轉(zhuǎn)就有正轉(zhuǎn),傳統(tǒng)應(yīng)用程序是由我們自己在對象中主動控制去直接獲取依賴對象,也就是正轉(zhuǎn);而反轉(zhuǎn)則是由容器來幫忙創(chuàng)建及注入依賴對象;為何是反轉(zhuǎn)?因為由容器幫我們查找及注入依賴對象,對象只是被動的接受依賴對象,所以是反轉(zhuǎn);哪些方面反轉(zhuǎn)了?依賴對象的獲取被反轉(zhuǎn)了。

ps:控制反轉(zhuǎn)是目標(biāo),依賴注入是手段。

2.1.ioc容器

IoC 容器是 Spring 的核心,也可以稱為 Spring 容器。Spring 通過 IoC 容器來管理對象的實例化和初始化,以及對象從創(chuàng)建到銷毀的整個生命周期。

Spring 中使用的對象都由 IoC 容器管理,不需要我們手動使用 new 運(yùn)算符創(chuàng)建對象。由 IoC 容器管理的對象稱為 Spring Bean,Spring Bean 就是 Java 對象,和使用 new 運(yùn)算符創(chuàng)建的對象沒有區(qū)別。

Spring 通過讀取 XML 或 Java 注解中的信息來獲取哪些對象需要實例化。

Spring 提供 2 種不同類型的 IoC 容器,即 BeanFactory 和 ApplicationContext 容器

2.1.1.BeanFactory 容器

BeanFactory 是最簡單的容器,由 org.springframework.beans.factory.BeanFactory 接口定義,采用懶加載(lazy-load),所以容器啟動比較快。BeanFactory 提供了容器最基本的功能。

為了能夠兼容 Spring 集成的第三方框架(如 BeanFactoryAware、InitializingBean、DisposableBean),所以目前仍然保留了該接口。

簡單來說,BeanFactory 就是一個管理 Bean 的工廠,它主要負(fù)責(zé)初始化各種 Bean,并調(diào)用它們的生命周期方法。

BeanFactory 接口有多個實現(xiàn)類,最常見的是 org.springframework.beans.factory.xml.XmlBeanFactory。使用 BeanFactory 需要創(chuàng)建 XmlBeanFactory 類的實例,通過 XmlBeanFactory 類的構(gòu)造函數(shù)來傳遞 Resource 對象。如下所示。

Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);  

2.1.2. ApplicationContext 容器

ApplicationContext 繼承了 BeanFactory 接口,由 org.springframework.context.ApplicationContext 接口定義,對象在啟動容器時加載。ApplicationContext 在 BeanFactory 的基礎(chǔ)上增加了很多企業(yè)級功能,例如 AOP、國際化、事件支持等。

ApplicationContext 接口有兩個常用的實現(xiàn)類,具體如下。

2.1.2.1.ClassPathXmlApplicationContext

該類從類路徑 ClassPath 中尋找指定的 XML 配置文件,并完成 ApplicationContext 的實例化工作,具體如下所示。

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation)

在上述代碼中,configLocation 參數(shù)用于指定 Spring 配置文件的名稱和位置,如 Beans.xml。

2.1.2.2.FileSystemXmlApplicationContext

該類從指定的文件系統(tǒng)路徑中尋找指定的 XML 配置文件,并完成 ApplicationContext 的實例化工作,具體如下所示。

ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation);

它與 ClassPathXmlApplicationContext 的區(qū)別是:在讀取 Spring 的配置文件時,F(xiàn)ileSystemXmlApplicationContext 不會從類路徑中讀取配置文件,而是通過參數(shù)指定配置文件的位置。即 FileSystemXmlApplicationContext 可以獲取類路徑之外的資源,如“F:/workspaces/Beans.xml”。

2.1.2.3.AnnotationConfigApplicationContext

讀取用注解創(chuàng)建容器

通常在 Java 項目中,會采用 ClassPathXmlApplicationContext 類實例化 ApplicationContext 容器的方式,而在 Web 項目中,ApplicationContext 容器的實例化工作會交由 Web 服務(wù)器完成。Web 服務(wù)器實例化 ApplicationContext 容器通常使用基于 ContextLoaderListener 實現(xiàn)的方式,它只需要在 web.xml 中添加如下代碼:

<!--指定Spring配置文件的位置,有多個配置文件時,以逗號分隔-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <!--spring將加載spring目錄下的applicationContext.xml文件-->
    <param-value>
        classpath:spring/applicationContext.xml
    </param-value>
</context-param>
<!--指定以ContextLoaderListener方式啟動Spring容器-->
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

要注意的是,BeanFactory 和 ApplicationContext 都是通過 XML 配置文件加載 Bean 的。

二者的主要區(qū)別在于,如果 Bean 的某一個屬性沒有注入,使用 BeanFacotry 加載后,第一次調(diào)用 getBean() 方法時會拋出異常,而 ApplicationContext 則會在初始化時自檢,這樣有利于檢查所依賴的屬性是否注入。

因此,在實際開發(fā)中,通常都選擇使用 ApplicationContext,只有在系統(tǒng)資源較少時,才考慮使用 BeanFactory。

2.2.使用ioc容器

2.2.1.beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="user" class="com.wyl.pojo.User">
        <property name="name" value="王延領(lǐng)"/>
    </bean>
</beans>

2.2.2.pojo.User

public class User { 
    private String name; 
    public User() {
        System.out.println("user無參構(gòu)造方法");
    } 
    public void setName(String name) {
        this.name = name;
    } 
    public void show(){
        System.out.println("name="+ name );
    }
}

2.2.3.test

@Test
public void test(){
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    //在執(zhí)行g(shù)etBean的時候, user已經(jīng)創(chuàng)建好了 , 通過無參構(gòu)造
    User user = (User) context.getBean("user");
    //調(diào)用對象的方法 .
    user.show();
}

2.3.bean

2.3.1.定義

由 Spring IoC 容器管理的對象稱為 Bean,Bean 根據(jù) Spring 配置文件中的信息創(chuàng)建??梢园?Spring IoC 容器看作是一個大工廠,Bean 相當(dāng)于工廠的產(chǎn)品,如果希望這個大工廠生產(chǎn)和管理 Bean,則需要告訴容器需要哪些 Bean,以及需要哪種方式裝配 Bean。

Spring 配置文件支持兩種格式,即 XML 文件格式和 Properties 文件格式。

  • Properties 配置文件主要以 key-value 鍵值對的形式存在,只能賦值,不能進(jìn)行其他操作,適用于簡單的屬性配置。
  • XML 配置文件是樹形結(jié)構(gòu),相對于 Properties 文件來說更加靈活。XML 配置文件結(jié)構(gòu)清晰,但是內(nèi)容比較繁瑣,適用于大型復(fù)雜的項目。

通常情況下,Spring 的配置文件使用 XML 格式。XML 配置文件的根元素是 ,該元素包含了多個子元素 。每一個 元素都定義了一個 Bean,并描述了該 Bean 如何被裝配到 Spring 容器中。

2.3.2.創(chuàng)建

2.3.2.1 默認(rèn)方式

無參

<!-- 1. 默認(rèn)構(gòu)造函數(shù),如果類中沒有默認(rèn)構(gòu)造函數(shù)則無法創(chuàng)建對象;bean標(biāo)簽中只有id和class就默認(rèn)使用構(gòu)造函數(shù)創(chuàng)建對象 -->
<bean id="userService" class="com.wyl.pojo.User"/>

有參

<!-- 第一種根據(jù)index參數(shù)下標(biāo)設(shè)置 -->
<bean id="userService" class="com.wyl.pojo.User">
    <!-- index指構(gòu)造方法 , 下標(biāo)從0開始 -->
    <constructor-arg index="0" value="wyl"/>
</bean>
 
<!-- 第二種根據(jù)參數(shù)名字設(shè)置 -->
<bean id="userService" class="com.wyl.pojo.User">
    <!-- name指參數(shù)名 -->
    <constructor-arg name="name" value="wyl"/>
</bean>
<!-- 第三種根據(jù)參數(shù)類型設(shè)置 -->
<bean id="userService" class="com.wyl.pojo.User">
    <constructor-arg type="java.lang.String" value="wyl"/>
</bean>
2.3.2.2 工廠類中的方法
<!-- 2. 使用工廠中的方法創(chuàng)建對象;工廠中有一個方法可以創(chuàng)建對象,先創(chuàng)建工廠對象,通過factory-bean指向工廠,使用factory-method方法獲取對象 -->
<bean id="beanFactory" class="org.factory.BeanFactory"/>
<bean id="userService" factory-bean="beanFactory" factory-method="getUserService"/>
2.3.2.3 靜態(tài)工廠中的靜態(tài)方法
<!-- 3. 使用靜態(tài)工廠中的靜態(tài)方法創(chuàng)建對象 -->
<bean id="userService" class="org.factory.StaticBeanFactory" factory-method="getUserService"/>

2.3.2.配置

2.3.2.1.別名
<!--  別名 : 如果添加了別名,我們也可以使用別名獲取到這個對象 -->
<alias name="User" alias="u1"></alias>
2.3.2.2.bean 別名
<!--
  bean標(biāo)簽常用屬性:

id屬性:起名稱,id屬性值名稱任意命名,不能包含特殊符號
class屬性:創(chuàng)建對象所在類的全路徑
name屬性:功能和id屬性一樣的,但是在name屬性值里面可以包含特殊符號
scope屬性
singleton:默認(rèn)值,單例
prototype:多例
request:創(chuàng)建對象把對象放到request域里面
session:創(chuàng)建對象把對象放到session域里面
globalSession:創(chuàng)建對象把對象放到globalSession里面
  -->
<bean id="UserT" class="com.wyl.pojo.User" scope="singleton" name="u2 u21,u22;u23">
    <property name="name" value="123"/>
</bean>
2.3.2.3.import

團(tuán)隊的合作通過import來實現(xiàn) .

<import resource="beans.xml"/>

能將多個人開發(fā)的不同的配置xml文件整合到applicationContext.xml文件中,并且能夠合適的去重。

2.3.3.作用域

<bean id="..." class="..." scope="singleton"/>

Spring 容器在初始化一個 Bean 實例時,同時會指定該實例的作用域。Spring 5 支持以下 6 種作用域。

singleton

默認(rèn)值,單例模式,表示在 Spring 容器中只有一個 Bean 實例,Bean 以單例的方式存在。

prototype

原型模式,表示每次通過 Spring 容器獲取 Bean 時,容器都會創(chuàng)建一個 Bean 實例。

request

每次 HTTP 請求,容器都會創(chuàng)建一個 Bean 實例。該作用域只在當(dāng)前 HTTP Request 內(nèi)有效。

session

同一個 HTTP Session 共享一個 Bean 實例,不同的 Session 使用不同的 Bean 實例。該作用域僅在當(dāng)前 HTTP Session 內(nèi)有效。

application

同一個 Web 應(yīng)用共享一個 Bean 實例,該作用域在當(dāng)前 ServletContext 內(nèi)有效。
類似于 singleton,不同的是,singleton 表示每個 IoC 容器中僅有一個 Bean 實例,而同一個 Web 應(yīng)用中可能會有多個 IoC 容器,但一個 Web 應(yīng)用只會有一個 ServletContext,也可以說 application 才是 Web 應(yīng)用中貨真價實的單例模式。

websocket

websocket 的作用域是 WebSocket ,即在整個 WebSocket 中有效
equest、session、application、websocket 和 global Session 作用域只能在 Web 環(huán)境下使用,如果使用 ClassPathXmlApplicationContext 加載這些作用域中的任意一個的 Bean,就會拋出以下異常。

2.3.4.生命周期

  1. Spring 啟動,查找并加載需要被 Spring 管理的 Bean,并實例化 Bean。
  2. 利用依賴注入完成 Bean 中所有屬性值的配置注入。
  3. 如果 Bean 實現(xiàn)了 BeanNameAware 接口,則 Spring 調(diào)用 Bean 的 setBeanName() 方法傳入當(dāng)前 Bean 的 id 值。
  4. 如果 Bean 實現(xiàn)了 BeanFactoryAware 接口,則 Spring 調(diào)用 setBeanFactory() 方法傳入當(dāng)前工廠實例的引用。
  5. 如果 Bean 實現(xiàn)了 ApplicationContextAware 接口,則 Spring 調(diào)用 setApplicationContext() 方法傳入當(dāng)前 ApplicationContext 實例的引用。
  6. 如果 Bean 實現(xiàn)了 [BeanPostProcessor] 接口,則 Spring 調(diào)用該接口的預(yù)初始化方法 postProcessBeforeInitialzation() 對 Bean 進(jìn)行加工操作,此處非常重要,Spring 的 AOP 就是利用它實現(xiàn)的。
  7. 如果 Bean 實現(xiàn)了 InitializingBean 接口,則 Spring 將調(diào)用 afterPropertiesSet() 方法。
  8. 如果在配置文件中通過 init-method 屬性指定了初始化方法,則調(diào)用該初始化方法。
  9. 如果 [BeanPostProcessor ]和 Bean 關(guān)聯(lián),則 Spring 將調(diào)用該接口的初始化方法 postProcessAfterInitialization()。此時,Bean 已經(jīng)可以被應(yīng)用系統(tǒng)使用了。
  10. 如果在 中指定了該 Bean 的作用域為 singleton,則將該 Bean 放入 Spring IoC 的緩存池中,觸發(fā) Spring 對該 Bean 的生命周期管理; 如果在 中指定了該 Bean 的作用域為 prototype,則將該 Bean 交給調(diào)用者,調(diào)用者管理該 Bean 的生命周期,Spring 不再管理該 Bean。
  11. 如果 Bean 實現(xiàn)了 DisposableBean 接口,則 Spring 會調(diào)用 destory() 方法銷毀 Bean;如果在配置文件中通過 destory-method 屬性指定了 Bean 的銷毀方法,則 Spring 將調(diào)用該方法對 Bean 進(jìn)行銷毀。
2.3.4.1.單例
public class UserBean {
	private String name;  
    
    public UserBean(){  
        System.out.println("UserBean()構(gòu)造函數(shù)");  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        System.out.println("setName()");  
        this.name = name;  
    }  
    public void init(){  
        System.out.println("this is init of UserBean");  
    }  
      
    public void destory(){  
        System.out.println("this is destory of UserBean " + this);  
    }  
}
<bean id="user_singleton" class="com.wyl.userBean" scope="singleton" 
			init-method="init" destroy-method="destory" lazy-init="true"/>

當(dāng)scope="singleton",即默認(rèn)情況下,會在啟動容器時(即實例化容器時)時實例化。但我們可以指定Bean節(jié)點(diǎn)的lazy-init="true"來延遲初始化bean,這時候,只有在第一次獲取bean時才會初始化bean,即第一次請求該bean時才初始化.

如果想對所有的默認(rèn)單例bean都應(yīng)用延遲初始化,可以在根節(jié)點(diǎn)beans設(shè)置default-lazy-init屬性為true,如下所示:

<beans default-lazy-init="true">
public class LifeTest {
	@Test 
	public void test() {
		AbstractApplicationContext container = 
		new ClassPathXmlApplicationContext("user.xml");
		UserBean user = (UserBean)container.getBean("user_singleton");
		System.out.println(user);
		container.close();
	}
}

UserBean()構(gòu)造函數(shù)
this is init of UserBean
com.wyl.UserBean@573f2bb1
……
this is destory of UserBeancom.wyl.UserBean@573f2bb1

默認(rèn)情況下,Spring在讀取xml文件的時候,就會創(chuàng)建對象。在創(chuàng)建對象的時候先調(diào)用構(gòu)造器[UserBean(),然后調(diào)用init-method屬性值中所指定的方法。對象在被銷毀的時候,會調(diào)用destroy-method屬性值中所指定的方法.

2.3.4.2.非單例管理的對象

當(dāng)scope="prototype"時,容器也會延遲初始化bean,Spring讀取xml文件的時候,并不會立刻創(chuàng)建對象,而是在第一次請求該bean時才初始化(如調(diào)用getBean方法時)。

在第一次請求每一個prototype的bean時,Spring容器都會調(diào)用其構(gòu)造器創(chuàng)建這個對象,然后調(diào)用init-method屬性值中所指定的方法。對象銷毀的時候,Spring容器不會幫我們調(diào)用任何方法,因為是非單例,這個類型的對象有很多個,Spring容器一旦把這個對象交給你之后,就不再管理這個對象了。

<bean id="user_prototype" class="com.bean.UserBean" scope="prototype" init-method="init" destroy-method="destroy"/>

public class UserTest {
	@Test 
	public void test() {
		AbstractApplicationContext container = new ClassPathXmlApplicationContext("User.xml");
		UserBean User1 = (UserBean)container.getBean("User_singleton");
		System.out.println(User1);
		
		UserBean User2 = (UserBean)container.getBean("User_prototype");
		System.out.println(User2);
		container.close();
	}
}

結(jié)果

UserBean()構(gòu)造函數(shù)
this is init of UserBean
com.wyl.UserBean@573f2bb1
LifeBean()構(gòu)造函數(shù)
this is init of UserBean
com.wyl.UserBean@5ae9a829
……
this is destory of lifeBean com.wyl.UserBean@573f2bb1

2.4.DI(依賴注入)

依賴注入Dependency Injection,在解耦的過程中,我們將對象的創(chuàng)建交給Spring容器管理,當(dāng)我們需要用其他類的對象,由Spring提供,我們只需在配置文件里聲明即可。A類使用B類,就產(chǎn)生依賴關(guān)系,Spring給我們解決依賴關(guān)系就是依賴注入(DI)

2.4.1.構(gòu)造器注入

private String name;
private Integer age;
private Date birthday;
// 構(gòu)造函數(shù)
public UserServiceImpl(String name, Integer age, Date birthday) {
this.name = name;
this.age = age;
this.birthday = birthday;
}
<!-- name:按字段名稱輔助;index:字段索引,給第幾個字段賦值;type:指定注入值的類型,該類型也是構(gòu)造函數(shù)中某個或某些字段的類型; -->
<!-- value:要注入的值,基本類型和String;ref:注入其他類型數(shù)據(jù),指向外部bean對象;這個外部bean需要存在于Spring容器 -->
<bean id="userService" class="org.service.impl.UserServiceImpl">
    <constructor-arg name="name" value="張三"/>
    <constructor-arg name="age" value="12"/>
    <constructor-arg name="birthday" ref="date"/>
</bean>
<!-- 創(chuàng)建日期對象 -->
<bean id="date" class="java.util.Date"/>

2.4.2.Set方式注入

private String name;
private Integer age;
private Date birthday;
public void setName(String name) {
    this.name = name;
}

public void setAge(Integer age) {
    this.age = age;
}

public void setBirthday(Date birthday) {
    this.birthday = birthday;
}
<bean id="userService2" class="org.service.impl.UserServiceImpl2">
    <property name="name" value="李四"/>
    <property name="age" value="12"/>
    <property name="birthday" ref="date"/>
</bean>
<!-- 創(chuàng)建日期對象 -->
<bean id="date" class="java.util.Date"/>

2.4.3.對象類型注入

<!-- 注入對象類型屬性 -->
<!-- 1 配置service和dao對象 -->
<bean id="userDao" class="cn.ioc.UserDao"></bean>
<bean id="userService" class="cn.ioc.UserService">
    <!-- 注入dao對象-->
    <property name="userDao" ref="userDao"></property>
</bean>

2.4.4.復(fù)雜類型注入

<!-- 注入復(fù)雜類型屬性值 -->
  <bean id="person" class="cn.property.Person">
    <!-- 數(shù)組 -->
    <property name="arrs">
       <list>
         <value>小王</value>
         <value>小馬</value>
         <value>小宋</value>
       </list>
    </property>
    
    <!-- list -->
    <property name="list">
       <list>
         <value>小奧</value>
         <value>小金</value>
         <value>小普</value>
       </list>      
    </property>

    <!-- map -->
    <property name="map">
       <map>
         <entry key="aa" value="lucy"></entry>
         <entry key="bb" value="mary"></entry>
         <entry key="cc" value="tom"></entry>
       </map>
    </property>

    <!-- properties -->
    <property name="properties">
       <props>
         <prop key="driverclass">com.mysql.jdbc.Driver</prop>
         <prop key="username">root</prop>
       </props>
    </property>
  </bean>
<!--set-->
<property name="set">
            <set>
                <value>LOL</value>
                <value>COC</value>
                <value>WOW</value>
            </set>
</property>
<!--null-->
<property name="marne">
            <null/>
</property>

2.4.5.拓展方式注入

<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"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    https://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

p命名注入 property

<!-- p命名空間注入,可以直接注入屬性的值:property -->
<bean id="User"  class="com.wyl.pojo.User" p:name ="老秦" p:age ="18"/>

c命名空間注入 constructor

<!-- c命名空間注入,通過構(gòu)造器注入:construct-args -->
<bean id="User2" class="com.wyl.pojo.User" c:age="18" c:name="老李"/>

注意點(diǎn):p命名和c命名不能直接使用,需要導(dǎo)入xml約束

2.5.自動裝配

自動裝配是Spring滿足bean依賴的一種方式!Spring會在上下文中自動尋找,并自動給bean裝配屬性。

在Spring中有三種裝配的方式

  1. 在xml中顯示的配置
  2. 在java中顯示配置
  3. 隱式的自動裝配bean

名稱 說明
no 默認(rèn)值,表示不使用自動裝配,Bean 依賴必須通過 ref 元素定義。
byName 根據(jù) Property 的 name 自動裝配,如果一個 Bean 的 name 和另一個 Bean 中的 Property 的 name 相同,則自動裝配這個 Bean 到 Property 中。
byType 根據(jù) Property 的數(shù)據(jù)類型(Type)自動裝配,如果一個 Bean 的數(shù)據(jù)類型兼容另一個 Bean 中 Property 的數(shù)據(jù)類型,則自動裝配。
constructor 類似于 byType,根據(jù)構(gòu)造方法參數(shù)的數(shù)據(jù)類型,進(jìn)行 byType 模式的自動裝配。
autodetect(3.0版本不支持) 如果 Bean 中有默認(rèn)的構(gòu)造方法,則用 constructor 模式,否則用 byType 模式。

2.5.1.byName

<!--
byName:會自動在容器上下文中查找,和自己對象set方法后面的值對應(yīng)的beanid!
-->
<bean id="people" class="com.wyl.pojo.People" autowire="byName">
    <property name="name" value="wangyanling"/>
</bean>

2.5.2.byType

<bean id="cat" class="com.wyl.pojo.Cat"/>
    <bean id="dog" class="com.wyl.pojo.Dog"/>
    <!--
    byName:會自動在容器上下文中查找,和自己對象set方法后面的值對應(yīng)的beanid!
    byType:會自動在容器上下文中查找,和自己對象屬性類型相同的bean!
    -->
    <bean id="people" class="com.wyl.pojo.People" autowire="byType">
        <property name="name" value="WANGAYNLING"/>
    </bean>

2.5.3.注解

jdk1.5支持的注解,Spring2.5就支持注解了!

要使用注解須知:

  1. 導(dǎo)入約束 context約束
  2. 配置注解的支持: context:annotation-config/
<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <context:annotation-config/>

</beans>

@Autowired

@Autowired是按類型自動轉(zhuǎn)配的,不支持id匹配。byType
需要導(dǎo)入 spring-aop的包!
直接在屬性上使用即可!也可以在set方式上使用!

使用Autowired我們可以不用編寫Set方法了,前提是這個自動裝配的屬性在IOC容器中存在,且符合名字byname。

 @Autowired
    private Cat cat;
    @Autowired
    private Dog dog;
@Nullable     // 字段標(biāo)記了這個注解,說明這個字段可以為null

或者 如果顯示定義了Autowired的required 的屬性為false ,說明這個對象可以為null,允許為空

autowired 注解應(yīng)該是只能是別的,當(dāng)注入 在IOC容器中該類型只有一個時,就通過byType進(jìn)行裝配,當(dāng)注入容器存在多個同意類型的對象是,就是根據(jù)byName進(jìn)行裝配

如果@Autowired自動裝配的環(huán)境比較復(fù)雜,自動裝配無法通過一個注解[@Autowired]完成的時候,我們可以使用@Qualifier(value=“XXX”)去配置@Autowired的使用,指定一個唯一的bean對象注入。

@Qualifier

@Autowired是根據(jù)類型自動裝配的,加上@Qualifier則可以根據(jù)byName的方式自動裝配
@Qualifier不能單獨(dú)使用。

public class People {
    private String name;
    @Autowired
    @Qualifier("cat")
    private Cat cat;
    @Autowired
    @Qualifier("dog")
    private Dog dog;
}

@Resource注解

@Resource如有指定的name屬性,先按該屬性進(jìn)行byName方式查找裝配;

其次再進(jìn)行默認(rèn)的byName方式進(jìn)行裝配;

如果以上都不成功,則按byType的方式自動裝配。

都不成功,則報異常。

public class People {
    private String name;
    @Resource(name = "cat")
    private Cat cat;
    @Resource(name = "dog")
    private Dog dog;

小結(jié)

  • @Autowired與@Resource異同:
  • @Autowired與@Resource都可以用來裝配bean。都可以寫在字段上,或?qū)懺趕etter方法上。
  • @Autowired默認(rèn)按類型裝配(屬于spring規(guī)范),默認(rèn)情況下必須要求依賴對象必須存在,如果要允許null 值,可以設(shè)置它的required屬性為false,如:@Autowired(required=false) ,如果我們想使用名稱裝配可以結(jié)合@Qualifier注解進(jìn)行使用
  • @Resource(屬于J2EE復(fù)返),默認(rèn)按照名稱進(jìn)行裝配,名稱可以通過name屬性進(jìn)行指定。如果沒有指定name屬性,當(dāng)注解寫在字段上時,默認(rèn)取字段名進(jìn)行按照名稱查找,如果注解寫在setter方法上默認(rèn)取屬性名進(jìn)行裝配。當(dāng)找不到與名稱匹配的bean時才按照類型進(jìn)行裝配。但是 需要注意的是,如果name屬性一旦指定,就只會按照名稱進(jìn)行裝配。

它們的作用相同都是用注解方式注入對象,但執(zhí)行順序不同。@Autowired先byType,@Resource先byName。

2.6.ioc注解

@注解名稱(屬性名稱=屬性值)

2.6.1. Spring使用的注解大全和解釋

注解 解釋
@Controller 組合注解(組合了@Component注解),應(yīng)用在MVC層(控制層),DispatcherServlet會自動掃描注解了此注解的類,然后將web請求映射到注解了@RequestMapping的方法上。
@Service 組合注解(組合了@Component注解),應(yīng)用在service層(業(yè)務(wù)邏輯層)
@Repository 組合注解(組合了@Component注解),應(yīng)用在dao層(數(shù)據(jù)訪問層)
@Component 表示一個帶注釋的類是一個“組件”,成為Spring管理的Bean。當(dāng)使用基于注解的配置和類路徑掃描時,這些類被視為自動檢測的候選對象。同時@Component還是一個元注解。
@Autowired Spring提供的工具(由Spring的依賴注入工具(BeanPostProcessor、BeanFactoryPostProcessor)自動注入。)
@Resource JSR-250提供的注解
@Inject JSR-330提供的注解
@Configuration 聲明當(dāng)前類是一個配置類(相當(dāng)于一個Spring配置的xml文件)
@ComponentScan 自動掃描指定包下所有使用@Service,@Component,@Controller,@Repository的類并注冊
@Bean 注解在方法上,聲明當(dāng)前方法的返回值為一個Bean。返回的Bean對應(yīng)的類中可以定義init()方法和destroy()方法,然后在@Bean(initMethod=”init”,destroyMethod=”destroy”)定義,在構(gòu)造之后執(zhí)行init,在銷毀之前執(zhí)行destroy。
@Aspect 聲明一個切面(就是說這是一個額外功能)
@After 后置建言(advice),在原方法前執(zhí)行。
@Before 前置建言(advice),在原方法后執(zhí)行。
@Around 環(huán)繞建言(advice),在原方法執(zhí)行前執(zhí)行,在原方法執(zhí)行后再執(zhí)行(@Around可以實現(xiàn)其他兩種advice)
@PointCut 聲明切點(diǎn),即定義攔截規(guī)則,確定有哪些方法會被切入
@Transactional 聲明事務(wù)(一般默認(rèn)配置即可滿足要求,當(dāng)然也可以自定義)
@Cacheable 聲明數(shù)據(jù)緩存
@EnableAspectJAutoProxy 開啟Spring對AspectJ的支持
@Value 值得注入。經(jīng)常與Sping EL表達(dá)式語言一起使用,注入普通字符,系統(tǒng)屬性,表達(dá)式運(yùn)算結(jié)果,其他Bean的屬性,文件內(nèi)容,網(wǎng)址請求內(nèi)容,配置文件屬性值等等
@PropertySource 指定文件地址。提供了一種方便的、聲明性的機(jī)制,用于向Spring的環(huán)境添加PropertySource。與@configuration類一起使用。
@PostConstruct 標(biāo)注在方法上,該方法在構(gòu)造函數(shù)執(zhí)行完成之后執(zhí)行。
@PreDestroy 標(biāo)注在方法上,該方法在對象銷毀之前執(zhí)行。
@Profile 表示當(dāng)一個或多個指定的文件是活動的時,一個組件是有資格注冊的。使用@Profile注解類或者方法,達(dá)到在不同情況下選擇實例化不同的Bean。@Profile(“dev”)表示為dev時實例化。
@EnableAsync 開啟異步任務(wù)支持。注解在配置類上。
@Async 注解在方法上標(biāo)示這是一個異步方法,在類上標(biāo)示這個類所有的方法都是異步方法。
@EnableScheduling 注解在配置類上,開啟對計劃任務(wù)的支持。
@Scheduled 注解在方法上,聲明該方法是計劃任務(wù)。支持多種類型的計劃任務(wù):cron,fixDelay,fixRate
@Conditional 根據(jù)滿足某一特定條件創(chuàng)建特定的Bean
@Enable* 通過簡單的@Enable來開啟一項功能的支持。所有@Enable注解都有一個@Import注解,@Import是用來導(dǎo)入配置類的,這也就意味著這些自動開啟的實現(xiàn)其實是導(dǎo)入了一些自動配置的Bean(1.直接導(dǎo)入配置類2.依據(jù)條件選擇配置類3.動態(tài)注冊配置類)
@RunWith 這個是Junit的注解,springboot集成了junit。一般在測試類里使用:@RunWith(SpringJUnit4ClassRunner.class) — SpringJUnit4ClassRunner在JUnit環(huán)境下提供Sprng TestContext Framework的功能
@ContextConfiguration 用來加載配置ApplicationContext,其中classes屬性用來加載配置類:@ContextConfiguration(classes = {TestConfig.class(自定義的一個配置類)})
@ActiveProfiles 用來聲明活動的profile–@ActiveProfiles(“prod”(這個prod定義在配置類中))
@EnableWebMvc 用在配置類上,開啟SpringMvc的Mvc的一些默認(rèn)配置:如ViewResolver,MessageConverter等。同時在自己定制SpringMvc的相關(guān)配置時需要做到兩點(diǎn):1.配置類繼承WebMvcConfigurerAdapter類2.就是必須使用這個@EnableWebMvc注解。
@RequestMapping 用來映射web請求(訪問路徑和參數(shù)),處理類和方法的。可以注解在類和方法上,注解在方法上的@RequestMapping路徑會繼承注解在類上的路徑。同時支持Serlvet的request和response作為參數(shù),也支持對request和response的媒體類型進(jìn)行配置。其中有value(路徑),produces(定義返回的媒體類型和字符集),method(指定請求方式)等屬性。
@ResponseBody 將返回值放在response體內(nèi)。返回的是數(shù)據(jù)而不是頁面
@RequestBody 允許request的參數(shù)在request體中,而不是在直接鏈接在地址的后面。此注解放置在參數(shù)前。
@PathVariable 放置在參數(shù)前,用來接受路徑參數(shù)。
@RestController 組合注解,組合了@Controller和@ResponseBody,當(dāng)我們只開發(fā)一個和頁面交互數(shù)據(jù)的控制層的時候可以使用此注解。
@ControllerAdvice 用在類上,聲明一個控制器建言,它也組合了@Component注解,會自動注冊為Spring的Bean。
@ExceptionHandler 用在方法上定義全局處理,通過他的value屬性可以過濾攔截的條件:@ExceptionHandler(value=Exception.class)–表示攔截所有的Exception。
@ModelAttribute 將鍵值對添加到全局,所有注解了@RequestMapping的方法可獲得次鍵值對(就是在請求到達(dá)之前,往model里addAttribute一對name-value而已)。
@InitBinder 通過@InitBinder注解定制WebDataBinder(用在方法上,方法有一個WebDataBinder作為參數(shù),用WebDataBinder在方法內(nèi)定制數(shù)據(jù)綁定,例如可以忽略request傳過來的參數(shù)Id等)。
@WebAppConfiguration 一般用在測試上,注解在類上,用來聲明加載的ApplicationContext是一個WebApplicationContext。他的屬性指定的是Web資源的位置,默認(rèn)為src/main/webapp,我們可以修改為:@WebAppConfiguration(“src/main/resources”)。
@EnableAutoConfiguration 此注釋自動載入應(yīng)用程序所需的所有Bean——這依賴于Spring Boot在類路徑中的查找。該注解組合了@Import注解,@Import注解導(dǎo)入了EnableAutoCofigurationImportSelector類,它使用SpringFactoriesLoader.loaderFactoryNames方法來掃描具有META-INF/spring.factories文件的jar包。而spring.factories里聲明了有哪些自動配置。
@SpingBootApplication SpringBoot的核心注解,主要目的是開啟自動配置。它也是一個組合注解,主要組合了@Configurer,@EnableAutoConfiguration(核心)和@ComponentScan??梢酝ㄟ^@SpringBootApplication(exclude={想要關(guān)閉的自動配置的類名.class})來關(guān)閉特定的自動配置。
@ImportResource 雖然Spring提倡零配置,但是還是提供了對xml文件的支持,這個注解就是用來加載xml配置的。例:@ImportResource({“classpath
@ConfigurationProperties 將properties屬性與一個Bean及其屬性相關(guān)聯(lián),從而實現(xiàn)類型安全的配置。例:@ConfigurationProperties(prefix=”authot”,locations={“classpath
@ConditionalOnBean 條件注解。當(dāng)容器里有指定Bean的條件下。
@ConditionalOnClass 條件注解。當(dāng)類路徑下有指定的類的條件下。
@ConditionalOnExpression 條件注解?;赟pEL表達(dá)式作為判斷條件。
@ConditionalOnJava 條件注解。基于JVM版本作為判斷條件。
@ConditionalOnJndi 條件注解。在JNDI存在的條件下查找指定的位置。
@ConditionalOnMissingBean 條件注解。當(dāng)容器里沒有指定Bean的情況下。
@ConditionalOnMissingClass 條件注解。當(dāng)類路徑下沒有指定的類的情況下。
@ConditionalOnNotWebApplication 條件注解。當(dāng)前項目不是web項目的條件下。
@ConditionalOnResource 條件注解。類路徑是否有指定的值。
@ConditionalOnSingleCandidate 條件注解。當(dāng)指定Bean在容器中只有一個,后者雖然有多個但是指定首選的Bean。
@ConditionalOnWebApplication 條件注解。當(dāng)前項目是web項目的情況下。
@EnableConfigurationProperties 注解在類上,聲明開啟屬性注入,使用@Autowired注入。例:@EnableConfigurationProperties(HttpEncodingProperties.class)。
@AutoConfigureAfter 在指定的自動配置類之后再配置。例:@AutoConfigureAfter(WebMvcAutoConfiguration.class)

2.6.1.1.創(chuàng)建對象的注解
  • @Component(標(biāo)注當(dāng)前類是Spring容器中的一個組件)
  • @Repository(一般用于持久層)
  • @Service(一般用于業(yè)務(wù)層)
  • @Controller(一般用于表現(xiàn)層)
2.6.1.2.注入數(shù)據(jù)的注解
  • @Autowired:自動按類型注入,常用在變量上;如果容器中有唯一一個類型與注解的變量類型相同則可以自動注入成功。當(dāng)有多個bean匹配則按照變量名稱去查找,找不到則注入失敗。
  • @Qualifier("userDaoImpl"):結(jié)合@Autowired使用,注入指定名稱的bean;在類的成員變量上不能單獨(dú)使用;在方法參數(shù)里使用可以單獨(dú)使用;
  • @Resource:相當(dāng)于@Autowired自動注入,而@Resource(name="xxx")注入指定的bean,相當(dāng)于同時使用@Autowired和@Qualifier("userDaoImpl")兩個注解。

上面三個注解都只能注入其他的bean類型,不能注入基本數(shù)據(jù)類型和String和復(fù)雜類型;復(fù)雜類型只能通過xml文件來注入。

  • @Value:注入基本數(shù)據(jù)類型和String類型。指定數(shù)據(jù)的值,寫法:${表達(dá)式}。
2.6.1.3.改變作用范圍的注解

@Scope:取值有singleton單例(默認(rèn))和prototype多例

2.6.1.4.和生命周期相關(guān)注解
@PostConstruct
public void init() {
    System.out.println("初始化注解");
}
@PreDestroy
public void destroy() {
    System.out.println("銷毀注解");
}

這兩個注解和bean標(biāo)簽里面的init-method、destroy-method作用相同。

2.6.1.5.新注解
  • @Configuration:作用在類上面標(biāo)明當(dāng)前類是一個配置類
  • @ComponentScan(basePackages = "com.wyl"):掃描包注解:相當(dāng)于下面這一行配置

<!--<context:component-scan base-package="com.wyl"/>-->

  • @Bean:在配置類中寫在方法上,將方法返回的對象注入到Spring容器中。該注解的方法有參數(shù)時,會去容器中找bean對象,跟@Autowired注解一樣的。
  • @PropertySource("classpath:db.properties"):指定數(shù)據(jù)庫配置文件的位置
  • @Import:存在多個配置文件,用該注解引入其他配置文件。
2.6.1.6.Spring測試注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ApplicationConfig.class) 純注解
// @ContextConfiguration(locations = "classpath:ApplicationContext.xml") xml配置文件
public class SpringTest {

    @Autowired
    private AccountServiceImpl accountService;

    @Test
    public void findAll(){
        List<Account> accountList = accountService.findAll();
        for (Account account : accountList) {
            System.out.println(account);
        }
    }
   
}

@RunWith(SpringJUnit4ClassRunner.class):替換掉原來junit的runner執(zhí)行方法,使用Spring自己的執(zhí)行方法。

@ContextConfiguration(classes = ApplicationConfig.class):如果是使用注解創(chuàng)建Spring的容器使用classes;

@ContextConfiguration(locations = "classpath:ApplicationContext.xml"):使用xml配置文件的方法

2.6.2.基于xml方式創(chuàng)建bean

public class User {
    private Integer id;
    private String name;
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans        
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="user" class="com.wyl.bean.User" >
        <property name="id" value="1"></property>
        <property name="name" value="wyl"></property>
    </bean>
</beans>
@test
public void UserTest{
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("Bean.xml");
        User userInfo=(User)context.getBean("user");
        System.out.println(userInfo);
}

2.6.3.基于@Configuration 和@Bean 注解

Configuration 配置類

@Configuration
public class MyTestConfig {
    //bean的id默認(rèn)為方法名
    @Bean
    public User user(){
        User user =new User();
        user.setName("王延領(lǐng)");
        user.setId(2);
        return user;
    }
}
@test
public void UserTest{
    AnnotationConfigApplicationContext context=new 							AnnotationConfigApplicationContext(MyTestConfig.class);
        User userInfo=(User)context.getBean("user");
        System.out.println(userInfo.toString());
        }

3.Spring核心AOP

AOP(Aspect Oriented Programming):面向切面編程,在不修改源代碼的情況下增強(qiáng)代碼的功能。利用AOP可以對業(yè)務(wù)邏輯的各個部分進(jìn)行隔離,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發(fā)的效率。

3.1.AOP實現(xiàn)原理代理模式

代理模式,創(chuàng)建一個代理對象實現(xiàn)和被對代理對象相同的接口,這樣就擁有和被代理對象相同的功能,在這基礎(chǔ)上增強(qiáng)原有的方法。

  • 靜態(tài)代理,手動去實現(xiàn)一個代理類
  • 動態(tài)代理,通過反射動態(tài)的實現(xiàn)代理類

3.1.1 靜態(tài)代理

步驟:

  • 1.抽象角色 : 一般使用接口或者抽象類來實現(xiàn)
public interface Rent {
    public void rent();
}
  • 2.真實角色 : 被代理的角色
public class Host implements Rent{
    @Override
    public void rent() {
        System.out.println("房東出租房子!");
    }
}
  • 3.代理角色 : 代理真實角色 ; 代理真實角色后 , 一般會做一些附屬的操作 .
public class Proxy {
    private Host host;
    public Proxy(){
 
    }
    public Proxy(Host host){
        this.host=host;
    }
    public void rent(){
        seeHouse();
 
        host.rent();
        hetong();
        fare();
    }
    public void seeHouse(){
        System.out.println("中介帶你看房");
    }
    public void fare(){
        System.out.println("收中介費(fèi)!");
    }
    public void hetong(){
        System.out.println("簽租領(lǐng)合同");
    } 
 
}
  • 4.客戶 : 使用代理角色來進(jìn)行一些操作 .
public class Client {
    public static void main(String[] args) {
        Host host=new Host();
        //host.rent();
        Proxy proxy=new Proxy(host);
        proxy.rent();
    }
}

好處:

  1. 可以使得我們的真實角色更加純粹 . 不再去關(guān)注一些公共的事情 .
  2. 公共的業(yè)務(wù)由代理來完成 . 實現(xiàn)了業(yè)務(wù)的分工 ,
  3. 公共業(yè)務(wù)發(fā)生擴(kuò)展時變得更加集中和方便 .

缺點(diǎn) :

  • 類多了 , 多了代理類 , 工作量變大了 . 開發(fā)效率降低 .

我們想要靜態(tài)代理的好處,又不想要靜態(tài)代理的缺點(diǎn),所以 , 就有了動態(tài)代理

3.1.2.動態(tài)代理

動態(tài)代理的代理類是動態(tài)生成的 . 靜態(tài)代理的代理類是我們提前寫好的

動態(tài)代理分為兩類 :

  • 基于接口的動態(tài)代理----JDK動態(tài)代理
//抽象角色:租房
public interface Rent {
    public void rent();
}
//真實角色: 房東,房東要出租房子
public class Host implements Rent{
    public void rent() {
        System.out.println("房屋出租");
    }
}
//代理:中介
public class ProxyInvocationHandler implements InvocationHandler {
    private Rent rent;
 
    public void setRent(Rent rent) {
        this.rent = rent;
    }
 
    //生成代理類,重點(diǎn)是第二個參數(shù),獲取要代理的抽象角色!之前都是一個角色,現(xiàn)在可以代理一類角色
    public Object getProxy(){
        return Proxy.newProxyInstance(this.getClass().getClassLoader(),
                rent.getClass().getInterfaces(),this);
    }
 
    // proxy : 代理類 method : 代理類的調(diào)用處理程序的方法對象.
    // 處理代理實例上的方法調(diào)用并返回結(jié)果
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        seeHouse();
        //核心:本質(zhì)利用反射實現(xiàn)!
        Object result = method.invoke(rent, args);
        fare();
        return result;
    }
 
    //看房
    public void seeHouse(){
        System.out.println("帶房客看房");
    }
    //收中介費(fèi)
    public void fare(){
        System.out.println("收中介費(fèi)");
    }
}
//租客
public class Client {
 
    public static void main(String[] args) {
        //真實角色
        Host host = new Host();
        //代理實例的調(diào)用處理程序
        ProxyInvocationHandler pih = new ProxyInvocationHandler();
        pih.setRent(host); //將真實角色放置進(jìn)去!
        Rent proxy = (Rent)pih.getProxy(); //動態(tài)生成對應(yīng)的代理類!
        proxy.rent();
    }
 
}
  • 基于類的動態(tài)代理–cglib
// 被代理的對象
Account account = new Account();
Account o = (Account) Enhancer.create(account.getClass(), new MethodInterceptor() {
    /**
    * 被代理對象的方法執(zhí)行前會執(zhí)行
    * @param obj 被代理的對象
    * @param method 方法
    * @param objects 參數(shù)
    * @param methodProxy 當(dāng)前執(zhí)行方法的代理的對象
    * @return 和被代理對象的方法相同的返回值
    * @throws Throwable 異常
    */
    @Override
    public Object intercept(Object obj, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("增強(qiáng)前...");
        Object invoke = method.invoke(account, objects);
        System.out.println("增強(qiáng)后...");
        return invoke;
    }
});
o.findAll();

3.2.AOP術(shù)語

  • Joinpoint(連接點(diǎn)):指的是方法,可以被動態(tài)代理增強(qiáng)的方法就是連接點(diǎn),Spring只支持方法類型的連接點(diǎn)
  • Pointcut(切入點(diǎn)):定義要對哪些Joinpoint連接點(diǎn)(方法)進(jìn)行攔截增強(qiáng)功能。被增強(qiáng)的方法叫做切入點(diǎn),所有的方法都可以看做是一個連接點(diǎn)。只有被增強(qiáng)了的方法才叫做切入點(diǎn)。
  • Advice(通知/增強(qiáng)):攔截到Jointpoint(連接點(diǎn))之后要做的事情就是通知。通知的類型:前置通知、后置通知、最終通知、環(huán)繞通知、異常通知。
  • Introduction(引介):一種特殊的通知,在不修改代碼的前提下,可以在運(yùn)行期為類動態(tài)的添加一些方法或字段。
  • Target(目標(biāo)對象):代理的目標(biāo)對象
  • Weaving(織入):是把增強(qiáng) 應(yīng)用到 目標(biāo)對象來創(chuàng)建新的代理對象的過程(添加新功能代碼的過程)。Spring采用的是動態(tài)代理織入,而AspectJ采用編譯期和類裝載織入。
  • Proxy(代理):一個類被AOP織入增強(qiáng)后,就產(chǎn)生一個結(jié)果代理類。
  • Aspect(切面):是切入點(diǎn)和通知(引介)的結(jié)合。

3.3.使用Spring實現(xiàn)Aop

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.4</version>
</dependency>

3.3.1.通過 Spring API 實現(xiàn)

//接口與業(yè)務(wù)
public interface UserService {
 
    public void add();
 
    public void delete();
 
    public void update();
 
    public void search();
 
} 
public class UserServiceImpl implements UserService{
 
    @Override
    public void add() {
        System.out.println("增加用戶");
    }
 
    @Override
    public void delete() {
        System.out.println("刪除用戶");
    }
 
    @Override
    public void update() {
        System.out.println("更新用戶");
    }
 
    @Override
    public void search() {
        System.out.println("查詢用戶");
    }
}
//增強(qiáng)
public class AfterLog implements AfterReturningAdvice {
    //returnValue 返回值
    //method被調(diào)用的方法
    //args 被調(diào)用的方法的對象的參數(shù)
    //target 被調(diào)用的目標(biāo)對象
    @Override
    public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {
        System.out.println("執(zhí)行了" + target.getClass().getName()
        +"的"+method.getName()+"方法,"
        +"返回值:"+returnValue);
    }
}
<?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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">
 
    <!--注冊bean-->
    <bean id="userService" class="com.wyl.service.UserServiceImpl"/>
    <bean id="log" class="com.kuang.log.Log"/>
    <bean id="afterLog" class="com.kuang.log.AfterLog"/>
 
    <!--aop的配置-->
    <aop:config>
        <!--切入點(diǎn)  expression:表達(dá)式匹配要執(zhí)行的方法-->
        <aop:pointcut id="pointcut" expression="execution(* com.wyl.service.UserServiceImpl.*(..))"/>
        <!--執(zhí)行環(huán)繞; advice-ref執(zhí)行方法 . pointcut-ref切入點(diǎn)-->
        <aop:advisor advice-ref="log" pointcut-ref="pointcut"/>
        <aop:advisor advice-ref="afterLog" pointcut-ref="pointcut"/>
    </aop:config>
 
</beans>
public class MyTest {
    @Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        UserService userService = (UserService) context.getBean("userService");
        userService.search();
    }
}

3.3.2.自定義類來實現(xiàn)Aop

//切入類
public class DiyPointcut {
 
    public void before(){
        System.out.println("---------方法執(zhí)行前---------");
    }
    public void after(){
        System.out.println("---------方法執(zhí)行后---------");
    }
    
}
<!--第二種方式自定義實現(xiàn)-->
<!--注冊bean-->
<bean id="diy" class="com.wyl.config.DiyPointcut"/
<!--aop的配置-->
<aop:config>
    <!--第二種方式:使用AOP的標(biāo)簽實現(xiàn)-->
    <aop:aspect ref="diy">
        <aop:pointcut id="diyPonitcut" expression="execution(* com.wyl.service.UserServiceImpl.*(..))"/>
        <aop:before pointcut-ref="diyPonitcut" method="before"/>
        <aop:after pointcut-ref="diyPonitcut" method="after"/>
    </aop:aspect>
</aop:config>
public class MyTest {
    @Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        UserService userService = (UserService) context.getBean("userService");
        userService.add();
    }
}

3.3.3.使用注解實現(xiàn)AOP

//注解實現(xiàn)的增強(qiáng)類
package com.wyl.config;
 
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
 
@Aspect
public class AnnotationPointcut {
    @Before("execution(* com.wyl.service.UserServiceImpl.*(..))")
    public void before(){
        System.out.println("---------方法執(zhí)行前---------");
    }
 
    @After("execution(* com.wyl.service.UserServiceImpl.*(..))")
    public void after(){
        System.out.println("---------方法執(zhí)行后---------");
    }
 
    @Around("execution(* com.wyl.service.UserServiceImpl.*(..))")
    public void around(ProceedingJoinPoint jp) throws Throwable {
        System.out.println("環(huán)繞前");
        System.out.println("簽名:"+jp.getSignature());
        //執(zhí)行目標(biāo)方法proceed
        Object proceed = jp.proceed();
        System.out.println("環(huán)繞后");
        System.out.println(proceed);
    }
}

4.事務(wù)和JdbcTemplate

4.1.JdbcTemplate使用

入門案例:

// Spring自帶的數(shù)據(jù)源
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai");
dataSource.setUsername("root");
dataSource.setPassword("root");
JdbcTemplate template = new JdbcTemplate(dataSource);

List<Account> accountList = template.query("select * from account", new BeanPropertyRowMapper<>(Account.class));
for (Account account : accountList) {
    System.out.println(account);
}

具體增刪改查用法:

@Autowired
private JdbcTemplate jdbcTemplate;

// 添加
@Test
public void insert(){
    String sql = "insert into account(name, money) VALUES (?,?)";
    Account account1 = new Account();
    account1.setName("迪迦");
    account1.setMoney(10000F);
    jdbcTemplate.update(sql, account1.getName(), account1.getMoney());
    find();
}

// 刪除
@Test
public void delete(){
    String sql = "delete from account where id = ?";
    jdbcTemplate.update(sql, 6);
    find();
}

// 更新
@Test
public void update(){
    List<Account> accounts = jdbcTemplate.query("select * from account where id = ?", new BeanPropertyRowMapper<>(Account.class), 1);
    Account account = accounts.get(0);
    account.setName("泰羅");
    String sql = "update account set name = ? where id = ?";
    jdbcTemplate.update(sql, account.getName(),account.getId());
    find();
}

// 查詢所有
@Test
public void find(){
    List<Account> accountList = jdbcTemplate.query("select * from account", new BeanPropertyRowMapper<>(Account.class));
    for (Account account : accountList) {
        System.out.println(account);
    }
}

// 查詢一個bean
@Override
public Account findByName(String name) {
    String sql = "select * from account where name = ?";
    return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Account.class), name);
}

// 查詢一個Object
@Test
public void findOne(){
    String sql = "select count(id) from account";
    Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
    System.out.println(integer);
}

4.2.Spring配置事務(wù)

在Spring中有兩種方法管理事務(wù):聲明式事務(wù)管理和編程式事務(wù)管理;

  • 聲明式事務(wù)管理:

1、xml配置文件式:

1、配置事務(wù)管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/></bean>

2、配置通知
<!-- 配置事務(wù)的通知/增強(qiáng) -->
<tx:advice id="interceptor">
    <!-- 配置事務(wù)的屬性 -->
    <!-- isolation:事務(wù)隔離級別,默認(rèn)使用數(shù)據(jù)庫的隔離級別
         no-rollback-for:指定一個異常,除了該異常都回滾。
         propagation:事務(wù)傳播行為,默認(rèn)是required一定有事務(wù),增刪改設(shè)置required,查詢設(shè)置supports
         read-only:是否只讀。只有查詢才能設(shè)置true。默認(rèn)是false支持讀寫。
         rollback-for:指定一個異常,出現(xiàn)該異常就回滾,其他異常不回滾。
         timeout:事務(wù)超時時間,默認(rèn)-1,永不超時。指定了以秒為單位。 -->
    <tx:attributes>
        <!-- 指定在哪種規(guī)則的方法上添加事務(wù) -->
        <tx:method name="transfer*"/>
    </tx:attributes>
</tx:advice>

3、事務(wù)管理器和切入點(diǎn)表達(dá)式關(guān)聯(lián)起來
<aop:config>
    <!-- service包下所有類的所有方法都添加事務(wù) -->
    <aop:pointcut id="commonPointcut" expression="execution(* com.sample.service.*.*(..))"/>
    <!-- 將事務(wù)管理器和切入點(diǎn)表達(dá)式關(guān)聯(lián)起來 -->
    <aop:advisor advice-ref="interceptor" pointcut-ref="commonPointcut"/>
</aop:config>

2、注解式:

1、配置事務(wù)管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/></bean>

2、開啟對事務(wù)注解的支持
<!-- 開啟對事務(wù)注解的支持 -->
<tx:annotation-driven/>

3、在要添加事物的類上添加注解:@Transactional

3、純注解式

@Configuration
@ComponentScan("com.sample")
// 相當(dāng)于<tx:annotation-driven/>
@EnableTransactionManagement
@PropertySource("classpath:db.properties")
public class AppConfig {

    @Value("${db.driver}")
    private String driver;
    @Value("${db.url}")
    private String url;
    @Value("${db.username}")
    private String username;
    @Value("${db.password}")
    private String password;

    @Bean
    public DruidDataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(){
        return new JdbcTemplate(dataSource());
    }

    @Bean
    public DataSourceTransactionManager transactionManager(){
        return new DataSourceTransactionManager(dataSource());
    }

}

==========
在類上添加@Transactional注解即可
  • 編程式事務(wù)管理:通過代碼去實現(xiàn)事務(wù)的管理,手動開啟事務(wù)、提交、回滾。

到此這篇關(guān)于初學(xué)者,Spring快速入門的文章就介紹到這了,更多相關(guān)Spring 入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用poi獲取不到docx表格中書簽的問題及解決

    Java使用poi獲取不到docx表格中書簽的問題及解決

    這篇文章主要介紹了Java使用poi獲取不到docx表格中書簽的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java超詳細(xì)教你寫一個銀行存款系統(tǒng)案例

    Java超詳細(xì)教你寫一個銀行存款系統(tǒng)案例

    這篇文章主要介紹了怎么用Java來寫一個銀行的存款系統(tǒng),銀行存款主要有賬號和存款金額兩個屬性,感興趣的朋友跟隨文章往下看看吧
    2022-03-03
  • Spring中@Transactional注解的使用詳解

    Spring中@Transactional注解的使用詳解

    @Transactional注解是Spring提供的一種聲明式事務(wù)管理方式,這篇文章主要為大家詳細(xì)介紹了@Transactional注解的原理分析及使用,需要的可以參考一下
    2023-05-05
  • maven setting多倉庫配置方式

    maven setting多倉庫配置方式

    這篇文章主要介紹了maven setting多倉庫配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java Scala數(shù)據(jù)類型與變量常量及類和對象超詳細(xì)講解

    Java Scala數(shù)據(jù)類型與變量常量及類和對象超詳細(xì)講解

    本文內(nèi)容主要分為3節(jié),依次講解:Scala的數(shù)據(jù)類型有哪些? 變量常量如何使用? 類和對象如何理解? 受限于博主的大腦容量,大概是無法做到事無巨細(xì)的,不過其實也沒必要那么"細(xì)",抓住主要脈絡(luò),加上大量的練習(xí),融會貫通只不過是時間的問題
    2022-12-12
  • SpringBoot壓縮png, jpg, jpeg, webp類型圖片的實現(xiàn)代碼

    SpringBoot壓縮png, jpg, jpeg, webp類型圖片的實現(xiàn)代碼

    這篇文章主要介紹了SpringBoot壓縮png, jpg, jpeg, webp類型圖片的實現(xiàn),文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • Mybatis如何使用@Mapper和@MapperScan注解實現(xiàn)映射關(guān)系

    Mybatis如何使用@Mapper和@MapperScan注解實現(xiàn)映射關(guān)系

    這篇文章主要介紹了Mybatis使用@Mapper和@MapperScan注解實現(xiàn)映射關(guān)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot整合Lombok的步驟詳解

    SpringBoot整合Lombok的步驟詳解

    在Java開發(fā)中,我們經(jīng)常需要編寫大量的模板代碼,比如getter和setter方法、構(gòu)造函數(shù)、toString、equals和hashCode等,本文將詳細(xì)介紹如何在Spring Boot項目中整合Lombok,以及Lombok的一些常用注解,需要的朋友可以參考下
    2024-11-11
  • java學(xué)習(xí)之猜數(shù)字小游戲

    java學(xué)習(xí)之猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了java學(xué)習(xí)之猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 23種設(shè)計模式(12)java模版方法模式

    23種設(shè)計模式(12)java模版方法模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計模式之java模版方法模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評論

激情内射在线免费观看| 国产成人精品午夜福利训2021| 午夜激情精品福利视频| 青青青视频自偷自拍38碰| 一级黄色片夫妻性生活| 亚洲1卡2卡三卡4卡在线观看| 99国产精品窥熟女精品| 亚洲高清免费在线观看视频| 91大神福利视频网| 少妇高潮一区二区三区| 中文字幕av熟女人妻| 免费观看丰满少妇做受| 激情小视频国产在线| 国产精品成人xxxx| 美女少妇亚洲精选av| 日本一本午夜在线播放| 97国产在线av精品| 在线视频免费观看网| 欧美性受xx黑人性猛交| lutube在线成人免费看| 国产精品伦理片一区二区| 国产精品大陆在线2019不卡| 午夜久久久久久久99| 99久久久无码国产精品性出奶水 | 亚洲激情偷拍一区二区| japanese日本熟妇另类| 久久精品国产亚洲精品166m| 青青草在观免费国产精品| 日日操夜夜撸天天干| 久久永久免费精品人妻专区 | 久久精品国产999| 美味人妻2在线播放| 中文字幕无码日韩专区免费| 免费看国产av网站| 人妻丝袜精品中文字幕| 国产性色生活片毛片春晓精品 | 中文字幕在线观看国产片| 伊拉克及约旦宣布关闭领空| 91在线视频在线精品3| 中文字幕第1页av一天堂网| 亚洲欧美自拍另类图片| av网址在线播放大全| 福利视频一区二区三区筱慧| 伊人成人在线综合网| 亚洲av黄色在线网站| 男女之间激情网午夜在线| 88成人免费av网站| 综合精品久久久久97| 在线观看免费岛国av| 国产高清精品极品美女| 女生自摸在线观看一区二区三区| 人妻少妇精品久久久久久| 精品久久久久久久久久中文蒉| 视频一区二区综合精品| 精品区一区二区三区四区人妻| 中文字母永久播放1区2区3区| 在线观看视频网站麻豆| 天天干天天操天天爽天天摸| 伊人综合免费在线视频| 美味人妻2在线播放| 亚洲午夜福利中文乱码字幕| 日本免费视频午夜福利视频| 日日夜夜大香蕉伊人| 天堂av狠狠操蜜桃| 五十路在线观看完整版| 国产日韩欧美美利坚蜜臀懂色| 91色网站免费在线观看| 亚洲美女自偷自拍11页| 久久综合老鸭窝色综合久久| 天天干狠狠干天天操| 一区二区三区蜜臀在线| 东京热男人的av天堂| 色在线观看视频免费的| 国产在线观看免费人成短视频| 一级黄色片夫妻性生活| 黄页网视频在线免费观看| 在线观看免费av网址大全| 欧美老鸡巴日小嫩逼| 欧美黄片精彩在线免费观看| 97黄网站在线观看| 夜夜嗨av蜜臀av| 91天堂精品一区二区| 精品黑人一区二区三区久久国产| 青青在线视频性感少妇和隔壁黑丝| 不卡日韩av在线观看| av天堂中文免费在线| 激情啪啪啪啪一区二区三区| 亚洲激情av一区二区| 亚洲第一黄色在线观看| 日韩中文字幕精品淫| jiujiure精品视频在线| 亚洲激情偷拍一区二区| 一级A一级a爰片免费免会员| 欧美日韩激情啪啪啪| 韩国AV无码不卡在线播放| 99精品国产aⅴ在线观看 | 国产无遮挡裸体免费直播视频| 大学生A级毛片免费视频| 日韩国产乱码中文字幕| 制服丝袜在线人妻中文字幕| 成年人该看的视频黄免费| 2020中文字幕在线播放| 国产之丝袜脚在线一区二区三区| 国产午夜激情福利小视频在线| 18禁网站一区二区三区四区| 性色av一区二区三区久久久| 久久久久久久久久一区二区三区| 日韩欧美国产一区不卡| 天天干天天操天天扣| 中文字幕在线观看极品视频| tube69日本少妇| 熟女少妇激情五十路| 99精品视频之69精品视频| 粉嫩av蜜乳av蜜臀| 大屁股熟女一区二区三区| 日视频免费在线观看| 天天干天天日天天干天天操| 最新黄色av网站在线观看| 男人的天堂一区二区在线观看| 91精品国产91久久自产久强| 亚洲日本一区二区久久久精品| 亚洲另类在线免费观看| av亚洲中文天堂字幕网| 在线新三级黄伊人网| av天堂加勒比在线| 成人亚洲国产综合精品| 亚洲精品国偷自产在线观看蜜桃| 中国视频一区二区三区| okirakuhuhu在线观看| 成人色综合中文字幕| 亚洲无码一区在线影院| 日韩欧美一级精品在线观看| 91欧美在线免费观看| 青青青国产免费视频| 日韩精品电影亚洲一区| 爆乳骚货内射骚货内射在线 | 性感美女诱惑福利视频| 精品一区二区三区三区88| 青青青青青操视频在线观看| 福利视频网久久91| 欧美精品伦理三区四区| 日本高清撒尿pissing| 最新中文字幕乱码在线| 欧美视频中文一区二区三区| 激情五月婷婷综合色啪| 国产成人一区二区三区电影网站 | 摧残蹂躏av一二三区| 欧美精品激情在线最新观看视频| 人妻丝袜诱惑我操她视频| 国产精品自拍在线视频| 精品suv一区二区69| 欧美亚洲牲夜夜综合久久| 亚洲偷自拍高清视频| 91九色国产porny蝌蚪| 黄色片年轻人在线观看| 日韩av有码一区二区三区4| 888欧美视频在线| 国产精品国产三级国产午| 精品国产乱码一区二区三区乱| 在线播放国产黄色av| 午夜久久久久久久精品熟女| 亚洲日本一区二区久久久精品| 欧美成人黄片一区二区三区 | 日本一道二三区视频久久| 99精品国产aⅴ在线观看| 国产亚洲欧美视频网站| 一区二区三区av高清免费| 视频一区 二区 三区 综合| 美女福利视频网址导航| 亚洲1卡2卡三卡4卡在线观看| 色爱av一区二区三区| 日韩激情文学在线视频| 91超碰青青中文字幕| 岛国免费大片在线观看| 免费观看污视频网站| rct470中文字幕在线| 久久久久久久久久久免费女人| 国产福利在线视频一区| 中文字幕乱码av资源| 日本丰满熟妇BBXBBXHD| 亚洲欧美一卡二卡三卡| 亚洲区美熟妇久久久久| 色爱av一区二区三区| 天堂av中文在线最新版| 11久久久久久久久久久| 性色蜜臀av一区二区三区| 2020韩国午夜女主播在线| 国产成人精品福利短视频| 国产一级精品综合av| 午夜毛片不卡在线看| 大香蕉伊人国产在线| 熟女人妻三十路四十路人妻斩| 视频在线亚洲一区二区| 天天日天天摸天天爱| 免费在线观看视频啪啪| 亚洲午夜在线视频福利| 免费无码人妻日韩精品一区二区| 精品一区二区三区三区88| 18禁免费av网站| 一区二区三区麻豆福利视频| 国产自拍在线观看成人| 91p0rny九色露脸熟女| 唐人色亚洲av嫩草| 午夜精品久久久久麻豆影视| 免费观看丰满少妇做受| 欧美一区二区三区啪啪同性| 亚洲成人国产综合一区| 午夜在线一区二区免费| 亚洲另类图片蜜臀av| 动色av一区二区三区| 国产女孩喷水在线观看| 又粗又长 明星操逼小视频| 操的小逼流水的文章| 久久久久久性虐视频| 欧美一级片免费在线成人观看| 亚洲久久午夜av一区二区| 国产精品国产三级国产午| 欧美一区二区三区啪啪同性| 在线观看欧美黄片一区二区三区| 国产精品国产三级国产午| 伊人综合aⅴ在线网| 日韩欧美一级精品在线观看| 成人蜜桃美臀九一一区二区三区| 阿v天堂2014 一区亚洲| 五十路熟女人妻一区二| 免费十精品十国产网站| 国产91精品拍在线观看| 色综合天天综合网国产成人| 亚洲av自拍偷拍综合| 国产精品国色综合久久| 免费无毒热热热热热热久| 国产在线一区二区三区麻酥酥 | 玖玖一区二区在线观看| 白嫩白嫩美女极品国产在线观看| 国产一区二区三免费视频| 一区二区三区麻豆福利视频| 久久这里有免费精品| 超污视频在线观看污污污 | 国产一区自拍黄视频免费观看| 人妻无码色噜噜狠狠狠狠色| 国产97在线视频观看| 中文字幕最新久久久| 国产在线观看黄色视频| 2022精品久久久久久中文字幕| 888亚洲欧美国产va在线播放| 日本丰满熟妇大屁股久久| 中文字幕在线永久免费播放| 亚洲成人激情av在线| 视频一区 二区 三区 综合| 色av色婷婷人妻久久久精品高清| 综合精品久久久久97| 日本少妇在线视频大香蕉在线观看 | 91免费黄片可看视频| av手机在线免费观看日韩av| 精品高跟鞋丝袜一区二区| 2o22av在线视频| 中国熟女一区二区性xx| 国产janese在线播放| av在线免费资源站| 三级av中文字幕在线观看| 黄色资源视频网站日韩| 亚洲一级美女啪啪啪| 午夜在线观看岛国av,com| 91老师蜜桃臀大屁股| 亚洲1区2区3区精华液| 五月婷婷在线观看视频免费| 欧美日韩高清午夜蜜桃大香蕉| 午夜成午夜成年片在线观看| 国产高清精品极品美女| 国产福利小视频二区| 91精品国产麻豆国产| 国产精品成久久久久三级蜜臀av| 亚洲国产精品免费在线观看| 午夜精品九一唐人麻豆嫩草成人| 大白屁股精品视频国产| 啪啪啪啪啪啪啪啪啪啪黄色| 国产精品成久久久久三级蜜臀av| 福利午夜视频在线观看| 欧美精品中文字幕久久二区| 亚洲伊人av天堂有码在线| 激情伦理欧美日韩中文字幕| 漂亮 人妻被中出中文| 天天爽夜夜爽人人爽QC| 91精品国产观看免费| 午夜精品在线视频一区| 亚洲国产中文字幕啊啊啊不行了| 国产片免费观看在线观看| 国产老熟女伦老熟妇ⅹ| 韩国女主播精品视频网站| 操的小逼流水的文章| 国产 在线 免费 精品| 亚洲av无乱一区二区三区性色| 日韩精品一区二区三区在线播放| 风流唐伯虎电视剧在线观看 | 男女啪啪视频免费在线观看| 午夜av一区二区三区| 婷婷六月天中文字幕| 干逼又爽又黄又免费的视频| 久久人人做人人妻人人玩精品vr| av中文在线天堂精品| 日本午夜爽爽爽爽爽视频在线观看| 亚洲午夜电影之麻豆| 亚洲精品ww久久久久久| 天天做天天干天天舔| 2020韩国午夜女主播在线| 天天操天天插天天色| 人妻爱爱 中文字幕| 国产熟妇人妻ⅹxxxx麻豆| 激情国产小视频在线| 最新97国产在线视频| 最新91精品视频在线| 人人爱人人妻人人澡39| 阴茎插到阴道里面的视频| 久久精品在线观看一区二区 | 国产刺激激情美女网站| 亚洲一区制服丝袜美腿| 动漫av网站18禁| 都市激情校园春色狠狠| 99热久久这里只有精品| 成人高潮aa毛片免费| 久久久久久久久久久免费女人| 免费一级特黄特色大片在线观看| 免费手机黄页网址大全| 999九九久久久精品| 青青青视频自偷自拍38碰| 最新国产精品拍在线观看| 天天干天天操天天摸天天射| 98精产国品一二三产区区别| 亚洲天天干 夜夜操| 99热国产精品666| 欧美黄色录像免费看的| 99精品国产自在现线观看| 日韩av熟妇在线观看| 在线免费观看靠比视频的网站 | 久久久久久久久久久久久97| 国产福利小视频大全| 亚洲高清视频在线不卡| 一区二区免费高清黄色视频| 中文字幕人妻被公上司喝醉在线| 天堂中文字幕翔田av| 伊人精品福利综合导航| 久草视频在线免播放| 又大又湿又爽又紧A视频| 亚洲 中文 自拍 无码| 青娱乐最新视频在线| 国内精品在线播放第一页| 在线观看视频 你懂的| 亚洲国产免费av一区二区三区| 亚洲精品国产综合久久久久久久久| av在线播放国产不卡| 噜噜色噜噜噜久色超碰| 骚逼被大屌狂草视频免费看| 亚洲天堂精品福利成人av| 免费无毒热热热热热热久| 成人久久精品一区二区三区| 在线免费91激情四射| 一区二区视频视频视频| 亚洲天天干 夜夜操| 国产三级影院在线观看| 都市家庭人妻激情自拍视频| 老司机深夜免费福利视频在线观看| 在线国产中文字幕视频| 久久热久久视频在线观看| 国产精品黄片免费在线观看| 国产日韩精品免费在线| 天天夜天天日天天日| 97色视频在线观看| 韩国男女黄色在线观看| 大鸡巴操b视频在线| 九色精品视频在线播放| 97人妻人人澡爽人人精品| 一级a看免费观看网站| 久久久精品精品视频视频| 农村胖女人操逼视频| 淫秽激情视频免费观看| 亚洲第一伊人天堂网| 91麻豆精品秘密入口在线观看| 福利一二三在线视频观看| 国产揄拍高清国内精品对白| 真实国模和老外性视频| 可以免费看的www视频你懂的| 在线观看视频一区麻豆| 青青青青青青青青青国产精品视频 | 午夜精品九一唐人麻豆嫩草成人| nagger可以指黑人吗| av中文字幕网址在线| 日日操夜夜撸天天干| 色爱av一区二区三区| 久久精品亚洲成在人线a| 欧美偷拍自拍色图片| 日本熟妇色熟妇在线观看| 唐人色亚洲av嫩草| 久久免费看少妇高潮完整版| 男人操女人逼逼视频网站| 一级a看免费观看网站| av在线免费中文字幕| 日本av高清免费网站| 1000部国产精品成人观看视频| 最新欧美一二三视频| 日本一道二三区视频久久| 91九色国产porny蝌蚪| 18禁美女黄网站色大片下载| 天天操天天插天天色| 中文字日产幕乱六区蜜桃| 婷婷久久一区二区字幕网址你懂得| 9l人妻人人爽人人爽| 日韩美在线观看视频黄| 福利午夜视频在线观看| 亚洲国产中文字幕啊啊啊不行了| 蜜臀成人av在线播放| 国产日韩一区二区在线看| 丰满熟女午夜福利视频| 91老师蜜桃臀大屁股| 青娱乐蜜桃臀av色| 一级黄片大鸡巴插入美女| 888欧美视频在线| 91综合久久亚洲综合| 精品成人啪啪18免费蜜臀| 1769国产精品视频免费观看| 亚洲欧美国产麻豆综合| 超级碰碰在线视频免费观看| 九色视频在线观看免费| 亚洲变态另类色图天堂网| 亚洲国产在线精品国偷产拍| 99热色原网这里只有精品| 一级黄片久久久久久久久| 亚洲欧美清纯唯美另类 | 亚洲一级美女啪啪啪| 青青草精品在线视频观看| 亚洲欧美激情中文字幕| 92福利视频午夜1000看 | 欧美日韩不卡一区不区二区| 在线观看操大逼视频| 婷婷久久久综合中文字幕| 91p0rny九色露脸熟女| 搡老熟女一区二区在线观看| 91精品国产高清自在线看香蕉网 | 夜色撩人久久7777| 精品区一区二区三区四区人妻 | 国产va在线观看精品| 国产精品欧美日韩区二区| 小穴多水久久精品免费看| 91社福利《在线观看| 一区二区三区在线视频福利| 国产视频网站一区二区三区| 国产a级毛久久久久精品| 国产剧情演绎系列丝袜高跟| 77久久久久国产精产品| 欧美一区二区三区啪啪同性| 欧美一区二区中文字幕电影 | 亚洲一区二区三区久久受| 黑人大几巴狂插日本少妇| 4个黑人操素人视频网站精品91| 国产白袜脚足J棉袜在线观看| 一级A一级a爰片免费免会员| 欧美一区二区中文字幕电影| av破解版在线观看| 偷拍3456eee| 另类av十亚洲av| 在线视频这里只有精品自拍| yy6080国产在线视频| 亚洲青青操骚货在线视频| 欧美日本国产自视大全| 丝袜国产专区在线观看| 欧美偷拍自拍色图片| 国产卡一卡二卡三乱码手机| 在线观看的a站 最新| 日本精品视频不卡一二三| 日日夜夜大香蕉伊人| 亚洲伊人久久精品影院一美女洗澡| 97色视频在线观看| 国产aⅴ一线在线观看| 大胆亚洲av日韩av| 久久这里有免费精品| 中文字幕日韩91人妻在线| 99精品视频在线观看婷婷| 欧美精品 日韩国产| 抽查舔水白紧大视频| 2022精品久久久久久中文字幕| 色婷婷精品大在线观看| 精品区一区二区三区四区人妻| 美女张开两腿让男人桶av| 中英文字幕av一区| 日本精品视频不卡一二三| 日本xx片在线观看| 亚洲国产香蕉视频在线播放 | 中文字幕一区的人妻欧美日韩| 亚洲另类综合一区小说| 欧美成人黄片一区二区三区 | 综合精品久久久久97| 国产精品国色综合久久 | 啪啪啪啪啪啪啪啪av| 91人妻精品久久久久久久网站| 国产清纯美女al在线| 色综合久久久久久久久中文| 97人妻色免费视频| 岳太深了紧紧的中文字幕| 亚洲av琪琪男人的天堂| 91九色国产熟女一区二区| 午夜免费观看精品视频| 亚洲美女高潮喷浆视频| 亚洲国际青青操综合网站| 自拍偷拍一区二区三区图片| 日韩av大胆在线观看| 欧亚乱色一区二区三区| 毛片一级完整版免费| 偷拍自拍亚洲美腿丝袜| 日韩精品一区二区三区在线播放| 适合午夜一个人看的视频| 精品视频一区二区三区四区五区| 亚洲自拍偷拍精品网| 午夜精品福利91av| 中文字幕亚洲久久久| 午夜国产福利在线观看| 亚洲卡1卡2卡三卡四老狼| 青青青青青操视频在线观看| 中文字幕在线乱码一区二区 | 国产成人精品亚洲男人的天堂| 欧美亚洲偷拍自拍色图| 热思思国产99re| 亚洲高清免费在线观看视频| 国产精品久久久久久美女校花| 日韩av有码一区二区三区4 | 国产高清在线观看1区2区| 久久久久久久亚洲午夜综合福利| 日韩欧美一级黄片亚洲| 五月天色婷婷在线观看视频免费| 亚洲福利精品视频在线免费观看| 亚洲中文字幕国产日韩| 国产亚洲国产av网站在线| 大学生A级毛片免费视频| 亚洲精品午夜aaa久久| 日本免费视频午夜福利视频| 久久精品36亚洲精品束缚| 亚洲久久午夜av一区二区| 中文字母永久播放1区2区3区| 国产高清在线观看1区2区| 激情色图一区二区三区| 在线制服丝袜中文字幕| 日本男女操逼视频免费看| 亚洲 人妻 激情 中文| av久久精品北条麻妃av观看| 午夜大尺度无码福利视频| 在线观看的a站 最新| 欧美日本国产自视大全| 亚洲欧美色一区二区| 色天天天天射天天舔| 欧美麻豆av在线播放| 成人sm视频在线观看| 超碰97人人澡人人| 18禁美女羞羞免费网站| 国产妇女自拍区在线观看| 一区二区在线视频中文字幕| 亚洲精品精品国产综合| 91极品新人『兔兔』精品新作| 韩国女主播精品视频网站| 五月天色婷婷在线观看视频免费| 天天日天天摸天天爱| 91精品国产观看免费| 日本特级片中文字幕| 在线观看av亚洲情色| 影音先锋女人av噜噜色| 97青青青手机在线视频| 班长撕开乳罩揉我胸好爽| 熟女人妻一区二区精品视频| 狠狠躁狠狠爱网站视频| 麻豆精品成人免费视频| 性欧美日本大妈母与子| 亚洲一级 片内射视正片| av手机免费在线观看高潮| 日韩精品啪啪视频一道免费| 久久99久久99精品影院| 亚洲国产欧美一区二区丝袜黑人| 好吊操视频这里只有精品| 国产又粗又硬又猛的毛片视频| 一区二区在线观看少妇| 天天插天天色天天日| 亚洲va国产va欧美va在线| 亚洲国产免费av一区二区三区| 亚洲一级美女啪啪啪| 性色av一区二区三区久久久| 不卡日韩av在线观看| 亚洲精品乱码久久久久久密桃明 | 在线观看日韩激情视频| 欧美xxx成人在线| heyzo蜜桃熟女人妻| 黄色三级网站免费下载| 91精品国产91久久自产久强| 亚洲欧美日韩视频免费观看| caoporn蜜桃视频| 天天干天天操天天插天天日| 精品人妻每日一部精品| 福利午夜视频在线观看| 午夜在线一区二区免费| 免费黄高清无码国产| 可以免费看的www视频你懂的| 日本a级视频老女人| 中文字幕av男人天堂| 亚洲精品乱码久久久本| 午夜激情久久不卡一区二区| 天天色天天爱天天爽| 日本少妇人妻xxxxx18| 成人综合亚洲欧美一区| 中文字幕熟女人妻久久久| 五月精品丁香久久久久福利社| 亚洲伊人久久精品影院一美女洗澡| 亚洲国产成人在线一区| 亚洲成人三级在线播放| 亚洲视频乱码在线观看| 欧美viboss性丰满| 美女张开两腿让男人桶av| 视频一区 二区 三区 综合| 粉嫩欧美美人妻小视频| 一色桃子人妻一区二区三区| 国产精品人妻熟女毛片av久| 40道精品招牌菜特色| 99热99re在线播放| 亚洲av在线观看尤物| 乱亲女秽乱长久久久| 男女之间激情网午夜在线| 不卡一区一区三区在线| 亚洲av在线观看尤物| 99精品视频在线观看婷婷| 中文字幕在线观看国产片| 精品国产高潮中文字幕| 在线网站你懂得老司机| 99久久中文字幕一本人| 中文字幕av第1页中文字幕| 亚洲国产欧美一区二区丝袜黑人| 欧美黑人巨大性xxxxx猛交| 亚洲av成人网在线观看| 91片黄在线观看喷潮| 很黄很污很色的午夜网站在线观看 | 久久www免费人成一看片| 自拍偷拍一区二区三区图片| 在线免费91激情四射 | 精品视频中文字幕在线播放| 亚洲自拍偷拍精品网| 亚洲人妻av毛片在线| 亚洲人妻av毛片在线| 啊啊啊想要被插进去视频| 国产精品视频欧美一区二区| 风流唐伯虎电视剧在线观看| 不戴胸罩引我诱的隔壁的人妻| 免费观看丰满少妇做受| 亚洲综合一区二区精品久久| 亚洲成人国产综合一区| 亚洲在线免费h观看网站| 午夜婷婷在线观看视频| 亚洲国产中文字幕啊啊啊不行了 | 久久www免费人成一看片| 日本在线一区二区不卡视频| 大肉大捧一进一出好爽在线视频 | 3337p日本欧洲大胆色噜噜| 日比视频老公慢点好舒服啊| 欧美怡红院视频在线观看| 婷婷六月天中文字幕| 涩涩的视频在线观看视频| 香蕉91一区二区三区| 美味人妻2在线播放| 欧美男人大鸡吧插女人视频| 韩国AV无码不卡在线播放| 日韩三级电影华丽的外出| 日本少妇在线视频大香蕉在线观看| 人妻熟女在线一区二区| 国产免费av一区二区凹凸四季| 中文字幕—97超碰网| 亚洲精品在线资源站| 99一区二区在线观看| 美女福利写真在线观看视频| 中文字幕午夜免费福利视频| 天天干天天爱天天色| 亚洲精品欧美日韩在线播放| 午夜激情久久不卡一区二区 | 2021国产一区二区| 亚洲国产香蕉视频在线播放 | jiujiure精品视频在线| 美女福利视频导航网站| 中文字幕一区二区亚洲一区| 亚洲国产在人线放午夜| 日韩中文字幕精品淫| 1区2区3区4区视频在线观看| 亚洲天堂精品福利成人av| 一级黄片大鸡巴插入美女| 中文字幕日韩人妻在线三区| 精品一区二区三区欧美| 国产成人精品福利短视频| av手机免费在线观看高潮| 日本后入视频在线观看 | www,久久久,com| 人妻丝袜榨强中文字幕| 国产精品一二三不卡带免费视频 | 午夜福利资源综合激情午夜福利资| 99热99这里精品6国产| 精品亚洲国产中文自在线| 亚洲一区二区三区精品乱码| 大陆胖女人与丈夫操b国语高清| 在线观看操大逼视频| 国产亚洲欧美视频网站| 亚洲欧美自拍另类图片| 18禁污污污app下载| 亚洲女人的天堂av| 伊人开心婷婷国产av| 亚洲国产精品久久久久久6| 亚洲女人的天堂av| 在线免费观看av日韩| 中文字幕最新久久久| 最新国产精品网址在线观看| 色婷婷久久久久swag精品| 97精品视频在线观看| 99精品国产免费久久| 93精品视频在线观看| 国产aⅴ一线在线观看| 国产成人精品亚洲男人的天堂| av完全免费在线观看av| 国产午夜无码福利在线看| 国产精品视频男人的天堂| 国产刺激激情美女网站| 大鸡八强奸视频在线观看| 欧美另类z0z变态| 欧美精品久久久久久影院| 熟妇一区二区三区高清版| 日韩北条麻妃一区在线| 欧美老鸡巴日小嫩逼| 亚洲国产中文字幕啊啊啊不行了 | 啊慢点鸡巴太大了啊舒服视频| 亚洲精品国品乱码久久久久| 色花堂在线av中文字幕九九| 久久久人妻一区二区| 91 亚洲视频在线观看| 老熟妇凹凸淫老妇女av在线观看| 自拍偷拍一区二区三区图片 | 亚洲 人妻 激情 中文| 天天日天天天天天天天天天天| 污污小视频91在线观看| 3344免费偷拍视频| 四川乱子伦视频国产vip| 中出中文字幕在线观看| 专门看国产熟妇的网站| 免费观看丰满少妇做受| 亚洲 清纯 国产com| 国产熟妇人妻ⅹxxxx麻豆| 社区自拍揄拍尻屁你懂的 | 欧美精产国品一二三区| 香港一级特黄大片在线播放| 日日操夜夜撸天天干| 一区二区三区在线视频福利| 亚洲人妻国产精品综合| 超碰97免费人妻麻豆| 亚洲av香蕉一区区二区三区犇| 四虎永久在线精品免费区二区| 三上悠亚和黑人665番号| 亚洲老熟妇日本老妇| 国产精品一区二区三区蜜臀av | 国产精品国产三级麻豆| 亚洲 欧美 精品 激情 偷拍| 亚洲高清国产一区二区三区| 日韩欧美国产精品91| 91精品综合久久久久3d动漫| 顶级尤物粉嫩小尤物网站| 99国产精品窥熟女精品| 可以免费看的www视频你懂的| yellow在线播放av啊啊啊| 亚洲综合图片20p| AV无码一区二区三区不卡| 国产成人精品av网站| 又黄又刺激的午夜小视频| 久久久久久9999久久久久| 欧美成人精品欧美一级黄色| 人妻最新视频在线免费观看| av中文字幕福利网| 国产va在线观看精品| 国产美女一区在线观看| 成人在线欧美日韩国产| 久久这里有免费精品| 天天操天天插天天色| 视频一区 视频二区 视频| 亚洲人妻国产精品综合| 午夜美女福利小视频| 人妻3p真实偷拍一二区| 免费费一级特黄真人片| 一区二区三区美女毛片| 天天综合天天综合天天网| 色综合天天综合网国产成人 | 姐姐的朋友2在线观看中文字幕| 激情五月婷婷综合色啪| 少妇人妻二三区视频| 亚洲Av无码国产综合色区| 国产高清精品一区二区三区| 国产一区av澳门在线观看| 男大肉棒猛烈插女免费视频| 日韩伦理短片在线观看| 精品视频中文字幕在线播放 | 伊人综合免费在线视频| 91p0rny九色露脸熟女| 三级等保密码要求条款| 成年人啪啪视频在线观看| 19一区二区三区在线播放| 亚洲综合一区二区精品久久| 天天色天天舔天天射天天爽| 成人av亚洲一区二区| 精品一区二区三四区| 国产精品久久久久久久久福交| 国产日韩欧美视频在线导航| 人妻少妇av在线观看| 神马午夜在线观看视频| 男女啪啪啪啪啪的网站| 日韩三级黄色片网站| 国产精品自拍在线视频| 在线免费观看av日韩| 大陆av手机在线观看| 天堂女人av一区二区| 国产成人一区二区三区电影网站| 一区二区免费高清黄色视频| 日韩黄色片在线观看网站| 欧洲日韩亚洲一区二区三区| 成人24小时免费视频| 大鸡吧插逼逼视频免费看 | 高清成人av一区三区| 久草福利电影在线观看| 中文字幕国产专区欧美激情| 把腿张开让我插进去视频| 91www一区二区三区| 国产亚洲精品品视频在线| 这里有精品成人国产99| 亚洲免费国产在线日韩| 一区二区三区精品日本| 成人av久久精品一区二区| 天天日天天添天天爽| 小穴多水久久精品免费看| 国产黄色a级三级三级三级| 精品一区二区三四区| 欧美日本国产自视大全| 亚洲 自拍 色综合图| 久久久精品欧洲亚洲av| 中文字幕人妻三级在线观看| 精品区一区二区三区四区人妻| 欧美日本aⅴ免费视频| 夜色福利视频在线观看| 中文字幕中文字幕人妻| 亚洲国产欧美国产综合在线| 欧美日本在线视频一区| 777奇米久久精品一区| 18禁污污污app下载| 男大肉棒猛烈插女免费视频| 亚洲变态另类色图天堂网| 老师啊太大了啊啊啊尻视频| 91免费观看在线网站| 国产精品手机在线看片| 75国产综合在线视频| 亚洲高清一区二区三区视频在线| 国产内射中出在线观看| 免费无毒热热热热热热久| 亚洲一区二区三区在线高清| 亚洲午夜电影之麻豆| 77久久久久国产精产品| 超污视频在线观看污污污| 一区二区三区日韩久久| 国产成人一区二区三区电影网站 | huangse网站在线观看| 成人高清在线观看视频| av手机在线免费观看日韩av| 日韩欧美制服诱惑一区在线| 视频二区在线视频观看| 老司机你懂得福利视频| 国产极品美女久久久久久| 久久h视频在线观看| 亚洲一区二区三区精品乱码| 欧美成人猛片aaaaaaa| av老司机亚洲一区二区| 亚洲免费福利一区二区三区| 日本一区美女福利视频| 白白操白白色在线免费视频| 在线观看视频网站麻豆| 中文字幕第一页国产在线| 久久久久久性虐视频| 天天做天天干天天舔| yy96视频在线观看| 色婷婷综合激情五月免费观看 | 日韩欧美一级aa大片| 中文字幕最新久久久| 99精品视频在线观看婷婷| 免费69视频在线看| 91桃色成人网络在线观看| 欧美日韩熟女一区二区三区| 密臀av一区在线观看| 97精品成人一区二区三区| 97少妇精品在线观看| 日韩美女福利视频网| 久久永久免费精品人妻专区| 97少妇精品在线观看| 美女 午夜 在线视频| 三级等保密码要求条款| 538精品在线观看视频| 午夜在线精品偷拍一区二| 天天做天天干天天舔| 男女啪啪啪啪啪的网站| 北条麻妃高跟丝袜啪啪| 在线不卡成人黄色精品| xxx日本hd高清| 超污视频在线观看污污污 | 亚洲熟女综合色一区二区三区四区| 啪啪啪啪啪啪啪啪av| 天堂av在线最新版在线| 中文字幕无码日韩专区免费| 99精品国产自在现线观看| 午夜在线观看岛国av,com| 青青青青操在线观看免费| 欧美一区二区三区在线资源 | 日本一本午夜在线播放| weyvv5国产成人精品的视频| 99久久中文字幕一本人| 66久久久久久久久久久| 91九色国产porny蝌蚪| 大香蕉大香蕉大香蕉大香蕉大香蕉| 激情五月婷婷免费视频| 一本一本久久a久久精品综合不卡| 一区二区三区另类在线| 18禁免费av网站| 91在线视频在线精品3| 成人18禁网站在线播放| 国产内射中出在线观看| 成人sm视频在线观看| 天干天天天色天天日天天射 | 2022精品久久久久久中文字幕| 夏目彩春在线中文字幕| 18禁美女黄网站色大片下载| 美洲精品一二三产区区别| 青娱乐极品视频青青草| 夫妻在线观看视频91| 久久久精品精品视频视频| 亚洲免费视频欧洲免费视频| 久久久91蜜桃精品ad| 98视频精品在线观看| 粉嫩欧美美人妻小视频| 男人天堂色男人av| 精品av国产一区二区三区四区 | 91she九色精品国产| 中字幕人妻熟女人妻a62v网| 欧美激情电影免费在线| 最新欧美一二三视频| 国产美女一区在线观看| 男人操女人的逼免费视频| 午夜免费体验区在线观看| 天天操天天插天天色| 欧洲亚洲欧美日韩综合| 国产揄拍高清国内精品对白 | 欧美日本在线视频一区| 中文字日产幕乱六区蜜桃 | 亚洲国产欧美一区二区三区久久| 888欧美视频在线| 欧美80老妇人性视频| 色哟哟在线网站入口| 一区二区视频在线观看视频在线| 中文字幕综合一区二区| 亚洲午夜电影在线观看| 亚洲一区制服丝袜美腿 | 端庄人妻堕落挣扎沉沦| 首之国产AV医生和护士小芳| 天天干天天操天天插天天日| 五色婷婷综合狠狠爱| 99精品视频之69精品视频| 五十路熟女人妻一区二区9933| 中文字幕人妻av在线观看| 日韩中文字幕精品淫| 天天插天天狠天天操| 韩国三级aaaaa高清视频| 偷拍自拍国产在线视频| 真实国产乱子伦一区二区| 国产福利小视频免费观看| 在线视频精品你懂的| 99热这里只有精品中文| 婷婷五月亚洲综合在线| 欧美第一页在线免费观看视频| 亚洲最大黄 嗯色 操 啊| 日本精品美女在线观看| 亚洲精品国品乱码久久久久| 免费黄页网站4188| 中文字幕视频一区二区在线观看| 欧美一区二区中文字幕电影 | 97国产在线av精品| 夜色福利视频在线观看| 国产精品3p和黑人大战| 日本在线不卡免费视频| 97少妇精品在线观看| 欧美男人大鸡吧插女人视频| 日本熟妇喷水xxx| 男生用鸡操女生视频动漫| 熟女人妻一区二区精品视频| 91人妻人人做人人爽在线| 免费在线观看污污视频网站| 视频在线亚洲一区二区| 人妻爱爱 中文字幕| 538精品在线观看视频| 日日摸夜夜添夜夜添毛片性色av| 蜜桃精品久久久一区二区| 午夜国产福利在线观看| 欧美偷拍自拍色图片| 日韩欧美一级黄片亚洲| 99热碰碰热精品a中文| 91大屁股国产一区二区| 91免费黄片可看视频| 老鸭窝在线观看一区| 高潮视频在线快速观看国家快速| 日韩二区视频一线天婷婷五| 熟妇一区二区三区高清版| 97小视频人妻一区二区| 国产亚洲欧美另类在线观看| 99视频精品全部15| 精品国产在线手机在线| 欧美一区二区三区啪啪同性| 91老熟女连续高潮对白| 欧美aa一级一区三区四区| 狠狠鲁狠狠操天天晚上干干| 久精品人妻一区二区三区| 国产黑丝高跟鞋视频在线播放| 成人资源在线观看免费官网| 亚洲av极品精品在线观看| 啪啪啪18禁一区二区三区 | av日韩在线观看大全| 日韩熟女系列一区二区三区| 成人亚洲国产综合精品| 欧美伊人久久大香线蕉综合| 美女视频福利免费看| 插小穴高清无码中文字幕| 国产精彩对白一区二区三区 | 午夜av一区二区三区| 99视频精品全部15| 懂色av之国产精品| 日韩伦理短片在线观看| av天堂资源最新版在线看| 中文字幕在线一区精品| 一区二区视频在线观看免费观看| 狠狠操狠狠操免费视频| aⅴ五十路av熟女中出| 日本黄在免费看视频| 中文字幕一区二区三区人妻大片 | 天天操天天插天天色| 欧美专区第八页一区在线播放| 亚洲人成精品久久久久久久| 免费在线福利小视频| 97色视频在线观看| av一本二本在线观看| 伊人日日日草夜夜草| 日韩欧美国产精品91| 91麻豆精品久久久久| 天天干天天插天天谢| asmr福利视频在线观看| 亚洲自拍偷拍精品网| 欧美亚洲免费视频观看| okirakuhuhu在线观看| 国产清纯美女al在线| 亚洲欧美另类自拍偷拍色图| 大香蕉大香蕉大香蕉大香蕉大香蕉| 国产美女一区在线观看| 熟女在线视频一区二区三区| 夜夜操,天天操,狠狠操| 福利在线视频网址导航| 日本少妇高清视频xxxxx| 黑人大几巴狂插日本少妇| 91av精品视频在线| 好吊视频—区二区三区| 午夜频道成人在线91| 精品乱子伦一区二区三区免费播| 亚洲一区二区三区久久午夜| tube69日本少妇| 久久久久久性虐视频| 日韩黄色片在线观看网站| 一区二区麻豆传媒黄片 | 超碰97人人澡人人| 1区2区3区不卡视频| 高潮喷水在线视频观看| 欧美成人小视频在线免费看| 偷青青国产精品青青在线观看| 国产一区二区神马久久| 国产精品中文av在线播放| 亚洲天堂第一页中文字幕| 极品丝袜一区二区三区| av森泽佳奈在线观看| 黄色成人在线中文字幕| 免费在线观看污污视频网站| 狠狠地躁夜夜躁日日躁| 天天干夜夜操啊啊啊| 中文 成人 在线 视频| tube69日本少妇| 日本一道二三区视频久久| 国产综合视频在线看片| 国产 在线 免费 精品| 久久香蕉国产免费天天| 亚洲免费福利一区二区三区| 岛国黄色大片在线观看| 高清成人av一区三区| 888欧美视频在线| 美女在线观看日本亚洲一区| 4个黑人操素人视频网站精品91| 2021年国产精品自拍| 亚洲视频在线观看高清| 午夜大尺度无码福利视频 | 国产精品一区二区三区蜜臀av| 51国产偷自视频在线播放| 亚洲一级av大片免费观看| 不卡精品视频在线观看| 成人亚洲国产综合精品| 成人免费公开视频无毒| 亚洲av无女神免非久久| 国产九色91在线观看精品| 亚洲 中文 自拍 无码| 天天日天天干天天干天天日| 一色桃子久久精品亚洲| 高潮视频在线快速观看国家快速| 亚洲福利午夜久久久精品电影网| 天天干天天爱天天色| 中文字幕av熟女人妻| 中文字幕一区二区三区人妻大片| 中文字幕AV在线免费看 | 欧美黄色录像免费看的| 日本少妇人妻xxxxxhd| 日本在线不卡免费视频| 自拍偷区二区三区麻豆| 午夜精品在线视频一区| 中文字幕第1页av一天堂网| 最新国产亚洲精品中文在线| 日本熟妇丰满厨房55| 2021国产一区二区| 大鸡巴后入爆操大屁股美女| 欧美日本在线观看一区二区 | 中文字幕在线观看国产片| 93人妻人人揉人人澡人人| 婷婷久久一区二区字幕网址你懂得| www天堂在线久久| 国产视频在线视频播放| 日韩欧美一级aa大片| 天天射夜夜操综合网| 国产成人精品午夜福利训2021| 国产精品3p和黑人大战| 欧美久久一区二区伊人| 超碰97人人澡人人| 日韩av大胆在线观看| 久久久久只精品国产三级| 人妻自拍视频中国大陆| 大骚逼91抽插出水视频| 亚洲高清国产自产av| 久久精品亚洲成在人线a| 国产精品中文av在线播放| 国产成人一区二区三区电影网站 | 人人在线视频一区二区| 97人人妻人人澡人人爽人人精品| 日韩特级黄片高清在线看| 天天色天天舔天天射天天爽| 亚洲高清自偷揄拍自拍| 精品国产午夜视频一区二区| 婷婷激情四射在线观看视频| 日韩人妻在线视频免费| 国产精品探花熟女在线观看| 男人的网址你懂的亚洲欧洲av| 一区二区三区久久中文字幕| 色综合天天综合网国产成人| 日韩中文字幕福利av| 伊人成人在线综合网| 亚洲午夜伦理视频在线| 在线免费观看视频一二区| 天天日天天鲁天天操| 日本欧美视频在线观看三区| 国产亚洲视频在线二区| 啊啊啊想要被插进去视频| av天堂中文字幕最新| 成人国产小视频在线观看| 黄色的网站在线免费看| 精品国产高潮中文字幕| 欧美黑人巨大性xxxxx猛交| 天天干狠狠干天天操| 女同性ⅹxx女同hd| av完全免费在线观看av| 亚洲伊人av天堂有码在线| 日韩少妇人妻精品无码专区| 欧美精品 日韩国产| 日本少妇在线视频大香蕉在线观看 | 亚洲精品久久综合久| 天堂av狠狠操蜜桃| 黄片三级三级三级在线观看| 亚洲嫩模一区二区三区| 亚洲超碰97人人做人人爱| 人妻久久无码中文成人| 换爱交换乱高清大片| av日韩在线观看大全| 国产精品中文av在线播放| 中文字幕免费在线免费| 天天艹天天干天天操| 啪啪啪啪啪啪啪啪啪啪黄色| 国产女人被做到高潮免费视频 | 国产伊人免费在线播放| av高潮迭起在线观看| 三上悠亚和黑人665番号| 婷婷午夜国产精品久久久| 亚国产成人精品久久久| 日曰摸日日碰夜夜爽歪歪| 99热这里只有国产精品6| 偷拍自拍福利视频在线观看| 日本18禁久久久久久| 岳太深了紧紧的中文字幕| 黄网十四区丁香社区激情五月天| av手机免费在线观看高潮| 久久永久免费精品人妻专区| 老司机福利精品免费视频一区二区| 久久丁香花五月天色婷婷| 嫩草aⅴ一区二区三区| 亚洲免费视频欧洲免费视频| 午夜毛片不卡在线看| av欧美网站在线观看| 免费在线看的黄网站| 国产九色91在线观看精品| 91免费观看国产免费| 狠狠地躁夜夜躁日日躁| 一区二区三区av高清免费| 亚洲av黄色在线网站| 亚洲精品乱码久久久本| 早川濑里奈av黑人番号| 日韩熟女av天堂系列| 精品久久久久久久久久久久人妻 | 自拍偷拍亚洲精品第2页| 日本一区精品视频在线观看| 亚洲av无硬久久精品蜜桃| 国产1区,2区,3区| 黄色无码鸡吧操逼视频| av天堂资源最新版在线看| 中文字幕最新久久久| 国产福利小视频二区| 久碰精品少妇中文字幕av| 天天日天天舔天天射进去| 精品久久久久久久久久中文蒉| 久久丁香花五月天色婷婷| 亚洲熟女久久久36d| 青青草人人妻人人妻| 初美沙希中文字幕在线| 亚洲第一伊人天堂网| 国产日韩欧美美利坚蜜臀懂色| 亚洲粉嫩av一区二区三区| 日本啪啪啪啪啪啪啪| 欧美香蕉人妻精品一区二区| 91片黄在线观看喷潮| japanese日本熟妇另类| 青青操免费日综合视频观看| 日美女屁股黄邑视频| 最后99天全集在线观看| 熟女少妇激情五十路| 天天干天天操天天爽天天摸| 快点插进来操我逼啊视频| 国产成人自拍视频播放 | 三上悠亚和黑人665番号| 2021国产一区二区| 天天操夜夜操天天操天天操| 国产视频在线视频播放| 一色桃子人妻一区二区三区| 黑人借宿ntr人妻的沦陷2| 青青热久免费精品视频在线观看| 亚洲福利天堂久久久久久| 亚洲在线一区二区欧美| av在线观看网址av| 久久久超爽一二三av| 成人av电影免费版| 日本高清成人一区二区三区| 国产大鸡巴大鸡巴操小骚逼小骚逼| 端庄人妻堕落挣扎沉沦| 免费观看丰满少妇做受| 成人av电影免费版| 成人蜜臀午夜久久一区| 青青青青青手机视频| 亚洲国产香蕉视频在线播放| 日韩影片一区二区三区不卡免费| 午夜福利资源综合激情午夜福利资| 国产精品成久久久久三级蜜臀av | 欧美日韩国产一区二区三区三州| 国产高潮无码喷水AV片在线观看| 午夜美女少妇福利视频| 农村胖女人操逼视频| 亚洲欧美久久久久久久久| 一区二区三区av高清免费| 亚洲精品麻豆免费在线观看| 亚洲中文字幕乱码区| 美女在线观看日本亚洲一区| 久草视频在线免播放| 丝袜肉丝一区二区三区四区在线看| 一区二区三区的久久的蜜桃的视频| 亚洲成人av在线一区二区| av中文字幕福利网| 天堂av在线播放免费| 国产在线观看黄色视频| 日本女大学生的黄色小视频| 久久久久久97三级| 粉嫩av蜜乳av蜜臀| 在线观看国产网站资源| 999九九久久久精品| 1区2区3区不卡视频| 亚洲av无硬久久精品蜜桃| 午夜国产免费福利av| 国产在线观看免费人成短视频| 久碰精品少妇中文字幕av| 久久永久免费精品人妻专区| 2022国产精品视频| 国产欧美精品不卡在线| 果冻传媒av一区二区三区| 精品久久久久久高潮| 伊拉克及约旦宣布关闭领空| 成年人黄色片免费网站| 天天日天天添天天爽| 经典亚洲伊人第一页| 日韩加勒比东京热二区| 亚洲免费国产在线日韩| 亚洲 图片 欧美 图片| 日本人妻少妇18—xx| 超碰中文字幕免费观看| 亚洲日本一区二区久久久精品| 久久艹在线观看视频| 天天躁夜夜躁日日躁a麻豆| 久草电影免费在线观看| 亚洲综合另类精品小说| 91精品高清一区二区三区| 蜜桃臀av蜜桃臀av| 2020韩国午夜女主播在线| 国产精品视频欧美一区二区| 激情国产小视频在线| 国产精品成人xxxx| 欧美国品一二三产区区别| 性生活第二下硬不起来| 国产精品自偷自拍啪啪啪| 免费费一级特黄真人片| 国产三级影院在线观看| 国产一区自拍黄视频免费观看| 无码国产精品一区二区高潮久久4| 大鸡巴操娇小玲珑的女孩逼| 亚洲综合色在线免费观看| 骚逼被大屌狂草视频免费看| asmr福利视频在线观看| 国产精品一区二区久久久av| 美洲精品一二三产区区别| 九色porny九色9l自拍视频| 337p日本大胆欧美人| 1区2区3区4区视频在线观看| 成年女人免费播放视频| 国产综合精品久久久久蜜臀| 国产亚洲视频在线观看| 欧洲亚洲欧美日韩综合| 成人亚洲精品国产精品| 最新国产精品网址在线观看| 大陆胖女人与丈夫操b国语高清| 午夜国产免费福利av| 粉嫩av蜜乳av蜜臀| 任你操视频免费在线观看| 日本熟妇一区二区x x| 成人精品在线观看视频| 可以免费看的www视频你懂的| 久久h视频在线观看| 亚洲国产在线精品国偷产拍| 日本韩国亚洲综合日韩欧美国产| 91试看福利一分钟| 日韩激情文学在线视频| 亚洲伊人av天堂有码在线| 精品一区二区三区三区88| 国产成人一区二区三区电影网站| 天天日天天日天天射天天干| 2022国产精品视频| 亚洲精品一区二区三区老狼| 国产一区成人在线观看视频| 亚洲国产在人线放午夜| 都市激情校园春色狠狠| 中文字幕亚洲久久久| 亚洲 中文 自拍 无码| 亚洲一区二区三区av网站| 精彩视频99免费在线| 午夜激情高清在线观看| 欧美一区二区三区啪啪同性| 啊用力插好舒服视频| 亚洲天堂有码中文字幕视频| 蜜桃专区一区二区在线观看| 亚洲成av人无码不卡影片一| 日韩激情文学在线视频| 一区二区三区久久久91| 福利片区一区二体验区| 91老熟女连续高潮对白| 色花堂在线av中文字幕九九| 真实国产乱子伦一区二区| 日本18禁久久久久久| 大鸡吧插逼逼视频免费看| 中文字幕亚洲久久久| 91精品资源免费观看| 日韩精品中文字幕播放| 免费十精品十国产网站| 自拍偷拍一区二区三区图片| 涩爱综合久久五月蜜臀| 天天干天天插天天谢| 亚洲高清国产拍青青草原| 深夜男人福利在线观看| 日韩近亲视频在线观看| 大陆av手机在线观看| 伊人成人在线综合网| 狠狠操操操操操操操操操| 青青热久免费精品视频在线观看| 狠狠躁狠狠爱网站视频| 在线免费91激情四射 | 久久精品亚洲国产av香蕉| 在线免费91激情四射 | 黄色无码鸡吧操逼视频| 伊人综合免费在线视频| 久久精品视频一区二区三区四区| 国产精品免费不卡av| 91‖亚洲‖国产熟女| 亚洲另类图片蜜臀av| 国产高清97在线观看视频| 沈阳熟妇28厘米大战黑人| 中文字幕第1页av一天堂网| 视频一区二区在线免费播放| 日韩欧美在线观看不卡一区二区| 熟女妇女老妇一二三区| 涩涩的视频在线观看视频| 欧美一区二区三区激情啪啪啪 | 中文字幕 亚洲av| 亚洲熟女久久久36d| 肏插流水妹子在线乐播下载| 最近中文2019年在线看| 欧美80老妇人性视频| 好太好爽好想要免费| 国产揄拍高清国内精品对白 | 黄色中文字幕在线播放| 亚洲一级av无码一级久久精品| 中文字幕中文字幕人妻| 中文字幕日本人妻中出| 9色在线视频免费观看| 把腿张开让我插进去视频| 亚洲欧美清纯唯美另类| 精品suv一区二区69| 黑人性生活视频免费看| 国产精品视频男人的天堂| 农村胖女人操逼视频| 深夜男人福利在线观看| 在线观看一区二区三级| av在线免费资源站| 天堂av在线最新版在线| 男人天堂av天天操| 亚洲伊人久久精品影院一美女洗澡| 亚洲欧美国产综合777| 黑人借宿ntr人妻的沦陷2| 欧美在线偷拍视频免费看| 亚洲 国产 成人 在线| 黄色男人的天堂视频| 狠狠的往里顶撞h百合| 欧美va不卡视频在线观看| 99精品视频在线观看免费播放| 亚洲成人三级在线播放| 瑟瑟视频在线观看免费视频| 亚洲午夜伦理视频在线| 久久永久免费精品人妻专区 | 狠狠躁夜夜躁人人爽天天天天97| 精品黑人巨大在线一区| 在线视频免费观看网| 天天日天天鲁天天操| 人妻少妇亚洲精品中文字幕| 一级A一级a爰片免费免会员| 日本精品一区二区三区在线视频。| 午夜久久久久久久99| 中文字幕亚洲久久久| 伊人精品福利综合导航| 亚洲第一伊人天堂网| 99久久中文字幕一本人| sejizz在线视频| 国产成人精品亚洲男人的天堂| 国产黄网站在线观看播放| www天堂在线久久| 四虎永久在线精品免费区二区| 91国产在线视频免费观看| yy6080国产在线视频| 大黑人性xxxxbbbb| 青青草视频手机免费在线观看| 亚洲一区制服丝袜美腿| 午夜激情久久不卡一区二区| 亚洲专区激情在线观看视频| 日本福利午夜电影在线观看| 啊啊好大好爽啊啊操我啊啊视频| 日本中文字幕一二区视频| 黄色中文字幕在线播放| 一区二区麻豆传媒黄片| tube69日本少妇| 风流唐伯虎电视剧在线观看| 1区2区3区4区视频在线观看| 欧美一级视频一区二区| 日本午夜福利免费视频| 成年人中文字幕在线观看| 真实国模和老外性视频| 1000部国产精品成人观看视频 | 中文字幕综合一区二区| 3344免费偷拍视频| 特级无码毛片免费视频播放| 亚洲2021av天堂| 亚洲av黄色在线网站| 国产精品自拍在线视频| 亚洲高清视频在线不卡| 另类av十亚洲av| 爱爱免费在线观看视频| 日韩激情文学在线视频| 人妻少妇精品久久久久久| 亚洲av无女神免非久久| 夜夜操,天天操,狠狠操| 国产清纯美女al在线| 在线视频精品你懂的| 综合激情网激情五月天| 日本乱人一区二区三区| 国产老熟女伦老熟妇ⅹ| 日本少妇的秘密免费视频| 国产福利小视频二区| aⅴ精产国品一二三产品| 亚洲成人精品女人久久久| 国产精品久久9999| 91免费黄片可看视频| av手机在线观播放网站| 国产精品入口麻豆啊啊啊| 888欧美视频在线| 18禁美女无遮挡免费| 狠狠躁夜夜躁人人爽天天久天啪| 亚洲最大免费在线观看| 99热碰碰热精品a中文| 91久久综合男人天堂| 9l人妻人人爽人人爽| 成年人免费看在线视频| 超级av免费观看一区二区三区| 超碰公开大香蕉97| 黄色片一级美女黄色片| 精品亚洲国产中文自在线| 久久久制服丝袜中文字幕| 好了av中文字幕在线| 一级A一级a爰片免费免会员| 中文字幕一区二区三区蜜月| 欧美aa一级一区三区四区 | 午夜福利人人妻人人澡人人爽| 日韩人妻丝袜中文字幕| 78色精品一区二区三区| 在线视频精品你懂的| 日韩精品中文字幕福利| 丝袜美腿视频诱惑亚洲无| 欧美中文字幕一区最新网址| 中文字幕在线第一页成人 | 黑人借宿ntr人妻的沦陷2| 哥哥姐姐综合激情小说| 亚洲欧美成人综合在线观看| 国产精品午夜国产小视频| 淫秽激情视频免费观看| 男人的网址你懂的亚洲欧洲av| av老司机亚洲一区二区| www久久久久久久久久久| 岛国黄色大片在线观看| 亚洲av色香蕉一区二区三区| 亚洲av香蕉一区区二区三区犇| 在线观看亚洲人成免费网址| 国产又粗又黄又硬又爽| 欧美一区二区三区啪啪同性| 黄色片黄色片wyaa| 老司机福利精品视频在线| 午夜精品久久久久久99热| 91社福利《在线观看| 91 亚洲视频在线观看| av手机免费在线观看高潮| 亚洲青青操骚货在线视频| 亚洲成人国产av在线| av俺也去在线播放| 国产精品国色综合久久 | 日韩激情文学在线视频| 午夜在线观看一区视频| 欧美爆乳肉感大码在线观看| 亚洲日产av一区二区在线| 日韩中文字幕福利av| 日韩精品激情在线观看| 亚洲最大黄 嗯色 操 啊| 888亚洲欧美国产va在线播放| 久久久久久99国产精品| 班长撕开乳罩揉我胸好爽| 日本精品一区二区三区在线视频。 | 黄色大片免费观看网站| 国产女人被做到高潮免费视频| 午夜91一区二区三区| 2020韩国午夜女主播在线| gay gay男男瑟瑟在线网站| 国产黄色高清资源在线免费观看| 人人妻人人爽人人添夜| 国产av福利网址大全| 亚洲高清一区二区三区视频在线| 91一区精品在线观看| 国产精品三级三级三级| 国产亚洲成人免费在线观看| 男人操女人的逼免费视频| 日本啪啪啪啪啪啪啪| 亚洲成人三级在线播放| 天天干天天搞天天摸| aⅴ精产国品一二三产品| 久久久久久久精品成人热| 免费成人av中文字幕| 成年人啪啪视频在线观看| 亚洲中文字幕乱码区| 亚洲综合一区二区精品久久| 亚洲欧洲av天堂综合| 国产露脸对白在线观看| 亚洲高清国产自产av| av视网站在线观看| 黄色成人在线中文字幕| 三级黄色亚洲成人av| 毛片av在线免费看| 18禁美女羞羞免费网站| 青青色国产视频在线| 在线网站你懂得老司机| 亚洲欧美激情人妻偷拍| 国产精品视频欧美一区二区| 亚洲av成人网在线观看| 啊用力插好舒服视频| 精品视频一区二区三区四区五区| 绯色av蜜臀vs少妇| 日韩美女精品视频在线观看网站| 1024久久国产精品| 亚洲va国产va欧美精品88| 国产福利小视频免费观看| 亚洲国产香蕉视频在线播放| 97超碰人人搞人人| 男人的天堂av日韩亚洲| 福利在线视频网址导航| 大鸡吧插逼逼视频免费看| 最新97国产在线视频| 国产日本欧美亚洲精品视| 视频一区二区三区高清在线| 91she九色精品国产| 五十路息与子猛烈交尾视频| 久久久久久久精品成人热| asmr福利视频在线观看| 欧美精品黑人性xxxx| 亚洲一区二区三区久久午夜 | 中文字幕在线观看极品视频| 动漫美女的小穴视频| 蜜桃臀av蜜桃臀av| 亚洲av人人澡人人爽人人爱| 日韩亚洲高清在线观看| 超级碰碰在线视频免费观看| 中文字幕av熟女人妻| 成人精品视频99第一页| 亚洲综合乱码一区二区| 日韩中文字幕福利av| 激情啪啪啪啪一区二区三区 | 亚洲福利精品视频在线免费观看| 粉嫩av蜜乳av蜜臀| 亚洲男人的天堂a在线| 蜜桃色婷婷久久久福利在线| 五色婷婷综合狠狠爱| 极品丝袜一区二区三区| 亚洲一区二区三区久久受| av手机在线免费观看日韩av| 青青青青青操视频在线观看| 国产精品一区二区久久久av| 国产+亚洲+欧美+另类| 亚洲精品乱码久久久久久密桃明 | 欧美在线一二三视频| 中文字幕一区二 区二三区四区 | 91快播视频在线观看| 国产片免费观看在线观看| 亚洲自拍偷拍综合色| 日本美女性生活一级片| av中文字幕在线观看第三页| 亚洲精品一线二线在线观看| www骚国产精品视频| 亚洲熟色妇av日韩熟色妇在线| 精品亚洲在线免费观看| 丝袜美腿欧美另类 中文字幕| 国产成人精品福利短视频| 97人人妻人人澡人人爽人人精品| 亚洲激情唯美亚洲激情图片| 国产亚洲天堂天天一区| 久久久久久97三级| 久久久久久9999久久久久| 亚洲超碰97人人做人人爱| 国产久久久精品毛片| 免费十精品十国产网站| 亚洲免费在线视频网站| weyvv5国产成人精品的视频| 水蜜桃国产一区二区三区| 亚洲综合另类欧美久久| 人妻丝袜诱惑我操她视频| 在线免费观看av日韩| 日本韩国免费一区二区三区视频 | 中文字幕日韩无敌亚洲精品| 在线免费观看日本片| 日噜噜噜夜夜噜噜噜天天噜噜噜| 视频一区二区三区高清在线| 在线免费观看日本片| 护士小嫩嫩又紧又爽20p| 久久久久91精品推荐99| 国产成人精品亚洲男人的天堂| 中文字幕免费在线免费| 香港三日本三韩国三欧美三级| 国产三级片久久久久久久| 男女啪啪啪啪啪的网站| 亚洲精品午夜久久久久| 91啪国自产中文字幕在线| 欧美日本在线视频一区| 日本女人一级免费片| 日韩欧美中文国产在线| 狠狠的往里顶撞h百合| 被大鸡吧操的好舒服视频免费| 亚洲人人妻一区二区三区| 一区二区三区四区视频| 欧美精品黑人性xxxx| 黄色大片免费观看网站| 伊人综合aⅴ在线网| 亚洲成人av一区久久| 视频一区 视频二区 视频| 99av国产精品欲麻豆| 操日韩美女视频在线免费看| 大鸡巴后入爆操大屁股美女| 无码精品一区二区三区人| 激情啪啪啪啪一区二区三区 | 日韩人妻丝袜中文字幕| 中文字幕人妻一区二区视频| caoporm超碰国产| 亚洲成人三级在线播放| 五十路老熟女码av| 久久久久只精品国产三级| 天天操天天操天天碰| 日本一区二区三区免费小视频| 成年美女黄网站18禁久久| 色婷婷久久久久swag精品| 大香蕉日本伊人中文在线| 在线观看av2025| 日本熟女精品一区二区三区| 天天日天天鲁天天操| 中文字幕亚洲久久久| 91人妻精品一区二区久久| 55夜色66夜色国产精品站| 91av精品视频在线| 国产精品国产三级国产午| 天天操,天天干,天天射| 亚洲日产av一区二区在线| 亚洲国产40页第21页| 青青青青在线视频免费观看| 鸡巴操逼一级黄色气| 免费观看丰满少妇做受| 欧美专区第八页一区在线播放| 免费人成黄页网站在线观看国产 | 久久这里有免费精品| 午夜久久久久久久99| 偷偷玩弄新婚人妻h视频| 精彩视频99免费在线| 姐姐的朋友2在线观看中文字幕| 熟女在线视频一区二区三区| 天天日天天干天天搡| 日韩北条麻妃一区在线| 激情内射在线免费观看| 93精品视频在线观看| 国产麻豆91在线视频| 欧美一级色视频美日韩| 国产不卡av在线免费| 日韩欧美中文国产在线| 日韩精品一区二区三区在线播放| 在线观看视频一区麻豆| mm131美女午夜爽爽爽| 天天日天天操天天摸天天舔| 中文字幕乱码人妻电影| 久久久久久久久久性潮| 成人性黑人一级av| 欧美国产亚洲中英文字幕| 国产va精品免费观看| 日本精品视频不卡一二三| 亚洲在线观看中文字幕av| 骚逼被大屌狂草视频免费看| 国产精品精品精品999| 亚洲最大免费在线观看| 黄色大片免费观看网站| 精品国产污污免费网站入口自| 欧美日韩高清午夜蜜桃大香蕉| 人妻另类专区欧美制服| 人妻激情图片视频小说| 精品成人午夜免费看| 护士特殊服务久久久久久久| 亚洲 欧美 精品 激情 偷拍 | 日曰摸日日碰夜夜爽歪歪| 一区二区三区日本伦理| 久草视频在线一区二区三区资源站| 色噜噜噜噜18禁止观看| 97黄网站在线观看| 888欧美视频在线| 国产视频一区二区午夜| 天天日天天鲁天天操| 成人高清在线观看视频| 一区二区在线视频中文字幕| 天码人妻一区二区三区在线看| 2020av天堂网在线观看| 黄色资源视频网站日韩| 久久www免费人成一看片| 亚洲 欧美 精品 激情 偷拍| 一区二区三区四区视频| 很黄很污很色的午夜网站在线观看| 亚洲av日韩av第一区二区三区| 在线观看av观看av| 91九色国产熟女一区二区| 亚洲国产免费av一区二区三区| 97欧洲一区二区精品免费| 91在线免费观看成人| 中文字幕av第1页中文字幕| 最新97国产在线视频| 欧美中国日韩久久精品| 日本18禁久久久久久| 青青青爽视频在线播放| 日韩欧美中文国产在线| 绯色av蜜臀vs少妇| 欧美天堂av无线av欧美| 天天射,天天操,天天说| 1区2区3区4区视频在线观看| 护士小嫩嫩又紧又爽20p| 成年午夜影片国产片| 国产chinesehd精品麻豆| 精品黑人巨大在线一区| 日韩中文字幕在线播放第二页| 夫妻在线观看视频91| 国产在线观看黄色视频| 日本韩国在线观看一区二区| 小穴多水久久精品免费看| 国产伦精品一区二区三区竹菊| 99久久99一区二区三区| 888欧美视频在线| 亚洲精品一区二区三区老狼| 成年午夜影片国产片| 久久这里只有精彩视频免费| 97国产在线av精品| 制服丝袜在线人妻中文字幕| 日本熟妇一区二区x x| 亚洲福利精品视频在线免费观看| 91片黄在线观看喷潮| 日韩伦理短片在线观看| 日比视频老公慢点好舒服啊| 男人天堂最新地址av| 97超碰免费在线视频| 欧美麻豆av在线播放| 清纯美女在线观看国产| 100%美女蜜桃视频| 欧美日韩中文字幕欧美| 阴茎插到阴道里面的视频| 偷拍自拍国产在线视频| 天天日天天日天天擦| 国产实拍勾搭女技师av在线| 免费无码人妻日韩精品一区二区| 自拍偷拍亚洲另类色图| 免费观看理论片完整版| 日韩av免费观看一区| 超碰97人人澡人人| 大鸡巴操娇小玲珑的女孩逼| 欧美中国日韩久久精品| 亚洲免费国产在线日韩| 亚洲av色图18p| 国产一区二区神马久久| 久久人人做人人妻人人玩精品vr| 亚洲中文字幕乱码区| 国产乱子伦精品视频潮优女| 日日日日日日日日夜夜夜夜夜夜| 97精品视频在线观看| 精品乱子伦一区二区三区免费播| 一区二区三区综合视频| 成年人黄视频在线观看| 人妻凌辱欧美丰满熟妇| 美女吃鸡巴操逼高潮视频| 久青青草视频手机在线免费观看 | 在线观看的a站 最新| 日本一二三区不卡无| 中文字幕欧美日韩射射一| 最近的中文字幕在线mv视频| 欧美另类一区二区视频| 中文字幕人妻熟女在线电影| 91极品大一女神正在播放| 97人人模人人爽人人喊| 久久久久久久亚洲午夜综合福利 | 天天操天天干天天艹| 国产不卡av在线免费| 午夜精品福利91av| 少妇露脸深喉口爆吞精| 91国内精品久久久久精品一| 99精品免费观看视频| 人妻丝袜诱惑我操她视频| 蜜桃视频入口久久久| 男人的天堂一区二区在线观看| 亚洲1区2区3区精华液| 亚洲av日韩精品久久久| 亚洲码av无色中文| 不卡一区一区三区在线| 91国产在线免费播放| 偷拍自拍福利视频在线观看| 夏目彩春在线中文字幕| 沈阳熟妇28厘米大战黑人| 熟妇一区二区三区高清版| 中文字幕中文字幕 亚洲国产| 中文字幕在线免费第一页| 亚洲欧美激情人妻偷拍| 亚洲国产40页第21页| rct470中文字幕在线| 自拍 日韩 欧美激情| 精品av久久久久久久| 最新国产亚洲精品中文在线| av在线播放国产不卡| 免费观看丰满少妇做受| 93精品视频在线观看| 青春草视频在线免费播放| 午夜在线观看一区视频| 91天堂精品一区二区| 欧美精品一区二区三区xxxx| 中文字幕日韩无敌亚洲精品| 日本啪啪啪啪啪啪啪| 99精品国自产在线人| 日韩欧美国产一区不卡| 国产av一区2区3区| 国产午夜无码福利在线看| 91国内视频在线观看| 在线观看免费av网址大全| 中文字幕一区二区自拍| 风流唐伯虎电视剧在线观看| 任你操任你干精品在线视频| 人妻另类专区欧美制服| 岛国av高清在线成人在线| 岛国黄色大片在线观看| 中文字幕午夜免费福利视频| av一区二区三区人妻| 国产熟妇乱妇熟色T区| 视频一区 视频二区 视频| 80电影天堂网官网| 99国产精品窥熟女精品| 亚洲卡1卡2卡三卡四老狼| 天天操天天干天天艹| 成人免费公开视频无毒| 超污视频在线观看污污污| 边摸边做超爽毛片18禁色戒 | 国产在线自在拍91国语自产精品| 又粗又长 明星操逼小视频| 熟女视频一区,二区,三区| 一区二区三区另类在线| 国产久久久精品毛片| 自拍偷拍日韩欧美亚洲| 中国产一级黄片免费视频播放| 国产黄色高清资源在线免费观看| 久久久久久久精品成人热| 阿v天堂2014 一区亚洲| 啊慢点鸡巴太大了啊舒服视频| 粉嫩欧美美人妻小视频| 老司机午夜精品视频资源 | 操的小逼流水的文章| 免费观看成年人视频在线观看| 欧美成人猛片aaaaaaa| 黑人乱偷人妻中文字幕| 真实国产乱子伦一区二区| 欧美韩国日本国产亚洲| 国产av自拍偷拍盛宴| 欧美视频不卡一区四区| 亚洲精品午夜久久久久| 亚洲国产精品免费在线观看| 大白屁股精品视频国产| 夜色福利视频在线观看| 99re国产在线精品| 日韩av有码中文字幕| 日韩欧美高清免费在线| 免费手机黄页网址大全| 51国产偷自视频在线播放| 久久免费看少妇高潮完整版| 伊人精品福利综合导航| 亚洲va国产va欧美精品88| 欧美天堂av无线av欧美| 骚货自慰被发现爆操| 大鸡吧插入女阴道黄色片| 成人高清在线观看视频| 亚洲一区二区三区uij| 日韩精品一区二区三区在线播放| 五十路人妻熟女av一区二区| 蝴蝶伊人久久中文娱乐网| 国产精品国色综合久久| 欧美viboss性丰满| 免费观看污视频网站| 午夜精品福利一区二区三区p| 中文字幕AV在线免费看 | 男生舔女生逼逼视频| 天堂av在线最新版在线| 后入美女人妻高清在线| 黄页网视频在线免费观看| 综合国产成人在线观看| 欧美专区日韩专区国产专区| 懂色av之国产精品| 欧美日韩v中文在线| 最新国产精品网址在线观看| 一区二区三区蜜臀在线| 免费无码人妻日韩精品一区二区| 18禁网站一区二区三区四区| 亚洲图库另类图片区| 在线观看视频网站麻豆| 999九九久久久精品| 一区二区三区av高清免费| 伊人成人在线综合网| 亚洲欧美成人综合在线观看| aⅴ精产国品一二三产品| 日韩中文字幕精品淫| 亚洲1卡2卡三卡4卡在线观看 | 亚洲伊人久久精品影院一美女洗澡 | 久草视频中文字幕在线观看| 2020国产在线不卡视频| 99精品国产自在现线观看| 亚洲免费视频欧洲免费视频| 中文字幕第1页av一天堂网 | 懂色av蜜桃a v| 特级无码毛片免费视频播放| 欧美成一区二区三区四区| 天天日天天玩天天摸| 国产精品污污污久久| 大骚逼91抽插出水视频| 91自产国产精品视频| 班长撕开乳罩揉我胸好爽| 熟女人妻一区二区精品视频| 天天操夜夜骑日日摸| 欧美伊人久久大香线蕉综合| 国产黄网站在线观看播放| 亚洲国产40页第21页| av在线观看网址av| 青草青永久在线视频18| 婷婷激情四射在线观看视频| 91麻豆精品秘密入口在线观看| 欧美综合婷婷欧美综合| 青娱乐在线免费视频盛宴| 欧美一区二区三区在线资源| 91she九色精品国产| 视频啪啪啪免费观看| 午夜大尺度无码福利视频| 国产麻豆国语对白露脸剧情| 国产麻豆乱子伦午夜视频观看| 亚洲午夜福利中文乱码字幕| 日本真人性生活视频免费看| 91九色国产porny蝌蚪| 青青青aaaa免费| 三级等保密码要求条款| 国产成人精品一区在线观看| 国产成人一区二区三区电影网站| 亚洲熟女久久久36d| 九色精品视频在线播放| 国产成人自拍视频播放| 亚洲卡1卡2卡三卡四老狼| free性日本少妇| 夜色17s精品人妻熟女| 大香蕉日本伊人中文在线| 精品国产午夜视频一区二区| 中文字幕在线永久免费播放| 黄色在线观看免费观看在线| 91精品啪在线免费| weyvv5国产成人精品的视频| 精品国产在线手机在线| 天天干天天啪天天舔| 免费看国产av网站| 视频久久久久久久人妻| 婷婷久久久综合中文字幕| 91一区精品在线观看| 国产一区自拍黄视频免费观看| 中文字幕1卡1区2区3区| 久久久制服丝袜中文字幕| 337p日本大胆欧美人| 女同互舔一区二区三区| 国产亚洲精品欧洲在线观看| 免费看国产av网站| 国产一级精品综合av| 亚洲福利精品福利精品福利| 视频一区 二区 三区 综合| 好吊视频—区二区三区| 日本韩国免费一区二区三区视频| 馒头大胆亚洲一区二区| 偷拍自拍福利视频在线观看| 淫秽激情视频免费观看| 曰本无码人妻丰满熟妇啪啪| 国产欧美精品一区二区高清| 中文字幕一区二区三区人妻大片| 亚洲人妻av毛片在线| 春色激情网欧美成人| 女生被男生插的视频网站| 又粗又硬又猛又爽又黄的| 换爱交换乱高清大片| 天堂av在线最新版在线| 国产精品精品精品999| 美女在线观看日本亚洲一区| 中文字幕在线永久免费播放| 99人妻视频免费在线| 亚洲卡1卡2卡三卡四老狼| 人人超碰国字幕观看97| 欧美精产国品一二三产品价格| 丰满熟女午夜福利视频| 99久久超碰人妻国产| 午夜毛片不卡在线看| 欧美日韩一级黄片免费观看| 中文字幕奴隷色的舞台50| 日本美女成人在线视频| 亚洲精品一区二区三区老狼| 亚洲精品久久综合久| 亚洲av日韩av网站| 97资源人妻免费在线视频| 青青伊人一精品视频| 视频在线免费观看你懂得| 欧美日韩不卡一区不区二区| 亚洲一区自拍高清免费视频| 美日韩在线视频免费看| 18禁无翼鸟成人在线| 成人av在线资源网站| 日韩一个色综合导航| 91麻豆精品久久久久| 99亚洲美女一区二区三区| 亚洲最大黄 嗯色 操 啊| 久久丁香花五月天色婷婷| 操操网操操伊剧情片中文字幕网| 国产亚洲视频在线观看| 伊人开心婷婷国产av| 国产午夜男女爽爽爽爽爽视频 | 国内精品在线播放第一页| 人妻少妇精品久久久久久| 91亚洲精品干熟女蜜桃频道| av在线资源中文字幕| 丝袜肉丝一区二区三区四区在线看| 亚洲天堂成人在线观看视频网站| 丰满的继坶3中文在线观看| av亚洲中文天堂字幕网| 日本少妇高清视频xxxxx| 天天躁日日躁狠狠躁躁欧美av| 青青色国产视频在线| 性欧美激情久久久久久久| 免费一级黄色av网站| 午夜激情精品福利视频| 午夜91一区二区三区| 97人人模人人爽人人喊| 白嫩白嫩美女极品国产在线观看| 青青草原网站在线观看| 国产chinesehd精品麻豆| 女同性ⅹxx女同h偷拍| 成人午夜电影在线观看 久久| 黄网十四区丁香社区激情五月天| 二区中出在线观看老师| 欧美地区一二三专区| 日韩美av高清在线| 在线观看视频网站麻豆| av在线shipin| 超级碰碰在线视频免费观看| 欧美在线精品一区二区三区视频 | av在线资源中文字幕| 在线免费91激情四射 | 亚洲区美熟妇久久久久| 91色九色porny| 亚洲av日韩精品久久久久久hd| 男人的天堂在线黄色| 青青青青青青青青青青草青青 | 久久精品亚洲国产av香蕉| 国产精品人妻一区二区三区网站| 久久久久久cao我的性感人妻| 老司机你懂得福利视频| 一区二区三区在线视频福利| 亚洲欧美国产麻豆综合| 日本av熟女在线视频| 成人网18免费视频版国产| 国产精品精品精品999| 欧美黑人与人妻精品| 91欧美在线免费观看| av视屏免费在线播放| 97小视频人妻一区二区| 男女啪啪视频免费在线观看| 激情图片日韩欧美人妻| 狠狠地躁夜夜躁日日躁| 亚洲 图片 欧美 图片| 无码日韩人妻精品久久| 91九色国产熟女一区二区| 自拍 日韩 欧美激情| 欧洲日韩亚洲一区二区三区 | 精品91自产拍在线观看一区| 深田咏美亚洲一区二区| 国产黄网站在线观看播放| 极品性荡少妇一区二区色欲| 精品一区二区三区欧美| 蜜桃视频入口久久久| 亚洲国产中文字幕啊啊啊不行了 | 一区二区三区激情在线| 日韩欧美国产精品91| 青草青永久在线视频18| 少妇ww搡性bbb91| 日辽宁老肥女在线观看视频| 可以在线观看的av中文字幕| 少妇与子乱在线观看| 激情国产小视频在线| 男人和女人激情视频| 鸡巴操逼一级黄色气| 99精品国产aⅴ在线观看| 神马午夜在线观看视频| 最新的中文字幕 亚洲| 亚洲国产成人无码麻豆艾秋| 天天日天天玩天天摸| 75国产综合在线视频| 国产视频网站一区二区三区| 日本阿v视频在线免费观看| 国产乱弄免费视频观看| 天天综合天天综合天天网| 偷拍自拍福利视频在线观看| 大香蕉大香蕉在线看| 熟女人妻在线观看视频| 青青草国内在线视频精选| 色97视频在线播放| 91精品国产黑色丝袜| 国产黄色a级三级三级三级| 国产在线一区二区三区麻酥酥 | 美女操逼免费短视频下载链接| 亚洲福利精品视频在线免费观看| AV无码一区二区三区不卡| 国产欧美日韩第三页| 护士特殊服务久久久久久久| 天美传媒mv视频在线观看| 特黄老太婆aa毛毛片| 亚洲综合另类精品小说| 天天操夜夜操天天操天天操| 哥哥姐姐综合激情小说| 好吊视频—区二区三区| 天天操天天爽天天干| 在线免费91激情四射| 青草青永久在线视频18| 在线观看免费视频色97| 午夜dv内射一区区| 午夜福利资源综合激情午夜福利资 | 成人av电影免费版| avjpm亚洲伊人久久| 亚洲美女自偷自拍11页| 青青色国产视频在线| 黄页网视频在线免费观看 | 黄色资源视频网站日韩| 亚洲最大黄 嗯色 操 啊| 欧美日韩人妻久久精品高清国产 | 久碰精品少妇中文字幕av| 黄色无码鸡吧操逼视频| 中文乱理伦片在线观看| 亚洲精品欧美日韩在线播放| 免费人成黄页网站在线观看国产 | 日韩av有码中文字幕| 亚洲变态另类色图天堂网| 亚洲欧美国产综合777| 久久精品视频一区二区三区四区| 又大又湿又爽又紧A视频| 国产亚洲欧美另类在线观看| 91p0rny九色露脸熟女| 精品国产乱码一区二区三区乱| 国产欧美日韩第三页| 99久久中文字幕一本人| 摧残蹂躏av一二三区| 国产精品人久久久久久| 国产janese在线播放| 丝袜肉丝一区二区三区四区在线 | 国产精品久久久久网| 国产黄色片在线收看| 免费啪啪啪在线观看视频| 国产成人精品一区在线观看| 成人24小时免费视频| 在线观看的a站 最新| 国产黄色a级三级三级三级| 久久精品国产23696| 自拍偷拍一区二区三区图片| 岛国黄色大片在线观看| 国产女人被做到高潮免费视频| 中文字幕在线乱码一区二区| 天天日天天舔天天射进去| 天天日天天日天天擦| lutube在线成人免费看| 馒头大胆亚洲一区二区| 美女在线观看日本亚洲一区| 福利午夜视频在线观看| 免费在线黄色观看网站| 天天日天天操天天摸天天舔| 专门看国产熟妇的网站| 午夜精品一区二区三区城中村| 成年人黄色片免费网站| 天堂av中文在线最新版| 婷婷久久一区二区字幕网址你懂得| 青青青爽视频在线播放| 久久久久久97三级| 视频在线亚洲一区二区| 97精品综合久久在线| 亚洲中文字幕校园春色| 91高清成人在线视频| 亚洲伊人色一综合网| 强行扒开双腿猛烈进入免费版| 91精品国产高清自在线看香蕉网| rct470中文字幕在线| 国产黄网站在线观看播放| 日韩欧美中文国产在线| 姐姐的朋友2在线观看中文字幕| 天天日天天干天天舔天天射| 国产精品黄色的av| 亚洲午夜福利中文乱码字幕| 熟女人妻在线中出观看完整版| 91社福利《在线观看| yy96视频在线观看| 亚洲精品av在线观看| av中文字幕网址在线| 桃色视频在线观看一区二区| 亚洲 国产 成人 在线| 人妻3p真实偷拍一二区| 阴茎插到阴道里面的视频| 青青草视频手机免费在线观看| 啊慢点鸡巴太大了啊舒服视频| 国产麻豆国语对白露脸剧情| 日本性感美女三级视频| 超碰在线观看免费在线观看| 久久这里只有精品热视频| 成年午夜免费无码区| 日本男女操逼视频免费看| 久久香蕉国产免费天天| 国产综合精品久久久久蜜臀| 亚洲免费视频欧洲免费视频| 亚洲免费福利一区二区三区| av久久精品北条麻妃av观看| 亚洲va天堂va国产va久| 中文字幕第三十八页久久 | 精品久久久久久高潮| 蜜桃专区一区二区在线观看| 青青青青操在线观看免费| 熟女人妻在线中出观看完整版| 九色porny九色9l自拍视频| 在线免费观看欧美小视频| 日本黄色三级高清视频| 大香蕉大香蕉在线看| 2022国产精品视频| 99精品亚洲av无码国产另类| av老司机亚洲一区二区| 亚洲av色香蕉一区二区三区| 日本性感美女三级视频| v888av在线观看视频| 国产又色又刺激在线视频| 99视频精品全部15| 国产又色又刺激在线视频| 午夜久久香蕉电影网| 国产视频一区在线观看| 91色老99久久九九爱精品| 国产精品黄片免费在线观看| 国产亚洲国产av网站在线| 日本成人不卡一区二区| 日日夜夜狠狠干视频| 欧洲日韩亚洲一区二区三区| 欧美精品一二三视频| 日本xx片在线观看| 日本午夜爽爽爽爽爽视频在线观看| av乱码一区二区三区| 在线国产精品一区二区三区| 国产97视频在线精品| 欲乱人妻少妇在线视频裸| 精品国产在线手机在线| 99精品免费观看视频| 国产白袜脚足J棉袜在线观看| 国产成人自拍视频播放 | 毛片一级完整版免费| 人人妻人人爽人人添夜| 欧美日本国产自视大全| 免费黄色成人午夜在线网站| 国产精品午夜国产小视频| 久久久久久久一区二区三| 日韩欧美一级aa大片| 欧美aa一级一区三区四区| 狠狠鲁狠狠操天天晚上干干| 日本人妻少妇18—xx| 97精品视频在线观看| 99精品视频在线观看免费播放| 国产黄色a级三级三级三级 | 亚洲图库另类图片区| 福利视频广场一区二区| 孕妇奶水仑乱A级毛片免费看| 亚洲国产欧美一区二区三区…| 一级黄色片夫妻性生活| 自拍偷拍亚洲精品第2页| 国产精品人妻熟女毛片av久| 欧美亚洲牲夜夜综合久久| 丝袜美腿欧美另类 中文字幕| 久青青草视频手机在线免费观看| 中文字幕人妻一区二区视频| 天天日天天干天天要| 男人的天堂在线黄色| av一区二区三区人妻| 男人在床上插女人视频| 四川五十路熟女av| 爱有来生高清在线中文字幕| 青青草精品在线视频观看| 黄色片黄色片wyaa| 伊人情人综合成人久久网小说| 精品成人午夜免费看| 精品首页在线观看视频| 免费成人av中文字幕| 四川五十路熟女av| 青青社区2国产视频| 亚洲中文字幕国产日韩| 亚洲女人的天堂av| 日韩激情文学在线视频| 久久麻豆亚洲精品av| 亚洲在线免费h观看网站| 51国产偷自视频在线播放| 成人国产小视频在线观看| 亚洲图库另类图片区| 青青伊人一精品视频| 91国产在线免费播放| 日曰摸日日碰夜夜爽歪歪| japanese日本熟妇另类| 韩国三级aaaaa高清视频| 在线播放一区二区三区Av无码| 国产成人精品一区在线观看| 经典亚洲伊人第一页| 天天干天天插天天谢| 伊人综合aⅴ在线网| 黄页网视频在线免费观看| 亚洲精品在线资源站| 天天日天天日天天射天天干| 美女福利视频导航网站| 天天日天天透天天操| 自拍偷拍一区二区三区图片| 国产97视频在线精品| 亚洲 中文 自拍 另类 欧美| 午夜极品美女福利视频| 人人妻人人澡欧美91精品| 日本一区二区三区免费小视频| 专门看国产熟妇的网站| av乱码一区二区三区| 国产精品黄大片在线播放| 99国内精品永久免费视频| 顶级尤物粉嫩小尤物网站| av中文字幕在线导航| 天天射,天天操,天天说| 熟女人妻一区二区精品视频| 岛国一区二区三区视频在线| 啊慢点鸡巴太大了啊舒服视频| 亚洲精品福利网站图片| 热久久只有这里有精品| 国产女孩喷水在线观看| 五月婷婷在线观看视频免费| 日本在线不卡免费视频| 欧美精品 日韩国产| 青草久久视频在线观看|