精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

新項目為什么決定用 Spring Boot 3.1 + JDK 17了

開發 架構
本篇博客將詳細介紹Spring Boot 3.1的新特性、升級說明以及核心功能的改進。

大家好,我是哪吒。

一、Spring Boot 3.1正式發布

經過半年的沉淀 Spring Boot 3.1于2023年5月18日正式發布了,帶來了許多令人興奮的新特性和改進。

本篇博客將詳細介紹Spring Boot 3.1的新特性、升級說明以及核心功能的改進。

圖片

同時,2.6.x 版本線已經停止維護了,最新支持版本如下圖所示:

圖片

最新支持版本

下圖時間軸展示了2.7.x 這也是目前唯一正在維護的 2.x 版本線了,商業支持的版本也只有 2.5.x 了。

圖片

商業支持的版本

二、最低環境要求

Spring Boot 3.1.0 需要Java 17,并且兼容 Java 20(包括 Java 20)。 還需要Spring Framework 6.0.9或更高版本。

1、為以下構建工具提供顯式構建支持:

圖片

2、Spring Boot 支持以下嵌入式 servlet 容器:

圖片

3、GraalVM本地鏡像:

可以使用 GraalVM 22.3 或更高版本將 Spring Boot 應用程序轉換為本機映像。

可以使用原生構建工具Gradle/Maven 插件或native-imageGraalVM 提供的工具來創建圖像。您還可以使用原生圖像 Paketo buildpack創建原生圖像。

4、支持以下版本:

圖片

三、核心特性

1、Apache HttpClient 4 的依賴管理

Spring Framework 6 中刪除了RestTemplate對Apache HttpClient 4 的支持,取而代之的是 Apache HttpClient 5。Spring Boot 3.0 包括 HttpClient 4 和 5 的依賴管理。繼續使用 HttpClient 4 的應用程序在使用時可能會遇到難以診斷的錯誤。Spring Boot 3.1 移除了 HttpClient 4 的依賴管理,以鼓勵用戶轉而使用 HttpClient 5。

HttpClient 5 是Apache HttpComponents中的一個 HTTP 客戶端庫,可以用來發送 HTTP 請求和接收 HTTP 響應。下面是 HttpClient 5 的簡單使用示例:

(1)添加 HttpClient 5 的依賴

在 Maven 項目中,可以通過在 pom.xml 文件中添加以下依賴將 HttpClient 5 添加到項目中:

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient5</artifactId>
        <version>5.1</version>
    </dependency>
</dependencies>

(2)創建 HttpClient 實例:

HttpClient httpClient = HttpClientBuilder.create().build();

(3)創建 HttpGet 請求:

HttpGet httpGet = new HttpGet("https://www.example.com/");

(4)發送請求并獲取響應:

HttpResponse response = httpClient.execute(httpGet);

(5)處理響應:

int statusCode = response.getStatusLine().getStatusCode();
String responseBody = EntityUtils.toString(response.getEntity());

其中,response.getStatusLine().getStatusCode() 可以獲取響應狀態碼,EntityUtils.toString(response.getEntity()) 可以獲取響應正文。

(6)完整的代碼如下:

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        HttpClient httpClient = HttpClientBuilder.create().build();
        HttpGet httpGet = new HttpGet("https://www.example.com/");
        HttpResponse response = httpClient.execute(httpGet);
        int statusCode = response.getStatusLine().getStatusCode();
        String responseBody = EntityUtils.toString(response.getEntity());
        System.out.println("Status code: " + statusCode);
        System.out.println("Response body: " + responseBody);
    }
}

2、Servlet 和過濾器注冊

ServletRegistrationBean如果注冊失敗,和類FilterRegistrationBean現在將失敗,IllegalStateException而不是記錄警告。如果您需要舊的行為,您應該調用setIgnoreRegistrationFailure(true)您的注冊 bean。

3、Git 提交 ID Maven 插件版本屬性

用于覆蓋 的版本的屬性io.github.git-commit-id:git-commit-id-maven-plugin已更新以與其工件名稱保持一致。為了適應這種變化,請git-commit-id-plugin.version在git-commit-id-maven-plugin.version您的pom.xml。

