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

Spring Event 玩轉 DDD 領域事件

開發 架構
領域事件是領域驅動設計(Domain-Driven Design,簡稱DDD)中的一個重要概念,特指在領域模型中發生的有意義的事件,是對領域模型中的重要業務動作執行結果的抽象,如訂單創建、支付完成等。

1、領域事件

領域事件是 DDD 中重要的模式之一,主要用于模型或系統間的解耦,提高系統的可擴展性和可維護性。

(1)什么是領域事件

領域事件是領域驅動設計(Domain-Driven Design,簡稱DDD)中的一個重要概念,特指在領域模型中發生的有意義的事件,是對領域模型中的重要業務動作執行結果的抽象,如訂單創建、支付完成等。

在DDD中,領域事件是一種用于傳遞信息的機制,它使得不同領域模型之間的通信變得更加簡單和靈活。通過將事件分發給相關的訂閱者,可以讓不同的領域模型之間實現松耦合,從而更容易擴展和維護應用程序。

領域事件通常由領域對象主動觸發并發布,而事件處理器則負責訂閱事件并對事件進行處理。通過事件發布和訂閱機制,可以在應用程序中實現高效的事件驅動架構,從而更好地支持復雜的業務邏輯和業務流程。

說起來有點抽象,簡單舉個例子:
假設有一個電子商務系統,用戶下單后需要生成訂單并發送通知給相關人員。在領域模型中,可以定義一個 Order 領域對象,該對象可以包含多個屬性,如訂單號、下單時間、購買的商品信息、收貨地址等等。當用戶下單時,可以通過調用 Order 對象的方法來生成訂單,同時也可以通過領域事件來發送通知。

具體來說,可以定義一個 OrderCreated 領域事件,用于表示訂單創建完成的事件,該事件包含一些必要的屬性,如訂單號、下單時間、購買的商品信息、收貨地址等等。當 Order 對象創建完成后,可以通過領域事件來觸發發送通知的操作,比如發送郵件或短信通知相關人員。

(2)領域事件的應用場景

領域事件的應用創建眾多,從圖中可以看出:

領域事件可以:

  • 保證聚合間的數據一致性。當一個聚合根上的操作引發了其他聚合根的變更時,將這些變更作為領域事件發布出去,其他聚合根可以訂閱這些事件并更新自己的狀態,從而實現最終一致性。
  • 替換批量處理。可以作為任務的觸發器,例如定時任務、異步任務,避免定時+掃描這類批量處理。
  • 實現事件源模式。將所有的領域事件全部存儲下來,可以用于恢復聚合的狀態,實現事件源模式;也可以用于后續的審計和調試。
  • 進行限界上下文集成。將事件從一個子域發布到另一個子域,使得這兩個子域可以解耦,不用相互知道彼此的存在。

領域事件雖好,但仍需技術框架進行支持,其實 Spring 的 Event 機制就足以滿足各類需求。

2、Spring 對 Event 的支持

在 Spring 中,事件的處理可以通過三種方式來實現:

  1. 基于接口的事件處理:通過實現 ApplicationListener 接口并重寫 onApplicationEvent 方法來處理事件。
  2. 基于注解的事件處理:通過在方法上添加 @EventListener 或 @TransactionEventListener 注解來處理事件,可以指定事件的類型以及監聽的條件等。
  3. 基于異步事件處理:通過使用 @Async 注解來異步處理事件,可以提高應用程序的響應速度。

(1)基于接口的事件處理

由于與 Spring 存在強耦合,現在已經很少使用,可以直接跳過。

下面是一個基于接口的事件處理的示例代碼:

@Component
public class MyEventListener implements ApplicationListener<MyEvent> {
@Override
public void onApplicationEvent(MyEvent event) {
// 處理事件
System.out.println("Received event: " + event.getMessage());
}
}
public class MyEvent {
private String message;
public MyEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
@Component
public class MyEventPublisher {
@Autowired
private ApplicationEventPublisher eventPublisher;
public void publishEvent(String message) {
MyEvent event = new MyEvent(message);
eventPublisher.publishEvent(event);
}
}

在這個示例中,MyEvent 是一個自定義的事件類,MyEventListener 是一個實現了 ApplicationListener 接口的監聽器,用于處理 MyEvent 事件,MyEventPublisher 是用于發布事件的類。

當應用程序調用 MyEventPublisher 的 publishEvent 方法時,會觸發一個 MyEvent 事件,MyEventListener 中的 onApplicationEvent 方法將被自動調用,從而處理這個事件。

(2)基于注解的事件處理

Spring 提供 @EventListener 和 @TransactionListener 兩個注解以簡化對事件的處理。

@EventListener

Spring 的 EventListener 監聽器是一種相對于傳統的事件監聽方式更為簡潔和靈活的事件機制。與傳統的事件機制不同,EventListener 不需要顯示地繼承特定的事件接口,而是使用注解標識需要監聽的事件類型,然后通過一個單獨的監聽器類處理所有類型的事件。

相比之下 EventListener 的優勢主要有以下幾點:

