国产无遮挡裸体免费直播视频,久久精品国产蜜臀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

最新評論

免费看国产又粗又猛又爽又黄视频| 在线免费观看靠比视频的网站| 中国无遮挡白丝袜二区精品| 亚洲国际青青操综合网站| 日韩精品中文字幕福利| 少妇一区二区三区久久久| 欧美黄色录像免费看的| 欧美性感尤物人妻在线免费看| 国产九色91在线视频| 爱爱免费在线观看视频| asmr福利视频在线观看| 久久久精品国产亚洲AV一| 日本特级片中文字幕| 人妻丝袜av在线播放网址| 色在线观看视频免费的| 99国内小视频在现欢看| 国产使劲操在线播放| 视频久久久久久久人妻| 日本少妇人妻xxxxxhd| 亚洲成人黄色一区二区三区| 99久久超碰人妻国产| 国产av一区2区3区| 丁香花免费在线观看中文字幕| 亚洲天堂精品福利成人av| 中文字幕,亚洲人妻| 9久在线视频只有精品| 欧美成人黄片一区二区三区| 国产精品污污污久久| 国产精品熟女久久久久浪潮| 国产精品国产三级国产精东| 亚洲av成人网在线观看| 91精品视频在线观看免费| 乱亲女秽乱长久久久| 日韩欧美亚洲熟女人妻| 色97视频在线播放| 色天天天天射天天舔| 激情五月婷婷免费视频| 青青青青青手机视频| 国产熟妇乱妇熟色T区| 精品一区二区亚洲欧美| 欧美成人小视频在线免费看| sspd152中文字幕在线| 成人伊人精品色xxxx视频| av视屏免费在线播放| av网址国产在线观看| 一区二区三区四区中文| 亚洲欧洲一区二区在线观看| 久久精品亚洲成在人线a| 精品一线二线三线日本| 在线亚洲天堂色播av电影| 国产91精品拍在线观看| 久久丁香婷婷六月天| 欧美日韩一级黄片免费观看| 亚洲av无硬久久精品蜜桃| 99久久成人日韩欧美精品| aⅴ精产国品一二三产品| 日本少妇的秘密免费视频| 瑟瑟视频在线观看免费视频| 免费大片在线观看视频网站| 大陆胖女人与丈夫操b国语高清| 亚洲公开视频在线观看| yy96视频在线观看| 一区二区三区日本伦理| 一区二区视频视频视频| 亚洲2021av天堂| 在线观看日韩激情视频| 爆乳骚货内射骚货内射在线 | 亚洲视频在线视频看视频在线| 黄工厂精品视频在线观看| 国产精品成久久久久三级蜜臀av| 天天日夜夜干天天操| 色综合色综合色综合色| 18禁美女无遮挡免费| 中文字幕一区二区人妻电影冢本 | 亚洲精品无码色午夜福利理论片| 成年人黄视频在线观看| 成人蜜臀午夜久久一区| 无码日韩人妻精品久久| 青青草在观免费国产精品| 9色在线视频免费观看| 蜜桃视频在线欧美一区| 国产精品系列在线观看一区二区| 操人妻嗷嗷叫视频一区二区| 综合国产成人在线观看| 欧美专区第八页一区在线播放| 开心 色 六月 婷婷| 亚洲狠狠婷婷综合久久app| 特大黑人巨大xxxx| 天天躁日日躁狠狠躁躁欧美av| 欧美亚洲偷拍自拍色图| 色吉吉影音天天干天天操| 极品丝袜一区二区三区| 绝顶痉挛大潮喷高潮无码| 天天日天天操天天摸天天舔| weyvv5国产成人精品的视频| 国产白嫩美女一区二区| 国内精品在线播放第一页| 亚洲日本一区二区久久久精品| 亚洲1卡2卡三卡4卡在线观看 | 免费无毒热热热热热热久| 99精品视频之69精品视频 | 在线网站你懂得老司机| 家庭女教师中文字幕在线播放| 国产免费av一区二区凹凸四季| 亚洲国产欧美一区二区丝袜黑人| 亚洲国产成人在线一区| 狠狠躁夜夜躁人人爽天天久天啪| 在线网站你懂得老司机| 美女av色播在线播放| 欧美爆乳肉感大码在线观看| 日韩美在线观看视频黄| 午夜精品福利91av| 天天通天天透天天插| 黄色视频在线观看高清无码 | 精品国产成人亚洲午夜| 亚洲老熟妇日本老妇| 亚洲天堂精品福利成人av| 熟女少妇激情五十路| 18禁无翼鸟成人在线| 国产免费高清视频视频| 青青草成人福利电影| 亚洲熟妇久久无码精品| 天天日夜夜操天天摸 | 熟女人妻一区二区精品视频| av天堂加勒比在线| 和邻居少妇愉情中文字幕| 亚洲成人av在线一区二区| 精品亚洲中文字幕av| 在线观看视频网站麻豆| 天天日天天鲁天天操| 久久久精品精品视频视频| 青青草国内在线视频精选| 福利视频一区二区三区筱慧| 亚洲自拍偷拍综合色| 五月色婷婷综合开心网4438| 特级欧美插插插插插bbbbb| 国产一区二区欧美三区| 自拍偷拍一区二区三区图片| 青春草视频在线免费播放| 日本黄色特一级视频| 国产一区二区火爆视频| 欧美日韩情色在线观看| 孕妇奶水仑乱A级毛片免费看| 一级黄色片夫妻性生活| 农村胖女人操逼视频| 精内国产乱码久久久久久| 精品一区二区三区欧美| 亚洲图库另类图片区| 国产综合视频在线看片| 日本欧美视频在线观看三区| 国产精品精品精品999| av天堂资源最新版在线看| 在线观看视频 你懂的| 亚洲国产香蕉视频在线播放 | 婷婷六月天中文字幕| 中文字幕第一页国产在线| 午夜成午夜成年片在线观看| 一个人免费在线观看ww视频| 日本脱亚入欧是指什么| 91亚洲精品干熟女蜜桃频道| 午夜国产福利在线观看| 福利一二三在线视频观看| 日韩二区视频一线天婷婷五| 无套猛戳丰满少妇人妻| 亚洲午夜在线视频福利| 欧美区一区二区三视频| 精品91自产拍在线观看一区| 成人影片高清在线观看| 91九色porny国产在线| 国产视频在线视频播放| 国产精品视频男人的天堂| 精品国产乱码一区二区三区乱| 久久香蕉国产免费天天| 中文字幕 亚洲av| www骚国产精品视频| 国产精品人妻66p| 欧美亚洲免费视频观看| 亚洲精品麻豆免费在线观看| 中文字幕免费福利视频6| 19一区二区三区在线播放| 国产精品三级三级三级| 91试看福利一分钟| 亚洲日产av一区二区在线| 国产麻豆乱子伦午夜视频观看| 日本特级片中文字幕| 成年人黄视频在线观看| 熟女妇女老妇一二三区| 亚洲中文字幕综合小综合| 亚洲一区二区激情在线| 国产无遮挡裸体免费直播视频| 中文字幕一区二区三区人妻大片| 99亚洲美女一区二区三区| av乱码一区二区三区| 国产精品人妻熟女毛片av久| 又大又湿又爽又紧A视频| 人妻少妇亚洲精品中文字幕| 性感美女高潮视频久久久| 国产超码片内射在线| 亚洲午夜高清在线观看| 福利视频网久久91| 亚洲中文字幕校园春色| aiss午夜免费视频| 姐姐的朋友2在线观看中文字幕| 91试看福利一分钟| 欧美一区二区三区乱码在线播放 | 午夜久久久久久久99| 日比视频老公慢点好舒服啊| 色花堂在线av中文字幕九九| 少妇人妻久久久久视频黄片| 中文字幕免费在线免费| 国产精品久久综合久久| 国产亚洲欧美视频网站| 成人区人妻精品一区二视频| 亚洲一区二区三区精品乱码| 日本精品视频不卡一二三| 性感美女高潮视频久久久| 在线播放 日韩 av| 久久丁香婷婷六月天| 青青青青青操视频在线观看| 久久这里有免费精品| sspd152中文字幕在线| 极品性荡少妇一区二区色欲| 国产精品亚洲在线观看| 人妻少妇性色欲欧美日韩| 亚洲精品午夜aaa久久| 日本a级视频老女人| 国产精品免费不卡av| 又色又爽又黄的美女裸体| 国产成人自拍视频播放| 2022国产综合在线干| 国产精品成久久久久三级蜜臀av| 福利视频网久久91| 精品高跟鞋丝袜一区二区| 黄色片一级美女黄色片| 欧美精品亚洲精品日韩在线| 超黄超污网站在线观看| 日韩精品中文字幕福利| 久久久制服丝袜中文字幕| 18禁免费av网站| 红桃av成人在线观看| 婷婷久久久综合中文字幕| 国产一区二区神马久久| 绝顶痉挛大潮喷高潮无码| 亚洲人一区二区中文字幕| 免费在线福利小视频| 中文字幕日韩无敌亚洲精品| 首之国产AV医生和护士小芳| 久久精品国产23696| 男人的天堂av日韩亚洲| 国产美女精品福利在线| gogo国模私拍视频| 岛国黄色大片在线观看| 色噜噜噜噜18禁止观看| 男人天堂色男人av| 欧美成人一二三在线网| 国产精品久久久久久久女人18| 中文字幕在线视频一区二区三区| 亚洲 中文字幕在线 日韩| 丝袜长腿第一页在线| 大陆胖女人与丈夫操b国语高清| 麻豆性色视频在线观看| 久久久噜噜噜久久熟女av| 国产精品三级三级三级| 视频二区在线视频观看| 日韩欧美制服诱惑一区在线| 成人午夜电影在线观看 久久| 国产久久久精品毛片| 在线观看一区二区三级| 日韩美女综合中文字幕pp| 亚洲在线免费h观看网站| 午夜福利资源综合激情午夜福利资| 91啪国自产中文字幕在线| 日韩a级精品一区二区| 午夜福利人人妻人人澡人人爽| 神马午夜在线观看视频| 精品亚洲在线免费观看| 2021最新热播中文字幕| 初美沙希中文字幕在线| 桃色视频在线观看一区二区 | 红杏久久av人妻一区| 国产极品精品免费视频| 一区二区三区久久久91| 中国视频一区二区三区| 91精品高清一区二区三区| 一色桃子久久精品亚洲| 亚洲精品色在线观看视频| 激情色图一区二区三区| 国产精品污污污久久| 日本特级片中文字幕| 日本最新一二三区不卡在线 | 97资源人妻免费在线视频| 亚洲最大免费在线观看| 午夜成午夜成年片在线观看| 做爰视频毛片下载蜜桃视频1 | 青青青青青操视频在线观看| 久久久久久久亚洲午夜综合福利 | 天天日夜夜干天天操| 青青青青青青青青青国产精品视频| 一区二区熟女人妻视频| 在线新三级黄伊人网| 日本后入视频在线观看| 红杏久久av人妻一区| 中文字幕一区二区人妻电影冢本 | 亚洲一区二区三区av网站| 日韩近亲视频在线观看| 亚洲男人让女人爽的视频| 亚洲成人线上免费视频观看| 国产精品人久久久久久| chinese国产盗摄一区二区| 亚洲欧美自拍另类图片| 中文字幕av熟女人妻| 亚洲精品 日韩电影| 国内资源最丰富的网站| 班长撕开乳罩揉我胸好爽| 五月婷婷在线观看视频免费 | 欧美日韩一级黄片免费观看| 少妇一区二区三区久久久| av老司机亚洲一区二区| 亚洲欧美国产麻豆综合| 久草免费人妻视频在线| 动色av一区二区三区| 视频一区 二区 三区 综合| 欲满人妻中文字幕在线| av新中文天堂在线网址| 最新国产亚洲精品中文在线| 少妇与子乱在线观看| 99热这里只有精品中文| 自拍偷区二区三区麻豆| 亚洲激情唯美亚洲激情图片| 绯色av蜜臀vs少妇| 超碰公开大香蕉97| 日本裸体熟妇区二区欧美| 白白操白白色在线免费视频| 中国熟女@视频91| 日韩美女精品视频在线观看网站| 一个色综合男人天堂| 都市家庭人妻激情自拍视频| 少妇人妻久久久久视频黄片| 2018在线福利视频| 午夜美女福利小视频| 青青尤物在线观看视频网站| 色花堂在线av中文字幕九九| 欧美日韩一级黄片免费观看| 国产精品国产三级国产精东 | 99久久99久国产黄毛片| 91综合久久亚洲综合| 国产欧美日韩在线观看不卡| 亚洲成人精品女人久久久| 深田咏美亚洲一区二区| 黑人巨大精品欧美视频| 91精品综合久久久久3d动漫 | 日韩a级黄色小视频| 中文字幕一区二区亚洲一区| 一色桃子人妻一区二区三区| 蜜桃色婷婷久久久福利在线| 啊啊好大好爽啊啊操我啊啊视频| 免费观看理论片完整版| 精品一区二区三区三区色爱| 在线观看一区二区三级| 夜色17s精品人妻熟女| 美女日逼视频免费观看| 欧美中文字幕一区最新网址| 国产又粗又硬又大视频| 国产又粗又猛又爽又黄的视频在线| 欧美熟妇一区二区三区仙踪林| 97超碰免费在线视频| 福利视频网久久91| 538精品在线观看视频| 大鸡吧插入女阴道黄色片| 超碰97人人澡人人| 亚洲图片欧美校园春色| sw137 中文字幕 在线| 国产亚洲视频在线观看| 中文字幕日本人妻中出| 女蜜桃臀紧身瑜伽裤| 久久精品美女免费视频| 亚洲欧美一卡二卡三卡| 蜜桃臀av蜜桃臀av| 五月色婷婷综合开心网4438| 日韩北条麻妃一区在线| 888欧美视频在线| 性感美女高潮视频久久久| 中文字幕人妻熟女在线电影| 亚洲伊人色一综合网| 日本一区美女福利视频| 在线亚洲天堂色播av电影| 色97视频在线播放| av在线shipin| 婷婷综合蜜桃av在线| 丝袜肉丝一区二区三区四区在线看| 日韩欧美国产精品91| 日韩北条麻妃一区在线| 国产精品sm调教视频| 欧美偷拍自拍色图片| 国产亚洲四十路五十路| 久久www免费人成一看片| 国产大学生援交正在播放| 热99re69精品8在线播放| 久久久久久cao我的性感人妻| 中文字幕在线永久免费播放 | 九九视频在线精品播放| 午夜精品久久久久久99热| 日韩欧美一级黄片亚洲| 国产精品久久久久久美女校花| 视频久久久久久久人妻| 国产麻豆国语对白露脸剧情| 成年午夜影片国产片| 初美沙希中文字幕在线| 欧美综合婷婷欧美综合| 欧美中国日韩久久精品| avjpm亚洲伊人久久| 国产福利小视频免费观看| 中文字幕在线欧美精品| 亚洲中文精品字幕在线观看| 老鸭窝日韩精品视频观看| 大鸡八强奸视频在线观看| 午夜久久久久久久99| 中文字幕日韩人妻在线三区| 久久丁香花五月天色婷婷| 狠狠鲁狠狠操天天晚上干干| 日韩欧美一级黄片亚洲| 日本性感美女三级视频| 国产精品视频欧美一区二区| 天天日天天干天天干天天日| 日本xx片在线观看| 欧亚乱色一区二区三区| 韩国黄色一级二级三级| 2020国产在线不卡视频| 熟女91pooyn熟女| 亚洲天堂精品福利成人av| 国产午夜亚洲精品麻豆| 国产视频一区在线观看| 深田咏美亚洲一区二区| 果冻传媒av一区二区三区| 国产精品伦理片一区二区| 99热99re在线播放| 绝顶痉挛大潮喷高潮无码| 无码国产精品一区二区高潮久久4 日韩欧美一级精品在线观看 | 亚洲av日韩精品久久久久久hd| 91综合久久亚洲综合| 伊人日日日草夜夜草| 久久机热/这里只有| 日本一区精品视频在线观看| 亚洲图库另类图片区| 中文亚洲欧美日韩无线码| 91天堂精品一区二区| 视频一区二区在线免费播放| 69精品视频一区二区在线观看| 中文字幕中文字幕 亚洲国产| 国产大鸡巴大鸡巴操小骚逼小骚逼| 亚洲av自拍天堂网| www,久久久,com| 老熟妇凹凸淫老妇女av在线观看| 国产janese在线播放| 只有精品亚洲视频在线观看| 亚洲综合在线观看免费| 日韩少妇人妻精品无码专区| 国产91精品拍在线观看| 美女张开两腿让男人桶av| av天堂中文免费在线| 超碰97免费人妻麻豆| 久久www免费人成一看片| 国产卡一卡二卡三乱码手机| 天天草天天色天天干| 六月婷婷激情一区二区三区| 天天艹天天干天天操| 在线视频国产欧美日韩| 亚洲成人激情视频免费观看了| 激情伦理欧美日韩中文字幕| 搡老熟女一区二区在线观看| 亚洲福利午夜久久久精品电影网| 玖玖一区二区在线观看| 91人妻人人做人人爽在线| 天天艹天天干天天操| 自拍偷拍 国产资源| 日本在线一区二区不卡视频| 亚洲蜜臀av一区二区三区九色| 日韩美在线观看视频黄| 天天日天天天天天天天天天天 | 日日日日日日日日夜夜夜夜夜夜| 国产免费av一区二区凹凸四季| 日本一区二区三区免费小视频| 国产精品久久久久久美女校花| 国产精品久久综合久久| 国产精品国产三级麻豆| 欧美亚洲中文字幕一区二区三区| 欧美日韩情色在线观看| 激情啪啪啪啪一区二区三区 | 精品少妇一二三视频在线| huangse网站在线观看| 丝袜美腿欧美另类 中文字幕| 日本黄色特一级视频| 97少妇精品在线观看| 国产精品视频男人的天堂| aⅴ精产国品一二三产品| 成人在线欧美日韩国产| 在线观看的a站 最新| 在线观看视频 你懂的| 久草视频 久草视频2| 国产在线一区二区三区麻酥酥| 午夜精品福利一区二区三区p| 免费看国产av网站| jiuse91九色视频| 国产自拍黄片在线观看| 黄色大片男人操女人逼| 自拍偷拍亚洲欧美在线视频| 久久精品36亚洲精品束缚| av高潮迭起在线观看| 粉嫩av懂色av蜜臀av | 99国产精品窥熟女精品| 18禁美女无遮挡免费| 日韩三级黄色片网站| 日本女大学生的黄色小视频| 在线可以看的视频你懂的| 亚洲av日韩av第一区二区三区| 欧美亚洲免费视频观看| 视频二区在线视频观看| 天天色天天舔天天射天天爽| 亚洲国际青青操综合网站| av网站色偷偷婷婷网男人的天堂| 日韩人妻丝袜中文字幕| 青青草原网站在线观看| 美女福利视频网址导航| 老师让我插进去69AV| 福利视频网久久91| 在线免费视频 自拍| 日韩欧美一级黄片亚洲| 欧美色婷婷综合在线| 黑人进入丰满少妇视频| 韩国三级aaaaa高清视频| 天天想要天天操天天干| 天天日天天摸天天爱| 999热精品视频在线| nagger可以指黑人吗| 日本少妇的秘密免费视频| 亚洲精品国偷自产在线观看蜜桃| 一区二区视频在线观看免费观看 | 欧美爆乳肉感大码在线观看| 欧亚日韩一区二区三区观看视频| 97a片免费在线观看| 任你操任你干精品在线视频| 亚洲熟女久久久36d| 国产无遮挡裸体免费直播视频| 四川五十路熟女av| 97黄网站在线观看| 啪啪啪18禁一区二区三区| 老师让我插进去69AV| 天天色天天舔天天射天天爽| 日视频免费在线观看| 久久丁香花五月天色婷婷| av乱码一区二区三区| 国产精品伦理片一区二区| 亚洲护士一区二区三区| 制服丝袜在线人妻中文字幕| 粉嫩小穴流水视频在线观看| 欧美专区第八页一区在线播放| 日韩精品电影亚洲一区| 天天日天天做天天日天天做| 97人妻夜夜爽二区欧美极品| 免费在线看的黄网站| 91麻豆精品91久久久久同性| 老熟妇凹凸淫老妇女av在线观看| 毛茸茸的大外阴中国视频| 五十路熟女人妻一区二| 久久久久久99国产精品| 涩爱综合久久五月蜜臀| 天天干夜夜操天天舔| 日本熟妇一区二区x x| 被大鸡吧操的好舒服视频免费 | 成人激情文学网人妻| av久久精品北条麻妃av观看| 老有所依在线观看完整版 | av久久精品北条麻妃av观看| 大尺度激情四射网站| 亚洲午夜伦理视频在线| av手机在线免费观看日韩av| 一区二区三区另类在线| 天堂资源网av中文字幕| 在线观看成人国产电影| av天堂中文字幕最新| 免费人成黄页网站在线观看国产| 日本免费一级黄色录像| 亚洲激情唯美亚洲激情图片| 黑人巨大精品欧美视频| 久久久久久久久久一区二区三区| 啪啪啪啪啪啪啪免费视频| 日韩伦理短片在线观看| 久久久久久久久久久免费女人| 91色九色porny| 伊人成人综合开心网| 在线观看欧美黄片一区二区三区 | 人妻av无码专区久久绿巨人| 免费一级特黄特色大片在线观看| 女同性ⅹxx女同hd| 日本熟女精品一区二区三区| 欧美精产国品一二三区| 日本少妇人妻xxxxx18| 福利视频一区二区三区筱慧| 色秀欧美视频第一页| 亚洲免费福利一区二区三区| 天天日天天操天天摸天天舔| 动漫精品视频在线观看| 沈阳熟妇28厘米大战黑人| 欧美一级色视频美日韩| 91精品国产综合久久久蜜| 深田咏美亚洲一区二区| 色婷婷综合激情五月免费观看| 成年美女黄网站18禁久久| 一二三区在线观看视频| 亚洲高清国产一区二区三区| 天天日天天操天天摸天天舔| 一区二区三区毛片国产一区| 亚洲成人激情av在线| 久久久久久性虐视频| 亚洲免费福利一区二区三区| 婷婷五月亚洲综合在线| 国产精品亚洲在线观看| 日本免费午夜视频网站| 日本xx片在线观看| 快插进小逼里大鸡吧视频| 日本后入视频在线观看| 69精品视频一区二区在线观看| 亚洲人妻视频在线网| 93人妻人人揉人人澡人人| 青青社区2国产视频| 最新97国产在线视频| 午夜福利资源综合激情午夜福利资 | av在线播放国产不卡| 日韩在线中文字幕色| 一区二区三区在线视频福利| 91人妻精品久久久久久久网站| 亚洲av色香蕉一区二区三区| 天天摸天天亲天天舔天天操天天爽| 青青草国内在线视频精选| 国产之丝袜脚在线一区二区三区| 丝袜美腿视频诱惑亚洲无| 日韩亚洲高清在线观看| 亚洲少妇人妻无码精品| 中文字幕人妻一区二区视频| 四川乱子伦视频国产vip| 干逼又爽又黄又免费的视频| 2018在线福利视频| 亚洲精品麻豆免费在线观看| 国产久久久精品毛片| 老司机深夜免费福利视频在线观看| 亚洲精品国品乱码久久久久| 国语对白xxxx乱大交| 亚洲综合色在线免费观看| 把腿张开让我插进去视频| 国产精品三级三级三级| 水蜜桃一区二区三区在线观看视频| 亚洲狠狠婷婷综合久久app| 欧美日韩一级黄片免费观看| 亚洲嫩模一区二区三区| 午夜毛片不卡免费观看视频| 伊人情人综合成人久久网小说 | 国产黄色片在线收看| 在线观看成人国产电影| 国产janese在线播放| 欧美久久久久久三级网| 天天摸天天亲天天舔天天操天天爽 | 精品一线二线三线日本| 88成人免费av网站| 久草视频福利在线首页| 成人精品在线观看视频| 欧美日韩中文字幕欧美| 欧美美女人体视频一区| 美女骚逼日出水来了| 久久美欧人妻少妇一区二区三区| 欧美成人综合视频一区二区 | 亚洲免费成人a v| 91九色porny国产在线| 久久久精品999精品日本| 精品视频国产在线观看| 国产精品一二三不卡带免费视频 | 青青青青青免费视频| 揄拍成人国产精品免费看视频| 亚洲欧美自拍另类图片| 性色蜜臀av一区二区三区| 免费在线看的黄网站| 亚洲另类综合一区小说| 亚洲成a人片777777| 欧美精产国品一二三产品区别大吗| 婷婷五月亚洲综合在线| 美女福利视频导航网站| 亚洲第17页国产精品| 又粗又长 明星操逼小视频| 免费在线看的黄片视频| 97人妻无码AV碰碰视频| 91精品国产黑色丝袜| 玩弄人妻熟妇性色av少妇| 亚洲蜜臀av一区二区三区九色 | 偷偷玩弄新婚人妻h视频| 日本啪啪啪啪啪啪啪| 一区二区三区四区中文| 一区二区三区av高清免费| 亚洲精品国产久久久久久| 最新国产精品网址在线观看| 成人24小时免费视频| 日视频免费在线观看| 日韩亚洲高清在线观看| 成年人黄视频在线观看| 亚洲av无乱一区二区三区性色| 精品成人午夜免费看| 久青青草视频手机在线免费观看| 不戴胸罩引我诱的隔壁的人妻| 热久久只有这里有精品| 成人在线欧美日韩国产| 新婚人妻聚会被中出| 青青草视频手机免费在线观看| 直接能看的国产av| 亚洲欧美激情人妻偷拍| 玖玖一区二区在线观看| 亚洲精品 欧美日韩| 偷青青国产精品青青在线观看| 成年午夜影片国产片| 在线观看欧美黄片一区二区三区| 中国熟女@视频91| 天天操夜夜骑日日摸| 在线观看av2025| 国产免费av一区二区凹凸四季| 人人妻人人爱人人草| 一区二区久久成人网| 91国内精品久久久久精品一 | avjpm亚洲伊人久久| 亚洲 中文 自拍 另类 欧美| 黄页网视频在线免费观看| 亚洲免费视频欧洲免费视频| 中文字幕乱码人妻电影| 福利在线视频网址导航| 男大肉棒猛烈插女免费视频| 免费观看成年人视频在线观看| caoporm超碰国产| 亚欧在线视频你懂的| 国产又粗又硬又大视频| 在线不卡成人黄色精品| av在线播放国产不卡| 亚洲综合自拍视频一区| 欧美精品激情在线最新观看视频| h国产小视频福利在线观看| AV天堂一区二区免费试看| 2022国产精品视频| 午夜免费体验区在线观看| 精品国产在线手机在线| 亚洲高清国产自产av| 午夜dv内射一区区| 天天操夜夜操天天操天天操 | 国产九色91在线观看精品| 班长撕开乳罩揉我胸好爽| 亚洲高清一区二区三区视频在线 | 色花堂在线av中文字幕九九| 亚洲av日韩精品久久久久久hd| 欧美国品一二三产区区别| 亚洲1069综合男同| 国产一区二区神马久久| 香蕉片在线观看av| 亚洲中文字幕人妻一区| 女警官打开双腿沦为性奴| 国产精品伦理片一区二区| 亚洲自拍偷拍综合色| 成人午夜电影在线观看 久久| 日韩人妻xxxxx| 国产又粗又黄又硬又爽| 18禁网站一区二区三区四区| 中国熟女@视频91| 99久久超碰人妻国产| 精品91高清在线观看 | avjpm亚洲伊人久久| 在线观看视频一区麻豆| 加勒比视频在线免费观看| 一区二区三区美女毛片| 蜜臀av久久久久蜜臀av麻豆| 97人人模人人爽人人喊| 喷水视频在线观看这里只有精品| 国产黑丝高跟鞋视频在线播放| 中文字母永久播放1区2区3区| 日本黄在免费看视频| 成年人黄色片免费网站| 欧美国产亚洲中英文字幕| 亚洲国产最大av综合| 91久久综合男人天堂| 国产乱弄免费视频观看| 亚洲中文字幕乱码区| 免费观看污视频网站| 91精品国产黑色丝袜| 国产精品国产三级国产午| 一色桃子人妻一区二区三区| 视频在线亚洲一区二区| 在线免费观看视频一二区| mm131美女午夜爽爽爽| 黄色的网站在线免费看| 日本啪啪啪啪啪啪啪| 国产高清精品极品美女| 任你操任你干精品在线视频| 亚洲av香蕉一区区二区三区犇| 亚洲区欧美区另类最新章节| 日韩欧美在线观看不卡一区二区| 少妇高潮无套内谢麻豆| 天天操,天天干,天天射| 视频一区 二区 三区 综合| 风流唐伯虎电视剧在线观看| 中文字幕国产专区欧美激情| 亚洲欧美国产麻豆综合| 久草视频首页在线观看| 18禁无翼鸟成人在线| 在线视频这里只有精品自拍| 女生自摸在线观看一区二区三区| 国产一区成人在线观看视频 | 欧美男同性恋69视频| 欧美一区二区三区在线资源| 欧美日韩亚洲国产无线码| 在线免费观看靠比视频的网站| 老司机欧美视频在线看| 99的爱精品免费视频| 国产成人一区二区三区电影网站 | 在线观看视频一区麻豆| 青青青青青青草国产| 日本高清在线不卡一区二区| 国产成人无码精品久久久电影| 亚洲精品ww久久久久久| 在线不卡成人黄色精品| 国产熟妇一区二区三区av| 人妻丝袜诱惑我操她视频| 欧美日韩中文字幕欧美| 一区二区熟女人妻视频| 亚洲天天干 夜夜操| 精品国产高潮中文字幕| 91中文字幕免费在线观看| 超碰97免费人妻麻豆| 扒开让我视频在线观看| 福利视频广场一区二区| 亚洲精品在线资源站| 哥哥姐姐综合激情小说| 在线免费观看视频一二区| 久草视频福利在线首页| 婷婷午夜国产精品久久久| 青青青青爽手机在线| av森泽佳奈在线观看| 蜜臀av久久久久久久| 大白屁股精品视频国产| 午夜福利人人妻人人澡人人爽| 涩爱综合久久五月蜜臀| 最新国产亚洲精品中文在线| xxx日本hd高清| 日本av高清免费网站| 狠狠躁夜夜躁人人爽天天天天97| 日本美女成人在线视频| 欧洲日韩亚洲一区二区三区 | 国产精彩对白一区二区三区| 中文字幕人妻av在线观看| 日本韩国在线观看一区二区| 9国产精品久久久久老师| 最新欧美一二三视频| 后入美女人妻高清在线| 人人妻人人爱人人草| 北条麻妃高跟丝袜啪啪| 日韩北条麻妃一区在线| 一区二区三区久久久91| 国产白嫩美女一区二区| 亚洲中文字幕人妻一区| 久碰精品少妇中文字幕av| 天天摸天天干天天操科普| 亚洲福利精品福利精品福利| av在线免费资源站| 黑人变态深video特大巨大| 成人av亚洲一区二区| 久草视频中文字幕在线观看| 初美沙希中文字幕在线| 沈阳熟妇28厘米大战黑人| 欧美日韩一级黄片免费观看| 欧美专区日韩专区国产专区| 色综合色综合色综合色| 人人爽亚洲av人人爽av| 亚洲区美熟妇久久久久| 成人av中文字幕一区| 一区二区三区四区中文| 18禁网站一区二区三区四区| 亚洲成人午夜电影在线观看| 亚洲 自拍 色综合图| 中文字幕高清在线免费播放| 国产va在线观看精品| 2021久久免费视频| 午夜在线精品偷拍一区二| 春色激情网欧美成人| 一区二区久久成人网| 免费费一级特黄真人片| 都市激情校园春色狠狠| 99一区二区在线观看| 偷拍美女一区二区三区| 大白屁股精品视频国产| 欧亚日韩一区二区三区观看视频| 成人区人妻精品一区二视频| 精品人人人妻人人玩日产欧| 青青青青草手机在线视频免费看 | 一区二区熟女人妻视频| 51国产偷自视频在线播放| 99精品亚洲av无码国产另类| 99国产精品窥熟女精品| 换爱交换乱高清大片| 夜夜嗨av一区二区三区中文字幕| 日本熟女精品一区二区三区| 亚洲中文精品人人免费| 天天操夜夜操天天操天天操| 综合精品久久久久97| 久草视频首页在线观看| 国产精品人妻熟女毛片av久| 天天摸天天亲天天舔天天操天天爽| 激情小视频国产在线| 亚洲码av无色中文| 日本精品视频不卡一二三| 成人蜜臀午夜久久一区| 久久久久久性虐视频| 婷婷六月天中文字幕| av乱码一区二区三区| 99精品国产aⅴ在线观看| 新97超碰在线观看| 黑人乱偷人妻中文字幕| 超黄超污网站在线观看| 亚洲卡1卡2卡三卡四老狼| 黄色大片男人操女人逼| 精品美女久久久久久| 91破解版永久免费| 亚洲人妻av毛片在线| 蜜臀av久久久久久久| AV无码一区二区三区不卡| 色综合色综合色综合色| 亚洲护士一区二区三区| 超鹏97历史在线观看| 青青青青青手机视频| 国产熟妇乱妇熟色T区| 亚洲国产40页第21页| 国产中文字幕四区在线观看| 中文字幕网站你懂的| 欧美精品国产综合久久| 538精品在线观看视频| 午夜精品亚洲精品五月色| 日本黄色三级高清视频| 日韩人妻在线视频免费| 欧美xxx成人在线| 免费一级特黄特色大片在线观看| 日本人妻少妇18—xx| 亚洲福利天堂久久久久久| 亚洲蜜臀av一区二区三区九色| 成人网18免费视频版国产| 女人精品内射国产99| 国产精品久久久久久久精品视频| 黄色的网站在线免费看| xxx日本hd高清| 国产av国片精品一区二区| 男人插女人视频网站| 欧美专区第八页一区在线播放| 小泽玛利亚视频在线观看| 久久精品国产999| 日日摸夜夜添夜夜添毛片性色av| 国产精品手机在线看片| 早川濑里奈av黑人番号| 欧美精品资源在线观看| 美女福利视频导航网站| 亚洲成人激情av在线| 中文字幕第1页av一天堂网| 伊人网中文字幕在线视频| 成人精品视频99第一页| 亚洲人人妻一区二区三区| 成熟丰满熟妇高潮xx×xx | 操人妻嗷嗷叫视频一区二区| 日本福利午夜电影在线观看| 亚洲国产成人最新资源| 天天干天天操天天插天天日| 亚洲天堂av最新网址| 中文字幕人妻三级在线观看| 欧美一区二区三区啪啪同性| 偷拍自拍国产在线视频| 中文字幕一区二 区二三区四区| av中文字幕网址在线| 亚洲精品三级av在线免费观看| 亚洲视频在线观看高清| 国产又粗又猛又爽又黄的视频在线| 狠狠操操操操操操操操操| 国产又粗又黄又硬又爽| 中文字幕在线视频一区二区三区| 亚洲一区二区三区精品乱码| 精品视频中文字幕在线播放| 成人动漫大肉棒插进去视频| 亚洲国产最大av综合| 亚洲欧美精品综合图片小说| 天天干天天爱天天色| 国产使劲操在线播放| 少妇高潮无套内谢麻豆| 亚洲av一妻不如妾| 少妇一区二区三区久久久| 国产欧美精品一区二区高清 | 青草青永久在线视频18| av网址国产在线观看| 深夜男人福利在线观看| 99热这里只有精品中文| 熟女国产一区亚洲中文字幕| 亚洲欧美综合另类13p| 亚洲高清视频在线不卡| 久久农村老妇乱69系列| 久久丁香花五月天色婷婷| 亚洲精品乱码久久久本| 亚洲欧美清纯唯美另类 | 天堂av在线播放免费| 99一区二区在线观看| 98视频精品在线观看| 99热久久极品热亚洲| 偷拍美女一区二区三区| 国产超码片内射在线| 国产九色91在线观看精品| 亚洲伊人色一综合网| 日本午夜福利免费视频| 亚洲第17页国产精品| 黄色黄色黄片78在线| 91精品国产麻豆国产| AV无码一区二区三区不卡| AV无码一区二区三区不卡| 最近的中文字幕在线mv视频| av网址国产在线观看| 日本熟妇色熟妇在线观看| 老师让我插进去69AV| 天天插天天狠天天操| av新中文天堂在线网址| 亚洲 中文字幕在线 日韩| 欧美精品免费aaaaaa| 一区二区三区麻豆福利视频| 国产午夜男女爽爽爽爽爽视频 | 欧美精产国品一二三产品价格 | 亚洲高清视频在线不卡| av在线免费资源站| 一区二区三区美女毛片| av新中文天堂在线网址| 国产午夜福利av导航| 美女被肏内射视频网站| 老司机99精品视频在线观看| 99久久99久国产黄毛片| 亚洲精品国偷自产在线观看蜜桃| 免费岛国喷水视频在线观看| 19一区二区三区在线播放| 青青青艹视频在线观看| 免费看高清av的网站| av天堂加勒比在线| 中文字幕最新久久久| 欧美国品一二三产区区别| 都市激情校园春色狠狠| 888亚洲欧美国产va在线播放| 在线不卡成人黄色精品| 91国语爽死我了不卡| 亚洲熟妇无码一区二区三区| 中文字幕一区的人妻欧美日韩| 欧美老鸡巴日小嫩逼| 丝袜亚洲另类欧美变态| 亚洲 中文 自拍 另类 欧美| 天天摸天天干天天操科普| 99精品国自产在线人| 欧洲亚洲欧美日韩综合| 日韩成人免费电影二区| 黑人巨大精品欧美视频| 人人超碰国字幕观看97| 青青草精品在线视频观看| 在线观看视频一区麻豆| 99精品视频在线观看婷婷| 久久久久久99国产精品| 特级无码毛片免费视频播放| 久久久久久久亚洲午夜综合福利| 亚洲美女美妇久久字幕组| 一区二区久久成人网| 综合激情网激情五月五月婷婷| 国产丰满熟女成人视频| 中文字幕日韩人妻在线三区| 国产精品免费不卡av| 精品国产污污免费网站入口自| 人人人妻人人澡人人| 日韩精品中文字幕在线| 国产精品中文av在线播放| 人妻丝袜诱惑我操她视频| 青青草原色片网站在线观看 | 国产精品视频一区在线播放| 国产精品久久久久久久久福交 | 中文字幕午夜免费福利视频| 女生自摸在线观看一区二区三区| 国产精品亚洲а∨天堂免| 亚洲高清自偷揄拍自拍| 日本黄在免费看视频| 国产成人综合一区2区| 亚洲推理片免费看网站| 红杏久久av人妻一区| 色噜噜噜噜18禁止观看| 九色porny九色9l自拍视频| 18禁网站一区二区三区四区| 日本熟妇一区二区x x| 中文字幕免费在线免费| 欧美精品免费aaaaaa| 鸡巴操逼一级黄色气| 亚洲人妻国产精品综合| 亚洲综合一区成人在线| 黄色视频成年人免费观看| 中文字幕人妻三级在线观看| 亚洲欧美激情国产综合久久久| 亚洲av成人免费网站| 久久久久久九九99精品| www日韩a级s片av| 日本精品美女在线观看| 扒开让我视频在线观看| 精品国产午夜视频一区二区| 国产激情av网站在线观看| 中国熟女一区二区性xx| 人妻少妇亚洲精品中文字幕| 综合激情网激情五月五月婷婷| 黄网十四区丁香社区激情五月天| 日韩无码国产精品强奸乱伦| 免费在线观看视频啪啪| 亚洲综合在线观看免费| 国产丰满熟女成人视频| 亚洲av日韩精品久久久久久hd| 久久久91蜜桃精品ad| 福利在线视频网址导航| 日本高清撒尿pissing| www日韩a级s片av| av在线免费观看亚洲天堂| 黄色av网站免费在线| 人妻最新视频在线免费观看| 中文字幕人妻三级在线观看| 99精品免费久久久久久久久a| 成年美女黄网站18禁久久| 都市激情校园春色狠狠| 人妻激情图片视频小说| 骚货自慰被发现爆操| 亚洲精品 欧美日韩| 国产精品亚洲在线观看| 国产精品久久久久网| 久久久久久久精品老熟妇| 97超碰国语国产97超碰| 这里只有精品双飞在线播放| 日本韩国免费一区二区三区视频| av手机在线观播放网站| 天天日天天舔天天射进去| 亚洲一级 片内射视正片| 93精品视频在线观看| 亚洲 中文 自拍 无码| 国产女孩喷水在线观看| 亚洲av成人免费网站| 久精品人妻一区二区三区| 激情五月婷婷综合色啪| 99热久久这里只有精品| 97人妻夜夜爽二区欧美极品| 亚洲成人情色电影在线观看| 精品少妇一二三视频在线| 男人天堂色男人av| 日本一本午夜在线播放| 大胸性感美女羞爽操逼毛片| 色秀欧美视频第一页| 美女吃鸡巴操逼高潮视频| 日本免费一级黄色录像 | 91国内精品自线在拍白富美| 久久香蕉国产免费天天| 欧洲黄页网免费观看| 国产精品熟女久久久久浪潮| 自拍偷拍日韩欧美亚洲| 91成人在线观看免费视频| 亚洲精品高清自拍av| 欧美黄色录像免费看的| 在线观看日韩激情视频| 亚洲av自拍天堂网| 亚洲国产在线精品国偷产拍| 777奇米久久精品一区| 免费在线观看污污视频网站| 黄色大片男人操女人逼| 中文字幕一区二区人妻电影冢本| 国产黄色高清资源在线免费观看| 欧美美女人体视频一区| 不卡一区一区三区在线| 欧美亚洲少妇福利视频| 久久这里有免费精品| 夜夜嗨av一区二区三区中文字幕| 春色激情网欧美成人| 韩国爱爱视频中文字幕| 国产亚洲欧美45p| 果冻传媒av一区二区三区| 美女视频福利免费看| 日韩黄色片在线观看网站| 日本免费一级黄色录像| 男女第一次视频在线观看| 天天操,天天干,天天射| 色哟哟国产精品入口| 高清成人av一区三区| www日韩毛片av| 精品首页在线观看视频| 大香蕉日本伊人中文在线| 亚洲国产欧美国产综合在线| 亚洲区美熟妇久久久久| 欧美日韩在线精品一区二区三| sspd152中文字幕在线| 亚洲免费在线视频网站| 成人伊人精品色xxxx视频| 久草视频在线看免费| 国产av一区2区3区| 欧美亚洲偷拍自拍色图| 懂色av蜜桃a v| 在线观看av亚洲情色| 免费国产性生活视频| 亚洲欧美成人综合视频| 黄色资源视频网站日韩| 精品黑人一区二区三区久久国产 | 一级A一级a爰片免费免会员| 蜜臀av久久久久久久| 97青青青手机在线视频| 国产精品国产精品一区二区| 99国产精品窥熟女精品| 91九色国产熟女一区二区| 欧美成人小视频在线免费看| 人妻最新视频在线免费观看| 成人国产小视频在线观看| 日韩av中文在线免费观看| 啪啪啪啪啪啪啪免费视频| 伊人情人综合成人久久网小说| 91啪国自产中文字幕在线| 青青擦在线视频国产在线| 四川乱子伦视频国产vip| 日本真人性生活视频免费看| 成年午夜免费无码区| 日韩av有码中文字幕| 最新91九色国产在线观看| 骚货自慰被发现爆操| 国产精品污污污久久| 五十路熟女av天堂| 视频一区二区三区高清在线| 欲满人妻中文字幕在线| 一区二区三区激情在线| 精品suv一区二区69| 78色精品一区二区三区| 黄色录像鸡巴插进去| 92福利视频午夜1000看| 亚洲高清国产自产av| 成人24小时免费视频| 蜜臀成人av在线播放| 国产日本精品久久久久久久| 韩国亚洲欧美超一级在线播放视频| 色吉吉影音天天干天天操| 亚洲 色图 偷拍 欧美| 啊用力插好舒服视频| 日本啪啪啪啪啪啪啪| 日韩熟女系列一区二区三区| 大鸡巴后入爆操大屁股美女| 2019av在线视频| 日韩在线中文字幕色| 在线免费观看黄页视频| 黑人解禁人妻叶爱071| 午夜精品一区二区三区更新| 日本啪啪啪啪啪啪啪| 国产91精品拍在线观看| 岛国青草视频在线观看| 大鸡巴插入美女黑黑的阴毛| 男人的天堂一区二区在线观看| 亚洲欧美久久久久久久久| 超鹏97历史在线观看| 日韩欧美国产一区不卡| 美女福利视频导航网站| 久久精品久久精品亚洲人| 精品区一区二区三区四区人妻 | 91在线视频在线精品3| 成人精品视频99第一页| 青青青激情在线观看视频| 黄色成人在线中文字幕| 51精品视频免费在线观看| 日韩亚国产欧美三级涩爱| 国产一区二区视频观看| 欧美精品激情在线最新观看视频| 日本午夜爽爽爽爽爽视频在线观看 | 美女张开腿让男生操在线看| 超鹏97历史在线观看| 97人妻总资源视频| 亚洲av无乱一区二区三区性色| 日本熟女精品一区二区三区| 日韩美在线观看视频黄| 欧美一级视频一区二区| 欧美精品激情在线最新观看视频| 新97超碰在线观看| 天天摸天天日天天操| 午夜精品一区二区三区福利视频| 高潮喷水在线视频观看| 可以免费看的www视频你懂的 | 五色婷婷综合狠狠爱| 97少妇精品在线观看| 老鸭窝在线观看一区| 自拍偷拍亚洲另类色图| av中文字幕在线导航| 黄工厂精品视频在线观看| 婷婷色中文亚洲网68| 国产一区二区神马久久| 午夜精品在线视频一区| 国产成人自拍视频播放| 亚洲中文字幕乱码区| 免费黄页网站4188| 国产高清精品极品美女| 91精品视频在线观看免费| 亚洲精品一区二区三区老狼| 国产V亚洲V天堂无码欠欠| 午夜久久久久久久精品熟女| 香蕉av影视在线观看| 69精品视频一区二区在线观看| 亚洲天堂第一页中文字幕| 日韩成人综艺在线播放| 五十路人妻熟女av一区二区| 美女小视频网站在线| 都市激情校园春色狠狠| 国产日韩一区二区在线看| 亚洲成a人片777777| 欧美日韩人妻久久精品高清国产| 亚洲欧洲一区二区在线观看| 人妻熟女中文字幕aⅴ在线| 黄色男人的天堂视频| 久久热这里这里只有精品| 天天日天天鲁天天操| 91精品国产91久久自产久强| 91老熟女连续高潮对白| 国内自拍第一页在线观看| 经典av尤物一区二区| 欧美精品资源在线观看| chinese国产盗摄一区二区| 精内国产乱码久久久久久| 特级无码毛片免费视频播放| 中文字母永久播放1区2区3区| 久青青草视频手机在线免费观看 | 国产极品精品免费视频| 亚洲丝袜老师诱惑在线观看| 一级黄片久久久久久久久| av在线播放国产不卡| 早川濑里奈av黑人番号| 啊慢点鸡巴太大了啊舒服视频| 狠狠躁狠狠爱网站视频| 在线观看免费av网址大全| 性感美女高潮视频久久久 | 无码国产精品一区二区高潮久久4| 五月精品丁香久久久久福利社| 九色精品视频在线播放| 高清一区二区欧美系列| 精品一区二区三区欧美| 91精品免费久久久久久| 日韩激情文学在线视频| 搞黄色在线免费观看| 精品一线二线三线日本| 中国熟女@视频91| 天天日天天干天天舔天天射| 日本av高清免费网站| 欧美综合婷婷欧美综合| 久草视频首页在线观看| 日韩熟女av天堂系列| 男人插女人视频网站| 成人24小时免费视频| 孕妇奶水仑乱A级毛片免费看| 亚洲成人av在线一区二区| 亚洲国产免费av一区二区三区 | 老熟妇凹凸淫老妇女av在线观看| 午夜成午夜成年片在线观看 | 日韩精品中文字幕在线| 色偷偷伊人大杳蕉综合网| 国产精品一区二区三区蜜臀av | 韩国三级aaaaa高清视频 | 淫秽激情视频免费观看| 天天日天天鲁天天操| 欧美一区二区三区高清不卡tv| 欧美伊人久久大香线蕉综合| 2o22av在线视频| 欧美黑人与人妻精品| 国产亚洲精品视频合集| 国产福利小视频二区| 欧美性感尤物人妻在线免费看| 午夜免费观看精品视频| 成年人该看的视频黄免费| 亚洲免费在线视频网站| 国产伊人免费在线播放| 日韩精品中文字幕在线| 欧美黄片精彩在线免费观看| 天天操天天弄天天射| 97瑟瑟超碰在线香蕉| 66久久久久久久久久久| 91精品国产观看免费| 一区二区免费高清黄色视频| 都市激情校园春色狠狠| 中国视频一区二区三区| 亚洲精品午夜aaa久久| 淫秽激情视频免费观看| 国产欧美日韩第三页| 久久久久91精品推荐99| 国产在线拍揄自揄视频网站| 久久机热/这里只有| 亚欧在线视频你懂的| 中文字幕AV在线免费看 | 啪啪啪18禁一区二区三区 | 午夜精品久久久久久99热| 天天日天天干天天要| 国产卡一卡二卡三乱码手机| 男大肉棒猛烈插女免费视频| 国产黄色高清资源在线免费观看| 大香蕉伊人中文字幕| 欧美亚洲免费视频观看| 一区二区麻豆传媒黄片| 老司机免费福利视频网| 成人蜜桃美臀九一一区二区三区 | 欧美精产国品一二三产品价格 | 国产精品入口麻豆啊啊啊| 免费在线看的黄网站| 天天干天天日天天谢综合156| 国产91嫩草久久成人在线视频| 天天操天天污天天射| 骚货自慰被发现爆操| 青娱乐极品视频青青草| 青青草精品在线视频观看| 久久丁香花五月天色婷婷| 国产黄网站在线观看播放| 国产精品黄色的av| 亚洲国产成人最新资源| 91av中文视频在线| av高潮迭起在线观看| 97超碰人人搞人人| 韩国男女黄色在线观看| 91久久综合男人天堂| 一区二区三区蜜臀在线| 欧美专区日韩专区国产专区| 亚洲一区二区三区偷拍女厕91| 国产一级麻豆精品免费| 亚洲第一黄色在线观看| 免费十精品十国产网站| 丝袜国产专区在线观看| 亚洲最大黄了色网站| 熟女视频一区,二区,三区| 亚洲综合另类精品小说| 色婷婷精品大在线观看| av网址国产在线观看| 日韩一区二区电国产精品| 做爰视频毛片下载蜜桃视频1| 亚洲成人激情av在线| 51国产成人精品视频| 一区二区在线观看少妇| 成人av天堂丝袜在线观看| 久久精品亚洲成在人线a| 国产精品一区二区av国| 内射久久久久综合网| 黄工厂精品视频在线观看| 在线免费观看视频一二区| 青娱乐在线免费视频盛宴 | 成人av中文字幕一区| 2021国产一区二区| 欧美色呦呦最新网址| 日韩美女精品视频在线观看网站| 在线观看av观看av| 91试看福利一分钟| 久久久久只精品国产三级| 中文字幕一区二 区二三区四区 | 色婷婷久久久久swag精品| 黄色视频在线观看高清无码| 国产一区二区在线欧美| 一区二区三区视频,福利一区二区| 亚洲成人av一区在线| 欧美老鸡巴日小嫩逼| 国产午夜激情福利小视频在线| 在线观看av观看av| 538精品在线观看视频| 色吉吉影音天天干天天操| 在线免费观看靠比视频的网站| 75国产综合在线视频| 久久精品国产亚洲精品166m| 亚洲老熟妇日本老妇| 揄拍成人国产精品免费看视频| weyvv5国产成人精品的视频| av高潮迭起在线观看| 精彩视频99免费在线| 中文字幕视频一区二区在线观看 | AV天堂一区二区免费试看| 国产午夜亚洲精品不卡在线观看 | 中文字幕第1页av一天堂网| 精内国产乱码久久久久久| 日韩三级电影华丽的外出 | 黄色中文字幕在线播放| 成人色综合中文字幕| 经典国语激情内射视频| 毛茸茸的大外阴中国视频| 夜色撩人久久7777| 懂色av蜜桃a v| 人妻丝袜精品中文字幕| 天天艹天天干天天操| 久久热这里这里只有精品| 懂色av之国产精品| 亚洲国产免费av一区二区三区| 加勒比视频在线免费观看| 亚洲一区二区久久久人妻| 热久久只有这里有精品| 欧美日韩激情啪啪啪| 午夜在线观看岛国av,com| 人妻丰满熟妇综合网| 中文字幕一区二 区二三区四区| 蜜臀成人av在线播放| 韩国爱爱视频中文字幕| 中文字幕一区二区三区蜜月| 超碰公开大香蕉97| 91精品国产黑色丝袜| 国产熟妇乱妇熟色T区| 日本一区精品视频在线观看| av视屏免费在线播放| 91试看福利一分钟| 91免费福利网91麻豆国产精品| 中文字幕 亚洲av| 国产在线观看免费人成短视频| 好吊操视频这里只有精品| 人妻久久无码中文成人| www天堂在线久久| 国产九色91在线视频| 春色激情网欧美成人| 喷水视频在线观看这里只有精品| 欧美地区一二三专区| 亚洲一区自拍高清免费视频| 免费人成黄页网站在线观看国产| 欧美交性又色又爽又黄麻豆| 快点插进来操我逼啊视频| 2020国产在线不卡视频| 中文字幕在线视频一区二区三区 | 极品粉嫩小泬白浆20p主播| 精品av久久久久久久| 美女福利写真在线观看视频| 老司机你懂得福利视频| av日韩在线免费播放| 啊慢点鸡巴太大了啊舒服视频| 国产精品自拍偷拍a| 大黑人性xxxxbbbb| 日本www中文字幕| 免费福利av在线一区二区三区| 无忧传媒在线观看视频| 日本av熟女在线视频| asmr福利视频在线观看| 天天色天天操天天透| 免费岛国喷水视频在线观看| 日韩av免费观看一区| 亚洲乱码中文字幕在线| 欧美80老妇人性视频| 2021天天色天天干| 久久精品国产999| 日韩欧美一级aa大片| 久久久久久久99精品| 人人妻人人爽人人添夜| 欧美80老妇人性视频| 天天日天天日天天擦| 免费在线黄色观看网站| 国产日韩欧美视频在线导航 | 亚洲 中文字幕在线 日韩| 人人妻人人爽人人澡人人精品| 日韩一区二区三区三州| 免费在线观看污污视频网站| 国产又色又刺激在线视频| 91色秘乱一区二区三区| av资源中文字幕在线观看| 亚洲成人国产综合一区| 成人蜜桃美臀九一一区二区三区| 99热色原网这里只有精品| av大全在线播放免费| 漂亮 人妻被中出中文| 日韩无码国产精品强奸乱伦| 40道精品招牌菜特色| 亚洲免费在线视频网站| 51国产偷自视频在线播放| 100%美女蜜桃视频| 中文人妻AV久久人妻水| 天天日天天做天天日天天做| 成熟熟女国产精品一区| 中文字幕一区二区人妻电影冢本| 人妻爱爱 中文字幕| 91国产在线免费播放| 亚洲精品久久视频婷婷| 狠狠躁狠狠爱网站视频| 免费十精品十国产网站| 在线观看的a站 最新| 亚洲视频在线观看高清| 国产午夜激情福利小视频在线| 亚洲av无女神免非久久| 亚洲天堂有码中文字幕视频 | 黄色无码鸡吧操逼视频| 亚洲熟妇x久久av久久| 国产熟妇人妻ⅹxxxx麻豆| 国产精品精品精品999| 成年人的在线免费视频| 免费在线看的黄片视频| 色哟哟在线网站入口| 91精品激情五月婷婷在线| 91国内精品久久久久精品一| 日本性感美女视频网站| 40道精品招牌菜特色| 日本韩国亚洲综合日韩欧美国产| 亚洲1卡2卡三卡4卡在线观看| 久久久人妻一区二区| 天天日夜夜干天天操| 后入美女人妻高清在线| 亚洲日本一区二区久久久精品| av天堂资源最新版在线看| 激情啪啪啪啪一区二区三区 | 亚洲蜜臀av一区二区三区九色| 少妇高潮无套内谢麻豆| 老司机福利精品免费视频一区二区| 手机看片福利盒子日韩在线播放| 老熟妇xxxhd老熟女| 亚洲精品精品国产综合| 天天日天天透天天操| 97资源人妻免费在线视频| 国产性生活中老年人视频网站| 日本免费一级黄色录像| 丝袜亚洲另类欧美变态| 在线国产日韩欧美视频| 国产成人小视频在线观看无遮挡 | 日韩中文字幕在线播放第二页| 在线播放 日韩 av| 久草视频 久草视频2| 93视频一区二区三区| 中文字幕AV在线免费看 | 偷青青国产精品青青在线观看| 中文字幕av男人天堂| sejizz在线视频| 欧美性感尤物人妻在线免费看| 青青伊人一精品视频| 91九色porny蝌蚪国产成人| 黑人巨大精品欧美视频| 精品久久久久久久久久中文蒉| 亚洲av无硬久久精品蜜桃| 日本www中文字幕| 欧美精品亚洲精品日韩在线| 欧美偷拍亚洲一区二区| 综合页自拍视频在线播放| 亚洲另类在线免费观看| 漂亮 人妻被中出中文| 一区二区熟女人妻视频| 欧美专区第八页一区在线播放| 国产无遮挡裸体免费直播视频| 含骚鸡巴玩逼逼视频| 喷水视频在线观看这里只有精品 | 成人蜜臀午夜久久一区| 97精品综合久久在线| 在线观看亚洲人成免费网址| 日比视频老公慢点好舒服啊| caoporn蜜桃视频| 777奇米久久精品一区| 红桃av成人在线观看| 99re6热在线精品| 在线观看视频一区麻豆| 中文字幕高清免费在线人妻| 好了av中文字幕在线| 青青青青草手机在线视频免费看| 超碰97人人澡人人| 久久这里只有精彩视频免费| 97超碰人人搞人人| 一区二区三区视频,福利一区二区| 国产黄色片蝌蚪九色91| 98视频精品在线观看| 国产欧美日韩第三页| 日韩精品中文字幕在线| 亚洲女人的天堂av| 中出中文字幕在线观看| 国产日韩精品免费在线| 99精品国自产在线人| 超级av免费观看一区二区三区| 国产美女午夜福利久久| 女生被男生插的视频网站| 2020久久躁狠狠躁夜夜躁| 好了av中文字幕在线| rct470中文字幕在线| 美女福利视频网址导航| 日本欧美视频在线观看三区| 538精品在线观看视频| 91社福利《在线观看| 国产露脸对白在线观看| 开心 色 六月 婷婷| 亚洲熟妇久久无码精品| 夜色撩人久久7777| 日韩av熟妇在线观看| 精品一线二线三线日本| 欧美一区二区中文字幕电影| 色婷婷久久久久swag精品| 青青草人人妻人人妻| 精品国产亚洲av一淫| 国产日本欧美亚洲精品视| 中文字幕中文字幕 亚洲国产| 天天摸天天亲天天舔天天操天天爽| 久久久久久9999久久久久| 免费男阳茎伸入女阳道视频 | 久青青草视频手机在线免费观看| 日韩av有码一区二区三区4| av破解版在线观看| 女同性ⅹxx女同h偷拍| 日韩精品激情在线观看| 免费岛国喷水视频在线观看| okirakuhuhu在线观看| 岛国免费大片在线观看| av视屏免费在线播放| 亚洲综合色在线免费观看| 精产国品久久一二三产区区别| 激情小视频国产在线| 污污小视频91在线观看| 欲满人妻中文字幕在线| 亚洲丝袜老师诱惑在线观看| 欧洲欧美日韩国产在线| 黄工厂精品视频在线观看| 一区二区三区的久久的蜜桃的视频| 亚洲 欧美 自拍 偷拍 在线| 青青在线视频性感少妇和隔壁黑丝| 97精品视频在线观看| 午夜精品一区二区三区更新| 自拍偷拍,中文字幕| 天天日天天干天天爱| 亚洲在线观看中文字幕av| 91国语爽死我了不卡| 亚洲欧美激情国产综合久久久| 免费人成黄页网站在线观看国产 | 欧美成人小视频在线免费看| 日本三极片中文字幕| 欧美熟妇一区二区三区仙踪林| 欧美日韩中文字幕欧美| 高潮视频在线快速观看国家快速| 日本性感美女三级视频| 51国产偷自视频在线播放| 亚洲欧美激情人妻偷拍| 国产精品欧美日韩区二区| 日韩亚国产欧美三级涩爱| 无码国产精品一区二区高潮久久4 日韩欧美一级精品在线观看 | 国产精品久久久黄网站| 天天日天天干天天要| 精品久久久久久久久久久久人妻 | 色婷婷综合激情五月免费观看| 亚洲 欧美 自拍 偷拍 在线| 日本啪啪啪啪啪啪啪| 日本后入视频在线观看| 青青草原色片网站在线观看| 久久久久久久精品成人热| 岳太深了紧紧的中文字幕| 亚洲国产欧美国产综合在线| 亚洲另类图片蜜臀av| 欧美第一页在线免费观看视频| 一区二区三区另类在线| 免费无毒热热热热热热久| 亚洲变态另类色图天堂网| 99视频精品全部15| 一级A一级a爰片免费免会员| 欧洲国产成人精品91铁牛tv| 亚洲 欧美 自拍 偷拍 在线| 欧美另类一区二区视频| 美洲精品一二三产区区别| 三级av中文字幕在线观看| 成人网18免费视频版国产| 成人av电影免费版| 日本女人一级免费片| 91成人精品亚洲国产| 午夜精品福利91av| 久草视频福利在线首页| 在线观看av2025| 最新97国产在线视频| 男女啪啪视频免费在线观看| 色狠狠av线不卡香蕉一区二区| 欧美美女人体视频一区| 100%美女蜜桃视频| 天干天天天色天天日天天射| 国产三级精品三级在线不卡| 91麻豆精品久久久久| 涩涩的视频在线观看视频| 国产精品成久久久久三级蜜臀av | 美女日逼视频免费观看| 77久久久久国产精产品| 欧亚日韩一区二区三区观看视频| 欧美日韩熟女一区二区三区| 国内自拍第一页在线观看| 中文字幕高清在线免费播放 | 精品人妻伦一二三区久| 熟女91pooyn熟女| 97瑟瑟超碰在线香蕉| 亚洲无线观看国产高清在线| 天码人妻一区二区三区在线看| 美女 午夜 在线视频| 久久久久久久久久一区二区三区| 在线免费观看av日韩| 爱有来生高清在线中文字幕| 国产黄色片在线收看| 女蜜桃臀紧身瑜伽裤| 国产福利小视频免费观看| 久久久久久久久久一区二区三区 | 亚洲国际青青操综合网站| 国产男女视频在线播放| 日本黄色三级高清视频| 天天日天天摸天天爱| 国产麻豆剧果冻传媒app| 久久久久久97三级| 欧洲黄页网免费观看| 99久久久无码国产精品性出奶水| 五月婷婷在线观看视频免费| 亚洲精品亚洲人成在线导航| 青青热久免费精品视频在线观看| 91麻豆精品久久久久| 婷婷激情四射在线观看视频| 成人av久久精品一区二区| 4个黑人操素人视频网站精品91 | 国产熟妇人妻ⅹxxxx麻豆| 亚洲综合一区成人在线| aⅴ五十路av熟女中出| 国产卡一卡二卡三乱码手机| 亚洲欧美国产麻豆综合| 无码中文字幕波多野不卡| 97人妻无码AV碰碰视频| 亚洲专区激情在线观看视频| 欧美精品欧美极品欧美视频| 91老师蜜桃臀大屁股| 欧美另类重口味极品在线观看| 天天干天天啪天天舔| 人妻最新视频在线免费观看| 亚洲国产精品免费在线观看| 日本www中文字幕| 国产日韩欧美视频在线导航| 国产精品自拍在线视频| 亚洲国产美女一区二区三区软件| 欧美韩国日本国产亚洲| 熟女人妻一区二区精品视频| 亚洲午夜高清在线观看| 欧美黄色录像免费看的| caoporn蜜桃视频| 成人av中文字幕一区| 偷偷玩弄新婚人妻h视频| 综合页自拍视频在线播放| 国产精品一区二区av国| 免费在线看的黄网站| gav成人免费播放| 国产熟妇乱妇熟色T区| 亚洲自拍偷拍综合色| av网站色偷偷婷婷网男人的天堂| 日韩亚洲高清在线观看| 免费观看丰满少妇做受| 国产高潮无码喷水AV片在线观看| 一级黄片大鸡巴插入美女| 日本人妻欲求不满中文字幕| 大鸡巴操b视频在线| 美女大bxxxx内射| av中文字幕国产在线观看| 亚洲国产免费av一区二区三区 | av久久精品北条麻妃av观看| 人人爽亚洲av人人爽av| 天天综合天天综合天天网| 可以在线观看的av中文字幕| 亚洲综合另类精品小说| 五十路熟女av天堂| 久草视频中文字幕在线观看| 人人妻人人澡欧美91精品| 国产熟妇一区二区三区av| 成人性爱在线看四区| 熟女人妻在线观看视频| 日本xx片在线观看| 一区二区视频在线观看免费观看 | 日本阿v视频在线免费观看| 综合激情网激情五月天| 一级黄色av在线观看| 骚货自慰被发现爆操| 粉嫩av蜜乳av蜜臀| 日日操夜夜撸天天干| 黄色视频在线观看高清无码| 中文字幕免费福利视频6| 自拍偷拍vs一区二区三区| 亚洲av色图18p| 另类av十亚洲av| 中文字幕在线视频一区二区三区| 超pen在线观看视频公开97| 手机看片福利盒子日韩在线播放| 天天日夜夜操天天摸 | 激情人妻校园春色亚洲欧美| 美女被肏内射视频网站| 亚洲熟女久久久36d| 亚洲国产成人在线一区| 亚洲免费在线视频网站| 五十路丰满人妻熟妇| 国产一区二区火爆视频| 中文字幕第1页av一天堂网| 中文字幕 亚洲av| 欧洲精品第一页欧洲精品亚洲| 亚洲中文字幕校园春色| 亚洲 图片 欧美 图片| 成人动漫大肉棒插进去视频| 91精品国产91青青碰| 欧美黑人巨大性xxxxx猛交| 大屁股肉感人妻中文字幕在线| 中字幕人妻熟女人妻a62v网| 欧美中文字幕一区最新网址| 深田咏美亚洲一区二区| 久草极品美女视频在线观看| 欧美特级特黄a大片免费| 黑人3p华裔熟女普通话| 被大鸡吧操的好舒服视频免费| 一区二区三区 自拍偷拍| 人人人妻人人澡人人| 亚洲一区二区三区uij| 天天日天天鲁天天操| 极品性荡少妇一区二区色欲| 任你操视频免费在线观看| 免费一级黄色av网站| 免费在线看的黄片视频| 熟妇一区二区三区高清版| 99热碰碰热精品a中文| 亚洲精品 欧美日韩| 中文字幕日韩人妻在线三区| 老司机福利精品视频在线| 国产janese在线播放| 国产精品一区二区三区蜜臀av| 亚洲中文精品人人免费| 美女福利视频导航网站| 天天爽夜夜爽人人爽QC| 日韩欧美在线观看不卡一区二区| 在线免费观看av日韩| 97人人妻人人澡人人爽人人精品| 第一福利视频在线观看| 国产精品久久综合久久| 中文字幕 人妻精品| 换爱交换乱高清大片| 天堂v男人视频在线观看| 中文字幕日韩91人妻在线| 国产亚洲欧美45p| 涩爱综合久久五月蜜臀| 哥哥姐姐综合激情小说| 亚洲va天堂va国产va久| 91桃色成人网络在线观看| 在线不卡日韩视频播放| 中国熟女一区二区性xx| 亚洲综合图片20p| 中文字幕av第1页中文字幕| 75国产综合在线视频| 欧美亚洲免费视频观看| 国语对白xxxx乱大交| 夜色福利视频在线观看| 亚洲成人免费看电影| 丝袜亚洲另类欧美变态| 日韩人妻xxxxx| rct470中文字幕在线| 色综合久久无码中文字幕波多| 亚洲激情偷拍一区二区| 在线免费视频 自拍| 国产精品手机在线看片| 视频一区二区三区高清在线| 爱爱免费在线观看视频| 色狠狠av线不卡香蕉一区二区| 色呦呦视频在线观看视频| 毛茸茸的大外阴中国视频| 黄色成人在线中文字幕| 老司机免费视频网站在线看| 福利视频网久久91| 欧美乱妇无乱码一区二区| 一区二区三区国产精选在线播放| 好男人视频在线免费观看网站| 亚洲午夜伦理视频在线 | 欧美黑人性猛交xxxxⅹooo| 啪啪啪操人视频在线播放| 青娱乐极品视频青青草| 99热碰碰热精品a中文| 中文字幕人妻av在线观看| 国产精品sm调教视频| 女同互舔一区二区三区| 偷拍自拍 中文字幕| 国产欧美日韩在线观看不卡| av网址国产在线观看| 红杏久久av人妻一区| 在线观看国产免费麻豆| 在线免费91激情四射 | 欧美女同性恋免费a| 日本精品一区二区三区在线视频。| 亚洲福利精品视频在线免费观看| 青娱乐蜜桃臀av色| 91福利视频免费在线观看| 看一级特黄a大片日本片黑人| 熟女视频一区,二区,三区| 自拍偷拍 国产资源| 在线观看av亚洲情色| 91亚洲手机在线视频播放| 成熟丰满熟妇高潮xx×xx| 天天干天天操天天扣| 久久美欧人妻少妇一区二区三区| 天码人妻一区二区三区在线看| 久久一区二区三区人妻欧美| 精品高潮呻吟久久av| 日比视频老公慢点好舒服啊| 亚洲Av无码国产综合色区| 动色av一区二区三区| 人妻自拍视频中国大陆| 亚洲国产最大av综合| 66久久久久久久久久久| 又粗又长 明星操逼小视频| 欧美老妇精品另类不卡片| 国产视频精品资源网站| 岛国黄色大片在线观看| 日本在线不卡免费视频| 青青草人人妻人人妻| 亚洲 中文 自拍 另类 欧美| 又色又爽又黄的美女裸体| 日本高清在线不卡一区二区| 亚洲av日韩高清hd| 国产使劲操在线播放| 天天操天天干天天插| 黄色成年网站午夜在线观看| 涩爱综合久久五月蜜臀| 伊人精品福利综合导航| 午夜精品久久久久麻豆影视| av新中文天堂在线网址| 久久久久久久久久一区二区三区| 六月婷婷激情一区二区三区| 92福利视频午夜1000看| 国际av大片在线免费观看| av大全在线播放免费| 国产精品中文av在线播放| 黄色在线观看免费观看在线| 国产麻豆剧传媒精品国产av蜜桃| 欧美一区二区中文字幕电影| 天天日天天干天天插舔舔| 亚洲欧美一区二区三区电影| 久久久久久久久久一区二区三区 | 一区二区三区毛片国产一区| 免费人成黄页网站在线观看国产| 亚洲综合色在线免费观看| 果冻传媒av一区二区三区| 精品亚洲在线免费观看| 97超碰最新免费在线观看| 韩国爱爱视频中文字幕| 91自产国产精品视频| 888欧美视频在线| 2019av在线视频| www天堂在线久久| 久久久麻豆精亚洲av麻花| 亚洲一区二区人妻av| 国产av欧美精品高潮网站| 激情伦理欧美日韩中文字幕| 蜜臀av久久久久久久| 亚洲最大黄 嗯色 操 啊| 欧美综合婷婷欧美综合| 搞黄色在线免费观看| 国产又粗又黄又硬又爽| 日韩欧美制服诱惑一区在线| 啪啪啪啪啪啪啪啪啪啪黄色| 天天射夜夜操综合网| 亚洲人妻国产精品综合| 大陆胖女人与丈夫操b国语高清| 国产福利在线视频一区| 国产真实灌醉下药美女av福利| 老司机你懂得福利视频| 岛国黄色大片在线观看| 福利在线视频网址导航| 亚洲黄色av网站免费播放| 2022天天干天天操| 中国黄色av一级片| 日韩精品中文字幕福利| 少妇高潮一区二区三区| 动漫黑丝美女的鸡巴| 日韩美女综合中文字幕pp| 五月精品丁香久久久久福利社| 国产精品视频欧美一区二区| 黄页网视频在线免费观看| 欧洲精品第一页欧洲精品亚洲| 亚洲成人黄色一区二区三区| 香蕉91一区二区三区| 欧美老妇精品另类不卡片| 韩国黄色一级二级三级| 亚洲国产精品中文字幕网站| 久久一区二区三区人妻欧美| 在线视频这里只有精品自拍| 五十路老熟女码av| 蜜桃久久久久久久人妻| 欧美亚洲偷拍自拍色图| 9色精品视频在线观看| 亚洲日产av一区二区在线| 91chinese在线视频| 亚洲中文字幕国产日韩| 久久免费看少妇高潮完整版| 国产精品自拍偷拍a| 国产女人被做到高潮免费视频| 日韩欧美国产一区ab| 快插进小逼里大鸡吧视频| 国产三级影院在线观看| 少妇人妻久久久久视频黄片| 亚洲激情偷拍一区二区| 国产欧美精品不卡在线| 97超碰人人搞人人| 天天日天天鲁天天操| 亚洲免费va在线播放| 熟女人妻三十路四十路人妻斩| 51国产成人精品视频| 播放日本一区二区三区电影| 青青青aaaa免费| 亚洲av第国产精品| 五十路息与子猛烈交尾视频| 麻豆性色视频在线观看| 天天干天天操天天爽天天摸| 2022中文字幕在线| 97人妻无码AV碰碰视频| 男女啪啪视频免费在线观看| jiujiure精品视频在线| 亚洲欧美人精品高清| 国产亚洲国产av网站在线| 激情小视频国产在线| 天天色天天操天天透| 天堂va蜜桃一区入口| 亚洲蜜臀av一区二区三区九色| 亚洲免费视频欧洲免费视频| 99热这里只有国产精品6| 日本韩国亚洲综合日韩欧美国产| 国产亚州色婷婷久久99精品| 天天干天天操天天玩天天射 | 国产一区成人在线观看视频 | 91 亚洲视频在线观看| 国产视频在线视频播放| av无限看熟女人妻另类av| 婷婷综合亚洲爱久久| 国产午夜亚洲精品不卡在线观看| 国产亚洲成人免费在线观看| 午夜精品一区二区三区城中村| yy96视频在线观看| 国产精品三级三级三级| 高潮喷水在线视频观看| 成人av天堂丝袜在线观看| 78色精品一区二区三区| 日本一道二三区视频久久| 美女视频福利免费看| 伊人成人综合开心网| 精品亚洲在线免费观看| 国产+亚洲+欧美+另类| 国产亚洲精品视频合集| 少妇一区二区三区久久久| 免费在线观看视频啪啪| 中文字幕日韩91人妻在线| 中文字幕欧美日韩射射一| 亚洲变态另类色图天堂网| 国产janese在线播放| 熟女国产一区亚洲中文字幕| 国产V亚洲V天堂无码欠欠| 宅男噜噜噜666国产| 午夜激情精品福利视频| 国产91精品拍在线观看| 日韩人妻丝袜中文字幕| 在线观看911精品国产| 亚洲午夜电影在线观看| 亚洲欧美综合在线探花| 免费看美女脱光衣服的视频| 精品国产乱码一区二区三区乱| 91色秘乱一区二区三区| 欧美特级特黄a大片免费| 精品亚洲国产中文自在线| 亚洲中文字幕人妻一区| 岛国黄色大片在线观看| 国产自拍黄片在线观看| 国产伊人免费在线播放| 午夜在线精品偷拍一区二| 中文字幕人妻av在线观看| 成人性爱在线看四区| 天天操天天干天天日狠狠插| 亚洲欧美日韩视频免费观看| 中文字幕日韩91人妻在线| 亚洲中文字幕乱码区| 岛国一区二区三区视频在线| 国产成人精品午夜福利训2021| 午夜毛片不卡在线看| 男人的天堂av日韩亚洲| 天天日天天做天天日天天做| 国产一区二区久久久裸臀| 硬鸡巴动态操女人逼视频| 一个色综合男人天堂| 北条麻妃av在线免费观看| 国产一区二区神马久久| 美女吃鸡巴操逼高潮视频| 中文字幕第1页av一天堂网| 国产精品熟女久久久久浪潮| 亚洲人成精品久久久久久久| 亚洲一区av中文字幕在线观看| 日韩av大胆在线观看| 93人妻人人揉人人澡人人| 熟女俱乐部一二三区| 亚洲av男人的天堂你懂的| 都市家庭人妻激情自拍视频| 老鸭窝在线观看一区| 57pao国产一区二区| 久久久久久久久久久久久97| 亚洲激情,偷拍视频| 无码精品一区二区三区人| 丰满熟女午夜福利视频| 午夜精品一区二区三区4| 18禁无翼鸟成人在线 | 成人在线欧美日韩国产| 亚洲成人午夜电影在线观看| 五十路息与子猛烈交尾视频 | 夜鲁夜鲁狠鲁天天在线| 欧美偷拍亚洲一区二区| 国产精品福利小视频a| 日韩av有码中文字幕| 天天干夜夜操天天舔| 大香蕉伊人中文字幕| 欧美久久久久久三级网| 边摸边做超爽毛片18禁色戒| 欧美日本在线视频一区| 国产视频在线视频播放| 2021国产一区二区| 夜鲁夜鲁狠鲁天天在线| 国产+亚洲+欧美+另类| 中文人妻AV久久人妻水| 人妻爱爱 中文字幕| 亚洲av香蕉一区区二区三区犇| 桃色视频在线观看一区二区| yy96视频在线观看| 一区二区三区蜜臀在线| 亚洲欧美一区二区三区爱爱动图| 午夜精品九一唐人麻豆嫩草成人| av日韩在线观看大全| 黄色视频成年人免费观看| 久久久久久99国产精品| 久青青草视频手机在线免费观看| 伊人综合aⅴ在线网| 大鸡八强奸视频在线观看| 唐人色亚洲av嫩草| 一区二区免费高清黄色视频| 婷婷综合亚洲爱久久| 午夜精品久久久久久99热| 亚洲超碰97人人做人人爱| 亚洲国产美女一区二区三区软件| 97精品人妻一区二区三区精品| gay gay男男瑟瑟在线网站| 青娱乐在线免费视频盛宴| 国产亚洲欧美视频网站| 欧美精品激情在线最新观看视频 | 2019av在线视频| 久久国产精品精品美女| 亚国产成人精品久久久| 久久永久免费精品人妻专区| 性生活第二下硬不起来| 超污视频在线观看污污污| 日本人妻少妇18—xx| 99久久超碰人妻国产| 粉嫩欧美美人妻小视频| 国产高潮无码喷水AV片在线观看| 伊人情人综合成人久久网小说| 国产精品久久9999| 新97超碰在线观看| 亚洲女人的天堂av| 操的小逼流水的文章| 国产精品久久久久久久久福交| 人妻少妇精品久久久久久| 美女av色播在线播放| 91极品新人『兔兔』精品新作| 日本a级视频老女人| 成人在线欧美日韩国产| 人人妻人人澡人人爽人人dvl| 在线观看911精品国产 | 在线免费观看日本片| 做爰视频毛片下载蜜桃视频1| 亚洲男人的天堂a在线| 日辽宁老肥女在线观看视频| 亚洲成人av一区久久| 免费在线看的黄网站| 蜜桃色婷婷久久久福利在线| 黄色成人在线中文字幕| 久久久久久久一区二区三| 成人高清在线观看视频| 91免费黄片可看视频| 欧美成人黄片一区二区三区 | 国产欧美精品不卡在线| 男人天堂最新地址av| 女人精品内射国产99| 国产成人自拍视频在线免费观看| 亚洲狠狠婷婷综合久久app| 欧洲亚洲欧美日韩综合| 欧美日韩中文字幕欧美| 狠狠的往里顶撞h百合| 亚洲av男人天堂久久| 馒头大胆亚洲一区二区| 超碰中文字幕免费观看| 51精品视频免费在线观看| 中文字幕在线一区精品| 狠狠躁夜夜躁人人爽天天久天啪| 换爱交换乱高清大片| 丝袜肉丝一区二区三区四区在线| 蝴蝶伊人久久中文娱乐网| 日本欧美视频在线观看三区| 亚洲成人国产av在线| 一区二区三区毛片国产一区| 日韩精品啪啪视频一道免费| 熟女在线视频一区二区三区| 91麻豆精品久久久久| 天天夜天天日天天日| 亚洲麻豆一区二区三区| 亚洲国产美女一区二区三区软件| av中文字幕福利网| 欧美爆乳肉感大码在线观看| 2021国产一区二区| 播放日本一区二区三区电影| 久久久精品国产亚洲AV一| 欧美黑人性暴力猛交喷水| 夜色撩人久久7777| 男生用鸡操女生视频动漫| 中文字幕在线观看极品视频| 内射久久久久综合网| 日本一区美女福利视频| 99精品国产aⅴ在线观看| 亚洲2021av天堂| 三级等保密码要求条款| 免费男阳茎伸入女阳道视频| 亚洲国产欧美一区二区丝袜黑人| 色秀欧美视频第一页| 日本黄在免费看视频| 特级欧美插插插插插bbbbb| 婷婷五月亚洲综合在线| 日本人妻欲求不满中文字幕| 国产精品久久久久久美女校花| 91亚洲手机在线视频播放| 伊人精品福利综合导航| 亚洲精品三级av在线免费观看| 丝袜美腿视频诱惑亚洲无 | 91人妻精品一区二区在线看| 99热色原网这里只有精品| 天天干天天搞天天摸| 在线 中文字幕 一区| 亚洲精品久久综合久| 丝袜国产专区在线观看| 最新国产精品网址在线观看| 99婷婷在线观看视频| 老司机免费视频网站在线看| 日本午夜久久女同精女女| 亚洲熟女女同志女同| 自拍偷拍日韩欧美一区二区| 真实国产乱子伦一区二区| 亚洲激情唯美亚洲激情图片| 性感美女高潮视频久久久| 亚洲激情,偷拍视频| 91超碰青青中文字幕| 在线播放 日韩 av| 成人av中文字幕一区| 日本女人一级免费片| 国产精品成久久久久三级蜜臀av| 91免费黄片可看视频| 熟女在线视频一区二区三区| 国产高清精品一区二区三区| 欧美精品 日韩国产| 神马午夜在线观看视频| 亚洲欧美激情国产综合久久久| 成人国产激情自拍三区| 天天日天天天天天天天天天天| 亚洲1区2区3区精华液| 欧美亚洲牲夜夜综合久久| gav成人免费播放| 五月婷婷在线观看视频免费 | 亚洲熟妇x久久av久久| 亚洲少妇高潮免费观看| 亚洲一区二区三区在线高清| 天天做天天干天天舔| 在线免费91激情四射 | 亚洲男人让女人爽的视频| 欧美熟妇一区二区三区仙踪林| 蜜桃精品久久久一区二区| 四川五十路熟女av| 91精品综合久久久久3d动漫| 国产精品久久久久久久久福交| 国产欧美日韩第三页| 在线观看成人国产电影| 日韩美av高清在线| 丝袜肉丝一区二区三区四区在线| 一区二区视频在线观看免费观看 | 婷婷五月亚洲综合在线| sspd152中文字幕在线| 一本久久精品一区二区| 男人天堂色男人av| 国产丰满熟女成人视频| 国产精品亚洲在线观看| 丝袜肉丝一区二区三区四区在线 | 521精品视频在线观看| 自拍偷拍亚洲精品第2页| 久久久久久九九99精品| 亚国产成人精品久久久| 天天色天天爱天天爽| 99国内精品永久免费视频| 午夜婷婷在线观看视频| 真实国模和老外性视频| 9色在线视频免费观看| 亚洲一区二区激情在线| 中文字幕免费福利视频6| 国产高清97在线观看视频| 手机看片福利盒子日韩在线播放| 夜夜操,天天操,狠狠操| 97少妇精品在线观看| 日韩一区二区三区三州| 99精品亚洲av无码国产另类| 久久精品国产亚洲精品166m| 欧美成人一二三在线网| 少妇露脸深喉口爆吞精| 人妻久久久精品69系列| 午夜精品福利一区二区三区p | 97国产在线观看高清| 久久热久久视频在线观看| 任我爽精品视频在线播放| 19一区二区三区在线播放| wwwxxx一级黄色片| 我想看操逼黄色大片| 亚洲国产精品黑丝美女| 成人综合亚洲欧美一区| 国产精品视频一区在线播放| 99av国产精品欲麻豆| 免费观看理论片完整版| av中文字幕在线观看第三页| 社区自拍揄拍尻屁你懂的| 很黄很污很色的午夜网站在线观看 | 亚洲成人免费看电影| 久久三久久三久久三久久| 99一区二区在线观看| 欧美精品中文字幕久久二区| 中文字幕在线乱码一区二区 | 肏插流水妹子在线乐播下载| 偷拍自拍视频图片免费| 少妇人妻二三区视频| 人妻少妇一区二区三区蜜桃| 精品美女久久久久久| 成人动漫大肉棒插进去视频| 无码日韩人妻精品久久| 啊啊啊想要被插进去视频| 亚洲日产av一区二区在线| 日本午夜福利免费视频| 日本中文字幕一二区视频| 天天操天天弄天天射| 92福利视频午夜1000看| 在线观看911精品国产| 国产清纯美女al在线| 国产成人精品一区在线观看 | 91欧美在线免费观看| 边摸边做超爽毛片18禁色戒| 欧美黑人与人妻精品| 天天操,天天干,天天射| 亚洲图片偷拍自拍区| 亚洲免费av在线视频| 成人av中文字幕一区| 美女av色播在线播放| 亚洲av日韩精品久久久| 国产精品欧美日韩区二区| 欧美在线精品一区二区三区视频|