4、Hibernate 6.2

Spring Boot 3.1 升級到 Hibernate 6.2。請參閱Hibernate 6.2 遷移指南以了解這對您的應用程序有何影響。

圖片

Hibernate 6.2 遷移指南

5、Jackson 2.15

Spring Boot 3.1 升級到 Jackson 2.15。請參閱Jackson wiki以了解這對您的應用程序有何影響。

圖片

2.15 中的一個顯著變化是引入了處理限制。要調整這些約束,請定義Jackson2ObjectMapperBuilderCustomizer類似于以下內容:

@Bean 
Jackson2ObjectMapperBuilderCustomizer customStreamReadConstraints() { 
 return (builder) -> builder.postConfigurer((objectMapper) -> objectMapper.getFactory() 
  .setStreamReadConstraints(StreamReadConstraints.builder().maxNestingDepth(2000).build())); 
}

6、Mockito 5

Spring Boot 3.1 升級到 Mockito 5,特別是 5.3。請參閱 Mockito 發行說明以了解 Mockito 5.x 系列中的顯著變化。

7、Health Group Membership Validation

現在在啟動時驗證配置的健康組成員身份。如果包含或排除了不存在的健康指標,啟動將失敗。可以禁用此驗證,恢復早期版本的行為,方法是設置management.endpoint.health.validate-group-membership為false。

四、增強功能

1、服務連接

引入了新的服務連接概念。此類連接在應用程序中由 bean 表示ConnectionDetails。這些 bean 提供了必要的細節來建立與刪除服務的連接,并且 Spring Boot 的自動配置已更新為使用ConnectionDetailsbean。當此類 beans 可用時,它們將優先于任何與連接相關的配置屬性。與連接本身無關的配置屬性,例如控制連接池大小和行為的屬性,仍將被使用。

此低級功能旨在作為其他高級功能的構建塊,這些功能通過定義ConnectionDetailsbean 自動配置服務連接。

在沒有在其他地方定義適當的 bean 的情況下…ConnectionDetails,Spring Boot 的自動配置已更新為定義自己的基礎,由相關配置屬性支持。這允許…ConnectionDetails注入而不必處理沒有這樣的 bean 可用并且需要回退到基于屬性的配置的情況。

2、在開發時使用測試容器

引入了對在開發時使用測試容器管理外部服務的支持。

在開發時使用 Testcontainer 時,可以使用新的 Maven goal( spring-boot:test-run) 和 Gradle task( bootTestRun) 通過測試 main 方法啟動應用程序。

Container可以使用新注釋導入將 Testcontainers 實例聲明為靜態字段的類@ImportTestcontainers。

測試容器生命周期的管理得到改進,確保容器先初始化,最后銷毀。對可重復使用容器的支持也得到了改進。

從方法貢獻屬性Container @Bean,DynamicPropertyRegistry現在可以注入。@DynamicPropertySource這與您在測試中使用的方式類似。

有關詳細信息,請參閱下圖:

圖片

測試容器服務連接

使用 Testcontainers 時,@DynamicPropertySource通常用于根據容器的設置配置應用程序屬性:

@Container
static GenericContainer redis = new GenericContainer(DockerImageName.parse("redis").withTag("4.0.14"));

// …

@DynamicPropertySource
static void redisProperties(DynamicPropertyRegistry registry) {
 registry.add("spring.data.redis.host", redis::getHost);
 registry.add("spring.data.redis.port", redis::getFirstMappedPort);
}

現在可以簡化為以下內容:

@Container
@ServiceConnection
static GenericContainer redis = new GenericContainer(DockerImageName.parse("redis").withTag("4.0.14"));

此處,@ServiceConnection指示容器應使用 Redis 連接詳細信息的來源。spring-boot-testcontainers提供注釋的模塊將從@ServiceConnection容器中提取這些細節,同時仍然允許使用 Testcontainers API 來定義和配置它。

下圖查看注釋當前支持的服務的完整列表@ServiceConnection。