  1. 更加靈活:EventListener 不依賴于任何特定的事件接口,從而使得事件處理更加靈活,可以監聽和處理任意類型的事件。
  2. 更加簡潔:相比傳統的事件監聽方式,使用 EventListener 可以避免一系列繁瑣的接口定義和實現,簡化了代碼結構,使得開發效率更高。
  3. 更加松耦合:EventListener 將事件發布方和事件處理方分離,遵循松耦合的設計原則,提高了代碼的可維護性和擴展性。
  4. 更加可測試:由于 EventListener 可以監聽和處理任意類型的事件,可以通過單元測試驗證其功能是否正確,從而提高了測試的可靠性。

以下是一個簡單的例子:

@Component
public class MyEventListener{
@EventListener
public void onApplicationEvent(MyEvent event) {
// 處理事件
System.out.println("Received event: " + event.getMessage());
}
}
public class MyEvent {
private String message;
public MyEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
@Component
public class MyEventPublisher {
@Autowired
private ApplicationEventPublisher eventPublisher;
public void publishEvent(String message) {
MyEvent event = new MyEvent(message);
eventPublisher.publishEvent(event);
}
}

相比基于接口的事件處理,EventListener 是一種更加簡潔、靈活、松耦合、可測試的事件機制,能夠有效地降低開發的復雜度,提高開發效率。

@TransactionEventListener

在 Spring 中,TransactionEventListner 和 EventListner 都是用于處理事件的接口。不同之處在于

  1. TransactionEventListner 是在事務提交后才會觸發
  2. 而 EventListner 則是在事件發布后就會觸發。

具體來說,在使用 Spring 的聲明式事務時,可以在事務提交后觸發某些事件。這就是 TransactionEventListner 的應用場景。而 EventListner 則不涉及事務,可以用于在事件發布后觸發一些操作。

下面是一個簡單的示例,演示了如何使用 TransactionEventListner 和 EventListner:

@Component
public class MyEventListener {
@EventListener
public void handleMyEvent(MyEvent event) {
// 處理 MyEvent
}
@TransactionalEventListener
public void handleMyTransactionalEvent(MyTransactionalEvent event) {
// 處理 MyTransactionalEvent
}
}
@Service
public class MyService {
@Autowired
private ApplicationEventPublisher eventPublisher;
@Autowired
private MyRepository myRepository;
@Transactional
public void doSomething() {
// 做一些事情
MyEntity entity = myRepository.findById(1L);
// 發布事件
eventPublisher.publishEvent(new MyEvent(this, entity));
// 發布事務事件
eventPublisher.publishEvent(new MyTransactionalEvent(this, entity));
}
}

在這個例子中,MyEventListener 類定義了兩個方法,handleMyEvent 和
handleMyTransactionalEvent,分別處理 MyEvent 和 MyTransactionalEvent 事件。其中,handleMyTransactionalEvent 方法用 @TransactionalEventListener 注解標記,表示它只會在事務提交后觸發。

MyService 類中的 doSomething 方法使用 ApplicationEventPublisher 來發布事件。注意,它發布了兩種不同類型的事件:MyEvent 和 MyTransactionalEvent。這兩個事件會分別觸發 MyEventListener 中的對應方法。

總的來說,Spring 的事件機制非常靈活,可以方便地擴展應用程序的功能。TransactionEventListner 和 EventListner 這兩個接口的應用場景有所不同,可以根據實際需求選擇使用。

(3)基于異步事件處理

@Async是Spring框架中的一個注解,用于將一個方法標記為異步執行。使用該注解,Spring將自動為該方法創建一個新線程,使其在后臺異步執行,不會阻塞主線程的執行。

在具體應用中,使用@Async可以大大提升應用的并發處理能力,使得系統能夠更快地響應用戶請求,提高系統的吞吐量。

@Async 和 @EventListener 或 @TransactionEventListener 注解在一起使用時,會產生異步的事件處理器。使用這種組合的方式,事件處理器會在單獨的線程池中執行,以避免阻塞主線程。這種方式在需要處理大量事件或者事件處理器耗時較長的情況下非常有用,可以有效提高應用的性能和可伸縮性。同時,Spring 框架對這種方式也提供了完善的支持,可以方便地使用這種方式來實現異步事件處理。

下面是一個簡單的示例代碼,演示了如何在 Spring 中使用 @Async 和 @EventListener 一起實現異步事件處理:

@Component
public class ExampleEventListener {
@Async
@EventListener
public void handleExampleEvent(ExampleEvent event) {
// 在新的線程中執行異步邏輯
// ...
}
}

在這個示例中,ExampleEventListener 類中的 handleExampleEvent 方法使用了 @Async 和 @EventListener 注解,表示這個方法是一個異步事件監聽器。當一個 ExampleEvent 事件被觸發時,這個方法會被異步地執行。在這個方法中,可以執行任何異步的邏輯處理,比如向隊列發送消息、調用其他服務等。

備注:在使用 @Async 時,需要根據業務場景對線程池進行自定義,以免出現資源不夠的情況(Spring 默認使用單線程處理@Async異步任務)

4、場景分析

綜上所述,當領域事件發出來之后,不同的注解會產生不同的行為,簡單匯總如下:


@EventListener

@TransactionEventListener

無 @Async

順序、同步執行

事務提交后、同步執行

有 @Async

順序、異步執行

事務提交后、異步執行

(1)@EventListener

特點:

  1. 順序執行。調用 publish(Event) 后,自動觸發對 @EventListner 注釋方法的調用
  2. 同步執行。使用主線程執行,方法拋出異常會中斷調用鏈路,會觸發事務的回歸

應用場景:

  1. 事務消息表。在同一事務中完成對業務數據和消息表的修改
  2. 業務驗證。對業務對象進行最后一次驗證,如果驗證不通過直接拋出異常中斷數據庫事務
  3. 業務插件。在當前線程和事務中執行插件完成業務擴展

(2)@TransactionEventListener

特點:

  1. 事務提交后執行。調用 publish(Event) 時,只是向上下文中注冊了一個回調器,并不會立即執行;只有在事務提交后,才會觸發對 @TransactionEventListner 注釋方法的調用
  2. 同步執行。使用主線程執行,方法拋出異常會中斷調用鏈路,當不會回歸事務(事務已提交,沒有辦法進行回歸)

應用場景:

  1. 數據同步。事務提交后,將變更同步到 ES 或 Cache
  2. 記錄審計日志。只有在業務變更成功更新到數據庫時才進行記錄

備注:
@TransactionEventLisnter 必須在事務上下文中,脫離上下文,調用不會生效

(3)@EventListener + @Async

特點:

  1. 順序執行。調用 publish(Event) 后,自動觸發對 @EventListner 注釋方法的調用
  2. 異步執行。使用獨立的線程池執行任務,方法拋出異常對主流程沒有任何影響

應用場景:

  1. 記日志明細日志,輔助排查問題

(4)@TransactionEventListener + @Async

特點:

  1. 事務提交后執行。調用 publish(Event) 時,只是向上下文中注冊了一個回調器,并不會立即執行;只有在事務提交后,才會觸發對 @TransactionEventListner 注釋方法的調用
  2. 異步執行。使用獨立的線程池執行任務,方法拋出異常對主流程沒有任何影響

應用場景:
異步處理。記錄操作日志,異步保存數據等
備注:
@TransactionEventLisnter 必須在事務上下文中,脫離上下文,調用不會生效

5、小結

領域事件的落地,不僅需要強大的設計能力,還需要與之匹配的基礎設施。Spring 作為最常用的框架,基于發布訂閱實現了完整的一套 Event 管理機制。工具在手是否能根據業務場景選擇合適的解決方案就成了研發的職責,簡單思考以下組合適用場景是什么:

  1. @EventListener
  2. @TransactionEventListener
  3. @EventListener + @Async
  4. @TransactionEventListener + @Async
責任編輯:姜華 來源: 今日頭條
相關推薦

2023-02-26 10:59:51

2021-09-08 09:22:23

領域驅動設計

2023-09-26 01:18:55

解密系統業務

2011-07-04 14:50:49

QT Event 事件

2017-11-17 05:39:27

DDD建模模型

2023-02-20 14:44:22

DDD領域模型

2023-02-15 13:50:58

DDD戰略設計

2012-10-12 14:28:32

BYOD安全網絡

2021-10-09 11:54:46

DDD微服務業務

2017-07-14 10:55:05

2020-09-02 08:12:05

CodeDDD代碼

2016-09-06 21:23:25

JavaScriptnode異步

2023-01-09 09:00:00

樹服務架構驅動決策

2014-09-26 10:00:25

驅動設計DDD領域

2024-11-08 08:37:25

2024-11-27 15:33:17

軟件架構DDD

2022-04-19 08:15:53

DDD領域建模實戰

2011-08-29 14:59:26

QtEvent事件

2025-06-27 02:33:00

ServiceSpring事件

2020-03-18 13:28:29

SpringDDDWeb
點贊
收藏

51CTO技術棧公眾號

国产视频一区不卡| 国产精品毛片| 日韩西西人体444www| 香港三级日本三级a视频| 亚洲国产精品无码久久| 夜夜爽av福利精品导航| 亚洲人午夜精品| 粉色视频免费看| 久久五月精品中文字幕| 久久日一线二线三线suv| 91精品久久久久久久久不口人| 欧美日韩精品一区二区三区视频播放 | 久久九九全国免费| 91免费国产视频| 欧美 日韩 精品| 一精品久久久| 亚洲欧美日韩精品久久亚洲区| 嫩草视频免费在线观看| 咪咪网在线视频| 亚洲视频中文字幕| 欧美一区二区视频在线| aa视频在线免费观看| 天堂一区二区在线| 欧美国产日韩一区| 日本黄区免费视频观看| 首页亚洲中字| 欧美成人一区二区三区片免费| 日韩免费高清在线| 91桃色在线| 亚洲码国产岛国毛片在线| 日韩欧美99| 青青草视频在线免费观看| 成人一区二区视频| 51精品国产人成在线观看| 最新黄色网址在线观看| 小嫩嫩精品导航| 性欧美xxxx交| 久久精品视频9| 你懂的亚洲视频| xvideos亚洲| 久久久久无码精品国产sm果冻| 欧美福利在线播放网址导航| 日韩欧美国产系列| www.偷拍.com| 免费精品一区二区三区在线观看| 欧美日韩aaaaaa| 浓精h攵女乱爱av| 99re久久| 欧美日韩国产色站一区二区三区| 无人在线观看的免费高清视频| 国产中文在线播放| 婷婷综合五月天| 少妇高潮喷水在线观看| wwww在线观看免费视频| 艳妇臀荡乳欲伦亚洲一区| 艳母动漫在线观看| 国产91在线视频蝌蚪| 亚洲桃色在线一区| 中文字幕日韩精品久久| 色综合久久av| 国产乱淫av片免费| 精品在线你懂的| 国产日韩精品视频| 怡红院男人的天堂| 蜜臀va亚洲va欧美va天堂| 国产99视频精品免视看7| 欧美亚洲另类小说| 日本在线不卡一区| 成人精品视频在线| 999av视频| 高清久久久久久| 国产乱码一区| 三级国产在线观看| 国产午夜一区二区三区| 日韩精品欧美一区二区三区| 99国产精品久久久久99打野战| 三级久久三级久久| 国产精品一区专区欧美日韩| 一级爱爱免费视频| 国产福利不卡视频| 精品久久久久久乱码天堂| 免费在线视频一级不卡| 国产精品久久久久影院老司 | 欧美高清视频不卡网| 超碰在线播放91| 国产精品亚洲综合在线观看| 日韩精品自拍偷拍| 国产成人无码一区二区在线观看| 欧美男gay| 日韩在线观看网址| 免费在线一级片| 男人天堂欧美日韩| 成人福利在线视频| 神马午夜一区二区| 亚洲国产精品传媒在线观看| 女同性恋一区二区| 在线免费看h| 91精品国产综合久久久久久漫画| 国产情侣久久久久aⅴ免费| 99久热这里只有精品视频免费观看| 欧美日本一区二区| www.日本高清| 97精品视频在线看| 午夜精品一区二区三区在线视频| 欧美成人一区二区视频| 国产电影精品久久禁18| 秋霞久久久久久一区二区| a级在线观看| 在线亚洲欧美专区二区| 激情小说欧美色图| 波多野结衣在线播放一区| 欧美国产视频一区二区| 欧美国产一级片| 成人黄色a**站在线观看| 亚洲五月六月| 亚洲福利影院| 精品国产亚洲一区二区三区在线观看| www亚洲色图| 一本色道久久综合亚洲精品不卡| 91亚洲精品一区| 成人免费视频| 欧美午夜片在线免费观看| 91精品人妻一区二区三区蜜桃2 | 久久www视频| 成人看片毛片免费播放器| 亚洲国产日韩精品在线| 欧美人禽zoz0强交| 美女脱光内衣内裤视频久久网站| 极品日韩久久| 欧美高清另类hdvideosexjaⅴ| 欧美色电影在线| 香蕉网在线播放| 亚洲黄页一区| 国产一区精品视频| 金瓶狂野欧美性猛交xxxx| 欧美日韩国产中文| 污污视频网站在线免费观看| 视频一区在线播放| 美女视频久久| 超碰一区二区| 亚洲欧美www| 日本一区二区不卡在线| 国产盗摄女厕一区二区三区| 国产成人免费高清视频| 91麻豆精品国产综合久久久| 日韩中文在线观看| 91精品国产乱码久久| 国产精品日日摸夜夜摸av| 国产高潮免费视频| 色喇叭免费久久综合网| 国产精品一区二区久久久| 69视频在线观看| 欧美日韩一区中文字幕| 国产馆在线观看| 看国产成人h片视频| 亚洲欧美99| 另类一区二区| 久久综合伊人77777蜜臀| 91极品身材尤物theporn| 国产精品久久久久一区二区三区 | 精品乱码一区内射人妻无码| 国产日韩欧美激情| 在线观看免费的av| 欧美一区网站| 99国产高清| free性m.freesex欧美| 日韩av在线免费观看| 黄瓜视频在线免费观看| 欧美高清在线一区| 欧美在线a视频| 在线观看视频日韩| 日韩精品久久一区二区三区| 羞羞视频在线观看一区二区| 久久国产精品久久久久| 黄色aaa大片| 色八戒一区二区三区| 国产成人免费在线观看视频| 国产一区二区调教| 波多野结衣之无限发射| 欧美久久综合网| 亚洲一区二区自拍| 1234区中文字幕在线观看| 亚洲男人天堂网| 一卡二卡在线视频| 亚洲成人动漫在线观看| 久久丫精品忘忧草西安产品| 韩国女主播成人在线| 日韩激情视频一区二区| 亚洲图区在线| 91免费欧美精品| 日韩av影片| 日韩在线观看高清| 五月婷婷丁香网| 欧美美女一区二区| 亚洲aⅴ日韩av电影在线观看| 九九热精品国产| 国产成人调教视频在线观看 | 久艹视频在线免费观看| 国产欧美一区二区精品久久久| 成人福利免费观看| 国内激情视频在线观看| 中文国产成人精品| 人妻夜夜爽天天爽| 欧美日本韩国一区二区三区视频 | 伊人影院久久| 欧美日韩一区在线视频| 国色天香久久精品国产一区| 欧美在线免费视频| 2024短剧网剧在线观看| 亚洲欧美在线x视频| av av片在线看| 91久久精品一区二区| 国产一级生活片| 国产精品蜜臀av| 波多野结衣办公室33分钟| 国产高清一区日本| 国产喷水theporn| 久久久久久自在自线| 男女啪啪免费观看| 日韩在线欧美| 日本一区视频在线观看免费| 91麻豆精品国产91久久久久推荐资源 | 免费黄色激情视频| 久久婷婷综合激情| 人妻激情偷乱频一区二区三区| 久久国产综合精品| 亚洲精品高清无码视频| 国产精品久久久亚洲一区| 日本香蕉视频在线观看| 亚洲国产精品综合久久久| 性欧美.com| 精品无人区麻豆乱码久久久| 国产高清一区视频| 一区二区三区国产好| 亚洲自拍偷拍在线| 国产精一区二区| 成人福利视频网| 亚洲伊人伊成久久人综合网| 国产精品日韩精品| 日韩一区二区三区在线免费观看 | 久久资源免费视频| 午夜伦全在线观看| 在线视频日韩精品| 国产精品二线| 亚洲全黄一级网站| 国产在线中文字幕| 亚洲性生活视频| 国产高清av在线| 一区二区三区高清国产| 成人亚洲性情网站www在线观看| 亚洲人线精品午夜| 国产尤物视频在线| 主播福利视频一区| 久草中文在线观看| 九九精品在线视频| 黄色成人在线网| 68精品国产免费久久久久久婷婷| 91在线三级| 青青久久av北条麻妃黑人| 不卡av影片| 国产伦精品免费视频| 国产精品白丝久久av网站| 亚洲自拍偷拍网址| 九色丨蝌蚪丨成人| 麻豆91av| 欧美一区电影| avove在线观看| 伊人成人网在线看| 久久美女福利视频| 奇米色777欧美一区二区| 九九热精品国产| 成人精品国产一区二区4080| 在线免费观看成年人视频| 欧美国产一区在线| 亚洲女人毛茸茸高潮| 一区二区三区.www| 欧美激情黑白配| 欧美日韩免费一区二区三区视频| a级片在线播放| 亚洲成色777777女色窝| 美丽的姑娘在线观看免费动漫| 在线看福利67194| 日本性爱视频在线观看| 欧美一区二区三区艳史| 久久精品超碰| 不卡一区二区三区视频| 一本久久青青| 26uuu成人| 欧美一级二区| 日韩视频在线观看一区二区三区| 成人不卡免费av| 2017亚洲天堂| 偷拍日韩校园综合在线| 中文字幕人妻一区二区在线视频| 日韩亚洲欧美综合| 国产人成在线观看| 久久6精品影院| 欧亚一区二区| 国内视频一区二区| 99精品一区| 黄在线观看网站| 国产精品一区二区三区乱码| 中文字幕在线免费看线人| 中文字幕字幕中文在线中不卡视频| 五月天综合激情网| 日韩一区二区三区高清免费看看| 黄色在线播放| 久久久久久午夜| 成人51免费| 亚洲二区自拍| 久久aⅴ国产紧身牛仔裤| 免费观看黄网站| 中文字幕乱码日本亚洲一区二区 | 欧美日韩亚洲国产综合| 日韩中文字幕免费在线观看| 色小说视频一区| 欧美电影免费看| 国模精品一区二区三区| 国产精品jizz在线观看美国| 国产精品视频中文字幕| 国产亚洲一区二区三区四区| 国产精品.www| 欧美电影免费提供在线观看| 欧美jizz18hd性欧美| 国产精品第100页| 在线看成人短视频| 国产人妻777人伦精品hd| 国产精品主播直播| 999精品在线视频| 欧美日韩精品一区二区天天拍小说 | 亚洲精品一级二级| 加勒比在线一区二区三区观看| 午夜天堂精品久久久久| 男生操女生视频在线观看| 国产欧美日韩久久| 日本免费精品视频| 亚洲人成人99网站| 成人影院网站| 久久综合九色综合久99| 国产视频久久| 国产精品嫩草av| 五月婷婷综合网| 日韩一级片免费看| 韩国视频理论视频久久| 黑人久久a级毛片免费观看| youjizz.com在线观看| 成人在线视频一区| 日本少妇全体裸体洗澡| 亚洲国产福利在线| 国产极品在线观看| 久久久精品国产一区二区三区| 9国产精品视频| 国产精品九九九九九| 色视频成人在线观看免| yw在线观看| 国产精品一区二区三区久久久| 欧美电影《睫毛膏》| 欧美激情第一区| 亚洲理论在线观看| 亚洲av无码国产精品永久一区| 色综合男人天堂| 精品女人视频| 国产精品免费观看久久| 久久久九九九九| 亚洲综合成人av| 久久久www成人免费精品| 日本精品在线观看| 青春草国产视频| 91免费观看国产| 国产女优在线播放| 美女久久久久久久久久久| 大香伊人久久精品一区二区| 每日在线更新av| 中日韩av电影| 亚洲免费成人网| 人九九综合九九宗合| 国产精品久久久久久| 精品人妻在线视频| 91国产丝袜在线播放| 成人午夜在线影视| 精品综合在线| 久久99热99| 亚洲欧美在线视频免费| 一区二区三区视频在线| 91麻豆精品国产91久久久久推荐资源| 日日摸日日碰夜夜爽av| 中文字幕 久热精品 视频在线| 国产高清视频免费观看| 欧美中文在线字幕| 仙踪林久久久久久久999| 日韩aaaaa| 欧美日韩成人高清| 密臀av在线播放| 97精品国产97久久久久久粉红| 99久久久免费精品国产一区二区 | 久久精品国产一区二区三| 九九精品在线观看视频| 亚洲系列中文字幕| 91精品日本| 性生活免费在线观看|