3、Docker Compose

一個新模塊,spring-boot-docker-compose提供與 Docker Compose 的集成。當您的應用程序啟動時,Docker Compose 集成將在當前工作目錄中查找配置文件。支持以下文件:

  • compose.yaml
  • compose.yml
  • docker-compose.yaml
  • docker-compose.yml

要使用非標準文件,請設置該spring.docker.compose.file屬性。

默認情況下,配置文件中聲明的服務將被啟動docker compose up,這些服務的連接詳細信息 bean 將被添加到應用程序上下文中,以便可以在沒有任何進一步配置的情況下使用這些服務。當應用程序停止時,服務將使用 關閉docker compose down。spring.docker.compose.lifecycle-management可以使用、spring.docker.compose.startup.command和配置屬性自定義此生命周期管理和用于啟動和關閉服務的命令spring.docker.compose.shutdown.command。

下圖展示更多詳細信息,包括當前支持的服務列表:

圖片

4、SSL 配置

RestTemplateJava KeyStore 和 PEM 編碼證書等 SSL 信任材料現在可以使用屬性進行配置,并WebClient以更一致的方式應用于各種類型的連接,例如嵌入式 Web 服務器、數據服務。

使用 PEM 編碼證書配置 SSL示例:

帶有前綴的配置屬性spring.ssl.bundle.pem可用于以 PEM 編碼文本的形式配置信任材料包。每個包都有一個用戶提供的名稱,可用于引用該包。

當用于保護嵌入式 Web 服務器時,akeystore通常配置有證書和私鑰,如本例所示:

spring:
  ssl:
    bundle:
      pem:
        mybundle:
          keystore:
            certificate: "classpath:application.crt"
            private-key: "classpath:application.key"

當用于保護嵌入式 Web 服務器時,truststore通常使用服務器證書配置 a,如本例所示:

spring:
  ssl:
    bundle:
      pem:
        mybundle:
          truststore:
            certificate: "classpath:server.crt"

5、Spring授權服務器的自動配置

此版本提供了對Spring Authorization Server項目的支持以及一個新的spring-boot-starter-oauth2-authorization-server啟動器。

示例:

如果您spring-security-oauth2-authorization-server的類路徑上有,您可以利用一些自動配置來設置基于 Servlet 的 OAuth2 授權服務器。

您可以在spring.security.oauth2.authorizationserver.client前綴下注冊多個 OAuth2 客戶端,如以下示例所示:

spring:
  security:
    oauth2:
      authorizationserver:
        client:
          my-client-1:
            registration:
              client-id: "abcd"
              client-secret: "{noop}secret1"
              client-authentication-methods:
                - "client_secret_basic"
              authorization-grant-types:
                - "authorization_code"
                - "refresh_token"
              redirect-uris:
                - "https://my-client-1.com/login/oauth2/code/abcd"
                - "https://my-client-1.com/authorized"
              scopes:
                - "openid"
                - "profile"
                - "email"
                - "phone"
                - "address"
            require-authorization-consent: true
          my-client-2:
            registration:
              client-id: "efgh"
              client-secret: "{noop}secret2"
              client-authentication-methods:
                - "client_secret_jwt"
              authorization-grant-types:
                - "client_credentials"
              scopes:
                - "user.read"
                - "user.write"
            jwk-set-uri: "https://my-client-2.com/jwks"
            token-endpoint-authentication-signing-algorithm: "RS256"

Spring Boot 為 Spring Authorization Server 提供的自動配置,就是為了快速上手而設計的。大多數應用程序都需要定制,并希望定義幾個 bean 來覆蓋自動配置。

以下組件可以定義為 beans 以覆蓋特定于 Spring Authorization Server 的自動配置:

  • RegisteredClientRepository
  • AuthorizationServerSettings
  • SecurityFilterChain
  • com.nimbusds.jose.jwk.source.JWKSource<com.nimbusds.jose.proc.SecurityContext>
  • JwtDecoder

6、Docker鏡像構建

(1)圖像創建日期和時間

Mavenspring-boot:build-image目標和bootBuildImageGradle 任務現在有一個createdDate配置選項,可用于將Created生成的圖像元數據中的字段值設置為用戶指定的日期或使用now當前日期和時間。

(2)圖像應用目錄

Mavenspring-boot:build-image目標和bootBuildImageGradle 任務現在有一個applicationDirectory配置選項,可用于設置構建器映像中的位置,應用程序內容將上傳到該位置以供構建包使用。這也將是應用程序內容在生成的圖像中的位置。

五、用于 GraphQL 的 Spring

1、異常處理

@GraphQlExceptionHandler在控制器中聲明的方法,或者@ControllerAdvice現在由 Spring for GraphQL 開箱即用地支持控制器方法調用。此外,Spring Boot通過@ControllerAdvice配置DataFetcher、QueryDslDataFetcher、QueryByExampleDataFetcher、GraphQlSource。

2、分頁和排序

當 Spring Data 在類路徑上時,GraphQL 的 Spring 現在自動配置為支持分頁和排序。

3、改進的模式類型生成

GraphQlSource現在自動配置了一個ConnectionTypeDefinitionConfigurer. 它通過查找類型定義名稱以“Connection”結尾的字段來生成“Connection”類型Connection Type,如果它們尚不存在,則添加所需的類型定義。

4、支持使用 OTLP 導出跟蹤

當io.opentelemetry:opentelemetry-exporter-otlp在類路徑上時,OtlpHttpSpanExporter將自動配置。可以使用management.otlp.tracing.*配置屬性自定義導出器的配置。

5、Wavefront Span 標簽定制

如果您正在使用 Wavefront 并且想要為 RED 指標自定義 span 標簽,現在有一個名為的新屬性management.wavefront.trace-derived-custom-tag-keys允許您執行此操作。

6、文件和控制臺的不同日志級別

如果您使用的是 Logback 或 Log4j2,現在可以選擇為控制臺日志和文件日志設置不同的日志級別。這可以使用配置屬性logging.threshold.console和來設置logging.threshold.file。

7、最大 HTTP 響應標頭大小

如果您使用的是 Tomcat 或 Jetty,您現在可以限制最大 HTTP 響應標頭大小。對于 Tomcat,您可以使用該server.tomcat.max-http-response-header-size屬性,而對于 Jetty,您可以使用server.jetty.max-http-response-header-size. 默認情況下,響應標頭僅限于8kb。

六、spring Boot 3.1 中的棄用

已棄用

取而代之

spring.kafka.streams.cache-max-size-buffering

spring.kafka.streams.state-store-cache-max-size

MongoPropertiesClientSettingsBuilderCustomizer

StandardMongoClientSettingsBuilderCustomizer

org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesRegistrationAdapter

org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper

org.springframework.boot.web.server.SslStoreProvider

SSL bundle

七、依賴升級

Spring Boot 3.1.0 遷移到幾個 Spring 項目的新版本:

Spring項目

Versions

Spring Authorization Server

1.1.0

Spring Batch

5.0.2

Spring Data

2023.0.0

Spring Framework

6.0.9

Spring GraphQL

1.2.0

Spring HATEOAS

2.1.0

Spring Integration

6.1.0

Spring Kafka

3.0.7

Spring LDAP

3.1.0

Spring Security

6.1.0

Spring Session

3.1.0

Spring Web Services

4.0.4

許多第三方依賴項也已更新,其中一些更值得注意的是:

第三方依賴

Versions

Couchbase Java Client

3.4.6

Elasticsearch Client

8.7

Hibernate

6.2

GraphQL Java

20.1

Jackson

2.15.0

Kafka

3.4.0

Kotlin

1.8.21

Liquibase

4.20

Micrometer

1.11.0

Micrometer Tracing

1.1.1

Mockito

5.3

Native Build Tools

0.9.22

Neo4j Java Driver

5.8.0

OpenTelemetry

1.24.0

Rabbit AMQP Client

5.17.0

Reactor BOM

2022.0.7

Testcontainers

1.18

Undertow

2.3.6.Final

八、其他

  1. Spring Kafka ContainerCustomizer bean現在被應用于自動配置的KafkaListenerContainerFactory。
  2. 添加了management.otlp.metrics.export.headers屬性,以支持向OTLP注冊表發送頭。
  3. JoranConfigurators bean現在可以在AOT處理中使用。
  4. spring.kafka.admin添加了額外的close-timeout、operation-timeout、auto-startup和auto-create屬性。
  5. BatchInterceptor bean現在被應用于自動配置的ConcurrentKafkaListenerContainerFactory。
  6. Nomad已添加到已識別的CloudPlaform值列表中。
  7. 現在可以為spring.jmx指定registration-policy屬性。
  8. 添加了withSanitizedValue實用方法到SanitizableData中。
  9. 引入了RabbitTemplateCustomizer。這種類型的bean將自定義自動配置的RabbitTemplate。
  10. 支持CNB Platform API 0.11。
  11. spring-boot-starter-parent將Maven編譯器版本設置為配置的Java版本。
  12. 通過設置-Dspring-boot.build-info.skip,現在可以跳過build-info目標。
  13. Micrometer的OtlpMeterRegistry支持聚合時間配置。
  14. Log4j2和Logback支持更多顏色。
  15. 添加了對R2DBC MySQL驅動程序(io.asyncer:r2dbc-mysql)的依賴管理。
  16. 添加了對R2DBC MariaDB驅動程序(org.mariadb:r2dbc-mariadb)的依賴管理。
  17. 使用OpenTelemetry時,用于創建自動配置的SdkTracerProvider的SdkTracerProviderBuilder可以通過定義SdkTracerProviderBuilderCustomizer bean進行自定義。
  18. MockServerRestTemplateCustomizer現在通過新的setBufferContent方法支持啟用內容緩沖
  19. 當自動配置Spring Batch時,可以通過定義BatchConversionServiceCustomizer bean來自定義轉換服務。
  20. 用于創建JWK Set URI的JTW解碼器的構建器可以通過定義JwkSetUriReactiveJwtDecoderBuilderCustomizer或JwkSetUriJwtDecoderBuilderCustomizer bean進行自定義。
  21. 恢復了對io.r2dbc:r2dbc-mssql的依賴管理。
  22. Logback的根日志級別現在盡早默認為INFO。
  23. 默認情況下,Docker Compose現在使用stop而不是down停止。

本文轉載自微信公眾號「哪吒編程」,可以通過以下二維碼關注。轉載本文請聯系哪吒編程公眾號。

責任編輯:姜華 來源: 哪吒編程
相關推薦

2023-05-17 08:20:34

Java 17編程語言

2024-10-17 14:14:29

2022-11-09 07:49:12

Records類聲明代碼

2023-07-31 07:45:12

Spring項目Jakarta

2024-08-26 09:36:06

2024-05-29 09:50:24

2025-04-29 00:04:00

2024-07-04 08:56:35

Vue3項目Pinia

2012-04-06 10:35:30

SpringJavaHibernate

2020-05-07 16:30:32

Spring BootJava

2020-06-30 14:25:28

MavenGradle Spring

2021-01-08 10:05:01

JavaSpring Boojar

2025-04-01 08:08:29

2023-07-07 09:08:21

2019-09-29 10:42:02

人工智能機器學習技術

2018-02-10 08:59:19

物聯網IoT硬件

2020-08-14 10:40:35

RestTemplatRetrofitJava

2022-05-07 07:47:23

SpringJava開發

2021-04-07 08:00:00

Java開發工具

2019-09-09 14:18:35

人工智能數據開發
點贊
收藏

51CTO技術棧公眾號

91成人国产在线观看| 日韩一区二区三区免费看| 久久99精品久久久久久久青青日本| 日本黄色片视频| 亚洲精品456| 欧美日韩国产综合久久| 日本成人在线不卡| 亚洲日本香蕉视频| 精品在线免费观看| 久久久爽爽爽美女图片| 午夜精产品一区二区在线观看的| 成人在线视频国产| 婷婷综合在线观看| 伊人久久大香线蕉综合75| 三级在线观看网站| 久久www免费人成看片高清| 久久久久久久国产精品| 永久免费成人代码| 中文字幕亚洲在线观看 | 欧美成ee人免费视频| 亚洲一区二区影视| 99综合在线| 不卡av电影院| 国产综合精品久久久久成人av| 91亚洲无吗| 欧美二区在线观看| 日韩手机在线观看视频| 黑人另类精品××××性爽| 国产精品美女久久久久aⅴ| 精品一区日韩成人| 国产不卡av在线播放| 美女在线观看视频一区二区| 日本一区二区三区在线播放| 国产精品二区一区二区aⅴ| 99久久精品网站| 亚洲三级 欧美三级| 久久福利小视频| 日本亚洲视频| 在线成人av网站| 久久久久国产一区| 天天免费亚洲黑人免费| 欧美日韩国产影院| 日本阿v视频在线观看| 国产区在线观看| 国产精品久久网站| 亚洲欧美国产不卡| av资源网站在线观看| 久久久不卡网国产精品一区| 精品一区二区日本| 三级视频网站在线| 99re热视频精品| 精品国产区在线| 同心难改在线观看| 国产成人小视频| 不卡视频一区二区| 亚洲伦理在线观看| 成人性视频免费网站| 粉嫩av一区二区三区免费观看| 国产福利第一视频| 国产精品911| 成人动漫视频在线观看免费| 亚洲精品福利网站| 国产69精品一区二区亚洲孕妇| 99国产在线观看| 蜜臀久久精品久久久久| 成人福利视频在线看| 精品一区二区三区国产| 久蕉依人在线视频| 中文字幕 久热精品 视频在线| 一区二区三区四区欧美日韩| yellow91字幕网在线| 一区二区成人在线| 日本网站免费在线观看| 欧美艳星kaydenkross| 欧美性猛交xxxx乱大交退制版| 亚洲视频一二三四| 国产专区精品| 亚洲激情视频在线| 三上悠亚影音先锋| 欧美韩日高清| 欧美激情二区三区| 国产高清中文字幕| 久久精品国产99久久6| 91欧美视频网站| 亚洲女人18毛片水真多| 久久影院午夜论| 亚洲欧洲日韩综合二区| 成人区精品一区二区不卡| 亚洲一区二区黄色| 日本精品一区二区三区四区 | 国产欧美va欧美va香蕉在线| 国产成人精品白浆久久69| 成人深夜在线观看| 四虎影视永久免费在线观看一区二区三区| 欧美成年黄网站色视频| 亚洲国产综合在线| 欧美三级理论片| 岛国成人av| 尤物yw午夜国产精品视频明星| 日韩在线中文字幕视频| 国产亚洲高清视频| 91精品综合视频| 三级av在线| 亚洲精品第一国产综合野| 高清在线观看免费| 国产成人久久精品一区二区三区| 亚洲电影免费观看高清完整版在线| 性欧美一区二区| 国产在线不卡| 国产精品久久久久久久美男| 全国男人的天堂网| 一区精品在线播放| 男人天堂网视频| 懂色av色香蕉一区二区蜜桃| 亚洲摸下面视频| 欧美日韩一级在线观看| 日产欧产美韩系列久久99| 99re视频在线播放| 成年人视频免费在线观看| 一二三区精品福利视频| 欧美第一页浮力影院| 久久久久高潮毛片免费全部播放| 日韩一区二区福利| 三级网站在线播放| 99久久久久久99| 日韩成人手机在线| 欧美成人福利| 在线播放精品一区二区三区| 天堂а√在线中文在线新版| 国产成人免费视频一区| 综合网五月天| 超碰这里只有精品| 亚洲男人天堂视频| xxxx.国产| 成人福利视频网站| 成人免费在线视频播放| 伊人国产精品| 久久精品视频亚洲| 97人妻精品视频一区| 久久综合久久综合久久综合| 国产 日韩 欧美在线| 1313精品午夜理伦电影| 美女视频黄免费的亚洲男人天堂| 中文文字幕一区二区三三| 久久先锋影音av| 91好吊色国产欧美日韩在线| 成人av婷婷| 久久久亚洲影院| 狠狠综合久久av一区二区 | 青青草av在线播放| av影院午夜一区| 99热久久这里只有精品| 荡女精品导航| 欧美一区深夜视频| 麻豆国产在线播放| 欧美主播一区二区三区| 最新日韩免费视频| 韩国精品久久久| 400部精品国偷自产在线观看| 粉嫩av国产一区二区三区| 欧美成人中文字幕| 性生交生活影碟片| 午夜私人影院久久久久| 魔女鞋交玉足榨精调教| 久久国产欧美| 亚洲精品成人a8198a| 国产亚洲精彩久久| 久久精品视频播放| 懂色av一区二区三区四区| 婷婷一区二区三区| 麻豆精品免费视频| 免费观看久久久4p| 日本精品免费视频| 成人直播在线观看| 欧美在线视频一二三| a视频网址在线观看| 欧美一区二区三区不卡| 日本熟妇毛耸耸xxxxxx| 国产日产欧美精品一区二区三区| 91国内在线播放| 国内自拍视频一区二区三区| 蜜桃传媒视频麻豆第一区免费观看| 亚洲a∨精品一区二区三区导航| 日韩中文字幕久久| 亚洲精品无遮挡| 色欧美乱欧美15图片| 久艹在线观看视频| k8久久久一区二区三区| 手机在线免费观看毛片| 你懂的国产精品| 久久久久久久久久久久久久久久av | 中文字幕亚洲日本| 午夜综合激情| 潘金莲一级淫片aaaaa免费看| 麻豆一区二区| 成人av在线亚洲| 91超碰国产在线| 色吧影院999| 四虎永久在线观看| 欧美日本一区二区| 国产精品6666| 国产精品高潮久久久久无| 午夜久久久久久久| 国内精品久久久久影院薰衣草| 97国产在线播放| 国产精品国产三级国产在线观看 | 中国成人一区| 欧美日韩一区在线观看视频| 日韩在线观看一区二区三区| 国产精品高清免费在线观看| 不卡的av影片| 欧美成人第一页| aaa在线免费观看| 国产视频一区在线| www.日本在线观看| 欧美日韩亚洲另类| 国产情侣自拍av| 亚洲综合色视频| 小嫩苞一区二区三区| 久久久久久夜精品精品免费| 97人妻精品一区二区三区免费 | 99久久自偷自偷国产精品不卡| 韩国精品主播一区二区在线观看 | 人妻激情另类乱人伦人妻| 久久不见久久见国语| 国产欧美日韩视频一区二区三区| 成人在线日韩| 91久久精品美女高潮| 成人午夜亚洲| 国产精品高潮在线| 亚洲承认视频| 日本韩国欧美精品大片卡二| 成人免费网站观看| 久久久久国产精品免费网站| 在线xxxx| 久久国产精品亚洲| 国产在线1区| 色噜噜久久综合伊人一本| 国产大片在线免费观看| 亚洲欧美成人一区二区在线电影| 天天操天天干天天| 亚洲第一精品福利| 乱色精品无码一区二区国产盗| 日韩欧美激情四射| 国产成人精品无码高潮| 制服.丝袜.亚洲.另类.中文| 在线免费看毛片| 欧美日韩高清影院| 国产一区二区在线播放视频| 欧美日韩精品一区二区三区四区 | 欧美日韩激情在线观看| 亚洲欧美日韩国产手机在线| 日本 欧美 国产| 亚洲欧美国产高清| 麻豆视频在线观看| 亚洲成人1区2区| 影音先锋亚洲天堂| 一本一道久久a久久精品综合蜜臀| 国产超碰人人爽人人做人人爱| 欧美性色xo影院| 天天综合久久综合| 欧美无乱码久久久免费午夜一区| 糖心vlog精品一区二区| 欧美日韩国产影片| 国产成人精品一区二三区四区五区 | 日本精品在线视频| 日本另类视频| 91久久精品国产91久久性色| 亚洲综合网站| 久久国产欧美精品| 色棕色天天综合网| 在线精品日韩| 激情欧美一区| 日日摸天天爽天天爽视频| 毛片一区二区三区| 国内av一区二区| 成人av第一页| 熟女少妇内射日韩亚洲| |精品福利一区二区三区| 国产精品16p| 在线一区二区视频| 国产欧美一级片| 亚洲激情视频在线观看| eeuss影院在线观看| 久热精品视频在线免费观看| 僵尸再翻生在线观看| 国产精品免费视频xxxx| 免费一级欧美在线大片| 久久免费一区| 中文在线日韩| 成人羞羞国产免费网站| 国产伦精一区二区三区| 久久无码人妻精品一区二区三区| 国产精品美女一区二区| 91av在线免费视频| 欧美色爱综合网| 天天操天天干天天操| 日韩资源在线观看| 手机在线观看av| 成人在线激情视频| 免费精品国产的网站免费观看| 国产一区一区三区| 久久综合中文| 岛国av免费观看| 国产精品久久免费看| 日本中文字幕在线| 欧美成人福利视频| 97电影在线观看| 5566成人精品视频免费| 久久免费精品| 正在播放国产精品| 久久高清一区| 超碰caoprom| 亚洲美女免费在线| 伊人网免费视频| 亚洲国产99精品国自产| 成人影欧美片| 国产一区二区视频在线观看| 中文精品一区二区| 男人添女人荫蒂免费视频| 精品一区二区国语对白| 女人十八毛片嫩草av| 精品久久久一区| 黄色av小说在线观看| 久久成人免费视频| 欧美成人一二区| 日韩成人av网站| 模特精品在线| 制服丝袜第二页| 亚洲一区二区三区四区不卡| 国产普通话bbwbbwbbw| 宅男66日本亚洲欧美视频| 午夜影院在线播放| 国产伦视频一区二区三区| 国模吧视频一区| 亚洲av无一区二区三区久久| 亚洲欧洲韩国日本视频| 国产一级精品毛片| 亚洲一品av免费观看| 欧美性xxx| 午夜精品区一区二区三| 日本伊人午夜精品| 中文字幕欧美激情极品| 欧美性猛片aaaaaaa做受| 波多野结衣一区二区| 国产精品人人做人人爽| av伊人久久| 国产视频手机在线播放| 国产精品午夜久久| 中文字幕乱码一区二区| 中文字幕在线看视频国产欧美在线看完整 | 污污在线观看| 91超碰在线免费观看| 女同性一区二区三区人了人一 | 欧美精品精品精品精品免费| 天堂av一区| 日韩精品综合在线| 91在线视频官网| 麻豆精品久久久久久久99蜜桃| 亚洲视频电影图片偷拍一区| 日韩制服一区| 国产奶头好大揉着好爽视频| 国产精品99久久久久久有的能看 | 麻豆视频网站在线观看| 亚洲一区二区三区777| 国产中文一区| 黄色正能量网站| 欧美色图天堂网| 18在线观看的| 久久亚洲免费| 美日韩一区二区| 久久av高潮av无码av喷吹| 亚洲精品国精品久久99热| 日韩欧美看国产| 精品一区二区成人免费视频| 国产凹凸在线观看一区二区| 亚洲自拍一区在线观看| 中文字幕一区电影| 精品视频在线观看免费观看| 欧美日韩一道本| 国产女主播视频一区二区| 国内老熟妇对白xxxxhd| 欧美亚洲另类在线| 99精品视频在线观看播放| 欧美激情一区二区三区p站| 日韩欧美黄色动漫| 天堂资源在线中文| 国产视频不卡| 美腿丝袜在线亚洲一区| 日韩欧美视频在线免费观看| 一区二区三区视频免费在线观看| 婷婷视频一区二区三区| www.日本xxxx| 亚洲一二三四区| 伊人免费在线| 国产欧美在线一区二区| 精品一区二区在线播放| 可以免费看的av毛片| 久久综合久久八八| 美女少妇全过程你懂的久久|