日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

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

javascript

Spring Data JPA 从入门到精通~Auditing及其事件详解

發(fā)布時(shí)間:2024/7/23 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Data JPA 从入门到精通~Auditing及其事件详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?Auditing 及其事件詳解

Auditing 翻譯過(guò)來(lái)是審計(jì)和審核,Spring 的優(yōu)秀之處在于幫我們想到了很多繁瑣事情的解決方案,我們?cè)趯?shí)際的業(yè)務(wù)系統(tǒng)中,針對(duì)一張表的操作大部分是需要記錄誰(shuí)什么時(shí)間創(chuàng)建的,誰(shuí)什么時(shí)間修改的,并且能讓我們方便的記錄操作日志。Spring Data JPA 為我們提供了審計(jì)功能的架構(gòu)實(shí)現(xiàn),提供了四個(gè)注解專(zhuān)門(mén)解決這件事情:

  • @CreatedBy 哪個(gè)用戶創(chuàng)建的。
  • @CreatedDate 創(chuàng)建的時(shí)間。
  • @LastModifiedBy 修改實(shí)體的用戶。
  • @LastModifiedDate 最后一次修改時(shí)間。

Auditing 如何配置

我們以一個(gè)快速的例子,看看它是怎么配置生效的。

(1)先新建一個(gè) @Entity:UserCustomerEntity 里面的寫(xiě)法如下。

@Entity @Table(name = "user_customer", schema = "test", catalog = "") @EntityListeners(AuditingEntityListener.class) public class UserCustomerEntity {@Id@Column(name = "id", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;@CreatedDate@Column(name = "create_time", nullable = true)private Date createTime;@CreatedBy@Column(name = "create_user_id", nullable = true)private Integer createUserId;@LastModifiedBy@Column(name = "last_modified_user_id", nullable = true)private Integer lastModifiedUserId;@LastModifiedDate@Column(name = "last_modified_time", nullable = true)private Date lastModifiedTime;@Column(name = "customer_name", nullable = true, length = 50)private String customerName;@Column(name = "customer_email", nullable = true, length = 50)private String customerEmail; ...... }

@Entity 實(shí)體中我們需要做兩點(diǎn):

  • 相應(yīng)的字段添加 @CreatedBy、@CreatedDate、@LastModifiedBy and @LastModifiedDate注解。
  • 增加 @EntityListeners(AuditingEntityListener.class)。

(2)實(shí)現(xiàn) AuditorAware 接口告訴 JPA 當(dāng)前的用戶是誰(shuí)。

實(shí)現(xiàn) AuditorAware 接口,實(shí)現(xiàn) getCurrentAuditor 方法,返回一個(gè) Integer 的 user ID。以下代碼介紹了兩種做法:

public class MyAuditorAware implements AuditorAware<Integer> {/*** Returns the current auditor of the application.* @return the current auditor*/@Overridepublic Integer getCurrentAuditor() { // 第一種方式:如果我們集成了spring的Security,我們直接通過(guò)如下方法即可獲得當(dāng)前請(qǐng)求的用戶ID. // Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); // if (authentication == null || !authentication.isAuthenticated()) { // return null; // } // return ((LoginUserInfo) authentication.getPrincipal()).getUser().getId();//第二種方式通過(guò)request里面取或者session里面取ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();return (Integer) servletRequestAttributes.getRequest().getSession().getAttribute("userId");} }

而 AuditorAware 的源碼如下:

public interface AuditorAware<T> {T getCurrentAuditor(); }

通過(guò)實(shí)現(xiàn) AuditorAware 接口的 getCurrentAuditor() 方法告訴 JPA 當(dāng)前的用戶是誰(shuí),里面實(shí)現(xiàn)方法千差萬(wàn)別,作者舉例了兩種最常見(jiàn)的:

  • 通過(guò) Security 取。
  • 通過(guò) Request 取。

(3)通過(guò) @EnableJpaAuditing 注解開(kāi)啟 JPA 的 Auditing 功能。

并且告訴應(yīng)用 AuditorAware 的實(shí)現(xiàn)類(lèi)是誰(shuí),也就是我們通過(guò) @Bean 注解把上面的實(shí)現(xiàn)類(lèi)放到 Spring 的 Bean 管理里面,當(dāng)然了也可以上面的類(lèi)加上 @Component。具體配置方式如下:

@SpringBootApplication @EnableJpaAuditing public class QuickStartApplication {public static void main(String[] args) {SpringApplication.run(QuickStartApplication.class, args);}@Beanpublic AuditorAware<Integer> auditorProvider() {return new MyAuditorAwareImpl();} }

驗(yàn)證結(jié)果如下。

通過(guò)以上的三步,我們已經(jīng)完成了 auting 的配置,通過(guò) userCustomerRepository.save(new UserCustomerEntity("1","Jack")); 的執(zhí)行,我們看數(shù)據(jù)庫(kù)里面的 4 個(gè)字段已經(jīng)給填上去了。

@MappedSuperclass

實(shí)際工作中我們還會(huì)對(duì)上面的實(shí)體部分進(jìn)行改進(jìn),引入 @MappedSuperclass 注解,我們將 @Id、@CreatedBy、@CreatedDate、@LastModifiedBy and @LastModifiedDate 抽象到一個(gè)公用的基類(lèi)里面,方便公用和形成每個(gè)表的字段約束??梢詫⑵浞诺轿覀児镜目蚣艽a上,對(duì)表設(shè)計(jì)形成統(tǒng)一的強(qiáng)約束。

步驟如下:

(1)改進(jìn)后我們新增一個(gè) AbstractAuditable 的抽象類(lèi):

@MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class AbstractAuditable {@Id@Column(name = "id", nullable = false)@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;@CreatedDate@Column(name = "create_time", nullable = true)private Date createTime;@CreatedBy@Column(name = "create_user_id", nullable = true)private Integer createUserId;@LastModifiedBy@Column(name = "last_modified_user_id", nullable = true)private Integer lastModifiedUserId;@LastModifiedDate@Column(name = "last_modified_time", nullable = true)private Date lastModifiedTime; ...... }

(2)而我們每個(gè)需要 Auditing 的實(shí)體只需要繼承 AbstractAuditable 即可。

內(nèi)容如下:

@Entity @Table(name = "user_customer", schema = "test", catalog = "") public class UserCustomerEntity extends AbstractAuditable {@Column(name = "customer_name", nullable = true, length = 50)private String customerName;@Column(name = "customer_email", nullable = true, length = 50)private String customerEmail; ......}

Auditing 原理解析

(1)我們先看一下關(guān)鍵的幾個(gè)源碼的關(guān)系圖:

(2)AuditingEntityListener 的源碼如下:

@Configurable public class AuditingEntityListener {private ObjectFactory<AuditingHandler> handler;public void setAuditingHandler(ObjectFactory<AuditingHandler> auditingHandler) {Assert.notNull(auditingHandler, "AuditingHandler must not be null!");this.handler = auditingHandler;}//在新增之前通過(guò)handler來(lái)往我們的@Entity里面的auditor的那些字段塞值。@PrePersistpublic void touchForCreate(Object target) {if (handler != null) {handler.getObject().markCreated(target);}}//在更新之前通過(guò)handler來(lái)往我們的@Entity里面的auditor的那些字段塞值。@PreUpdatepublic void touchForUpdate(Object target) {if (handler != null) {handler.getObject().markModified(target);}} }

(3)通過(guò)調(diào)用關(guān)系圖和 AuditingEntityListener,我們其實(shí)可以發(fā)現(xiàn)以下兩點(diǎn)情況:

  • AuditingEntityListener 通過(guò)委托設(shè)計(jì)模式,委托 AuditingHandler 進(jìn)行處理,而我們看 AuditingHandler 的源碼會(huì)發(fā)現(xiàn),里面就是根據(jù) ID 和 Version(后面介紹)來(lái)判斷我們的對(duì)象是新增還是更新,從而來(lái)更改時(shí)間字段和 User 字段。而 User 字段是通過(guò) AuditorAware 的實(shí)現(xiàn)類(lèi)來(lái)取的,并且 AuditorAware 沒(méi)有默認(rèn)實(shí)現(xiàn)類(lèi),只有我們自己的實(shí)現(xiàn)類(lèi),也就是 AuditorAware 的實(shí)現(xiàn)類(lèi)必須我們自己來(lái)定義,否則啟動(dòng)會(huì)報(bào)錯(cuò)。
  • AuditingEntityListener 的代碼如此簡(jiǎn)單,我們能不能自定義呢?答案是肯定的,通過(guò) @PrePersist、@PreUpdate 查看源碼得出,Java Persistence API 底層又幫我們提供的 Callbacks,而這些回調(diào)方法,用于偵聽(tīng)保存、查詢(抓取)、更新和刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。注解方式如下:

Type

描述

@PrePersist

新增之前

@PreRemove

刪除之前

@PostPersist

新增之后

@PostRemove

刪除之后

@PreUpdate

更新之前

@PostUpdate

更新之后

@PostLoad

加載后

注意:這個(gè)方法都是同步機(jī)制,一但報(bào)錯(cuò)將會(huì)影響所有底層代碼執(zhí)行。在實(shí)際工作中實(shí)現(xiàn)這些方法的時(shí)候,方法體里面開(kāi)啟異步線程,或者消息隊(duì)列,來(lái)異步處理日志,或者更繁重的工作。

Listener 事件的擴(kuò)展

自定義 EntityListener

隨著 DDD 的設(shè)計(jì)模式逐漸被大家認(rèn)可和熱捧,JPA 通過(guò)這種 Listener 這種機(jī)制可以很好的實(shí)現(xiàn)事件分離、狀體分離。假如,訂單的狀態(tài)變化可能對(duì)我們來(lái)說(shuō)比較重要,我們需要定一個(gè)類(lèi)去監(jiān)聽(tīng)訂單狀態(tài)變更,通知相應(yīng)的邏輯代碼各自去干各自的活。

(1)新增一個(gè) OrderStatusAuditListener 類(lèi),在相應(yīng)的操作上添加 Callbacks 注解。

public class OrderStatusAuditListener {@PostPersistprivate void postPersist(OrderEntiy entity) {//當(dāng)更新的時(shí)候做一些邏輯判斷,及其事件通知。}@PostRemoveprivate void PostRemove(OrderEntiy entity) {//當(dāng)刪除的時(shí)候做一些邏輯判斷。}@PostUpdate private void PostUpdate(OrderEntiy entity) {//當(dāng)更新的時(shí)候// entity.getOrderStatus(),做一些邏輯判斷} }

(2)我們的訂單實(shí)體變化如下:

@Entity @Table("orders") @EntityListeners({AuditingEntityListener.class, OrderStatusAuditListener.class}) public class OrderEntity extends AbstractAuditable{@Enumerated(EnumType.STRING)@Column("order_status")private OrderStatusEnum orderStatus;...... }

即可完成自定義 EntityListener。

實(shí)際工作記錄操作日志的實(shí)例

public class ActionsLogsAuditListener {private static final Logger logger = LoggerFactory.getLogger(ActionsLogsAuditListener.class);@PostLoadprivate void postLoad(Object entity) {this.notice(entity, OperateType.load);}@PostPersistprivate void postPersist(Object entity) {this.notice(entity, OperateType.create);}@PostRemoveprivate void PostRemove(Object entity) {this.notice(entity, OperateType.remove);}@PostUpdateprivate void PostUpdate(Object entity) {this.notice(entity, OperateType.update);}private void notice(Object entity, OperateType type) {logger.info("{} 執(zhí)行了 {} 操作", entity, type.getDescription());//我們通過(guò)active mq 異步發(fā)出消息處理事件ActiveMqEventManager.notice(new ActiveMqEvent(type, entity));}enum OperateType {create("創(chuàng)建"), remove("刪除"),update("修改"),load("查詢");private final String description;OperateType(String description) {this.description=description;}public String getDescription() {return description;}} }

我們通過(guò)自定義的 ActionsLogsAuditListener 來(lái)監(jiān)聽(tīng)我們要處理日志的實(shí)體,然后將事件變更,通過(guò)消息隊(duì)列進(jìn)行異步處理,這樣就可以完全解耦了。當(dāng)然了,這里我們解耦的方式也可以通過(guò) Spring 的事件機(jī)制進(jìn)行解決。通過(guò)工作中的此示例,來(lái)幫助大家更好的理解 Audit 的機(jī)制,順便說(shuō)一下處理操作的日志的正確思路,記錄當(dāng)前真實(shí)發(fā)生的數(shù)據(jù)和狀態(tài),及其時(shí)間即可,具體變化了什么那是在業(yè)務(wù)展示層面上要做的事情,這里沒(méi)有必要做比對(duì)的事情,記住這一點(diǎn)之后就會(huì)讓你的日志處理實(shí)現(xiàn)機(jī)制豁然明朗,變得容易許多。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Spring Data JPA 从入门到精通~Auditing及其事件详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

久久99在线 | 国产成人精品一区二区在线 | 在线观看免费版高清版 | 国产精品免费在线观看视频 | 久久久久久久久久亚洲精品 | 久久精品爱爱视频 | 91精品天码美女少妇 | 香蕉网在线观看 | 在线观看日韩一区 | 久草a在线 | 久操视频在线免费看 | 亚洲第一区在线观看 | 色综合国产 | 成人av电影免费观看 | 日本丶国产丶欧美色综合 | 天天操综合 | 国产一区二区不卡在线 | 日韩剧情 | 久久99久久99免费视频 | 免费激情网| 国产成本人视频在线观看 | 成人欧美一区二区三区黑人麻豆 | 新版资源中文在线观看 | 中文字幕人成一区 | 丁香六月伊人 | 91tv国产成人福利 | 亚洲欧美在线视频免费 | 三级av黄色| 久久久香蕉视频 | 亚洲精品视频久久 | 久草综合在线观看 | 黄色小视频在线观看免费 | 狠狠狠狠狠狠操 | 午夜色大片在线观看 | 玖玖玖精品 | 欧美日韩国内在线 | 综合网在线视频 | 国产午夜精品久久久久久久久久 | 国产不卡一二三区 | 久久 一区 | 成人毛片网 | 精品久久久久久久久久久久久 | 国产日韩欧美在线影视 | 狠狠色丁香婷婷综合久小说久 | 欧美-第1页-屁屁影院 | 有码中文字幕在线观看 | 久久人人做| 国产精品视频最多的网站 | 亚洲精品国偷自产在线99热 | 99久久精品无码一区二区毛片 | 在线电影日韩 | 久久国产精品99久久久久久进口 | 成人黄色中文字幕 | 97夜夜澡人人双人人人喊 | a在线观看免费视频 | 色婷婷国产精品 | 久久婷婷一区二区三区 | 欧美一区二区三区在线看 | 日韩av一区二区三区四区 | 久久国产美女视频 | 黄色电影网站在线观看 | 黄网站色欧美视频 | 国产xx在线 | 久久神马影院 | 欧美日韩aaaa| 中文字幕一区三区 | 国产精品高潮久久av | 久久不卡电影 | 亚洲激情视频在线观看 | 97视频久久久 | 亚洲国产大片 | 天天狠狠操 | 久久久久国产精品一区 | 激情av资源 | 国产又粗又猛又黄又爽视频 | 99精品免费 | 麻花豆传媒mv在线观看网站 | 婷婷视频 | 国产美女在线精品免费观看 | 1024手机在线看 | 99久久99久久精品免费 | 免费亚洲视频在线观看 | 麻豆国产精品永久免费视频 | 亚洲免费在线观看视频 | 色婷婷99| 五月婷婷综合色拍 | 日韩电影在线一区 | 中文字幕在线字幕中文 | 中文字幕日本在线观看 | 欧美激情xxxx性bbbb | 亚洲va欧美| 中文av网站| 精品国模一区二区三区 | 一级一级一片免费 | 欧美色精品天天在线观看视频 | 天天干天天天天 | 亚洲精品乱码久久久久久按摩 | 久久精品99北条麻妃 | 91日本在线播放 | 久草视频在线资源 | 久久精品在线免费观看 | 黄网站色欧美视频 | 国外成人在线视频网站 | 日韩av片无码一区二区不卡电影 | 成人午夜网址 | 日韩免费三区 | 精品亚洲va在线va天堂资源站 | 日本黄色免费大片 | 精品免费久久久久 | 久久黄色网址 | av电影一区二区三区 | 精品国产色 | 欧美激情xxxx性bbbb | 99久久99 | 超碰人人做| 国内久久久久久 | 在线黄av| 日韩欧美国产精品 | 国产婷婷精品av在线 | 免费视频国产 | www.玖玖玖 | 欧美一级片免费观看 | 欧美一级在线看 | 国产主播大尺度精品福利免费 | 91豆花在线观看 | av网站地址 | 在线观看www视频 | 国产精品毛片一区二区三区 | 久久官网 | 99久久精品网 | 日韩黄色大片在线观看 | 四虎成人在线 | 九色porny真实丨国产18 | 国产男女免费完整视频 | 久久久美女 | 园产精品久久久久久久7电影 | 91片黄在线观看 | 天天爽天天爽天天爽 | 免费在线国产黄色 | 亚洲另类交| 久草视频在线免费看 | ,午夜性刺激免费看视频 | 啪嗒啪嗒免费观看完整版 | 特级a毛片| 国产男女爽爽爽免费视频 | 91九色视频网站 | 久久久久久久久久伊人 | 狠狠激情中文字幕 | 成人在线视频免费看 | 五月天中文在线 | 九九九九精品九九九九 | 丁香 久久 综合 | 日韩精品无 | 日本福利视频在线 | 天天插天天狠 | av先锋中文字幕 | 992tv在线观看 | 日本三级中文字幕在线观看 | 九九精品视频在线看 | 激情久久网 | 人人藻人人澡人人爽 | 激情久久网 | 亚洲精品国产精品国自 | 丁香 婷婷 激情 | 欧洲一区二区三区精品 | 久草在线免费资源 | 天天操天天射天天插 | 亚洲在线观看av | 成人黄色资源 | 91完整版观看 | 91丨九色丨国产丨porny精品 | 久久精品综合网 | 特级黄色一级 | 欧洲精品一区二区 | 在线观看黄网 | 黄色a视频| 国产一区二区高清不卡 | 欧美午夜久久久 | 国产黄色精品在线 | 欧美在线aaa | 中文字幕中文字幕在线中文字幕三区 | 九九热在线观看视频 | 国产精品久久久久久久久久久久久 | 精品久久影院 | 91av视频免费观看 | 国产视频色 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久伊人精品一区二区三区 | aaa亚洲精品一二三区 | 91亚洲欧美激情 | www.天天综合| 99久久日韩精品免费热麻豆美女 | 中文字幕免费在线看 | 免费看国产精品 | 在线免费国产视频 | www.午夜| 婷婷九九| 深爱开心激情 | 亚洲电影在线看 | 精品免费视频123区 午夜久久成人 | 久久久99精品免费观看app | 九九九热精品免费视频观看网站 | 很黄很黄的网站免费的 | 丝袜网站在线观看 | 国产中文字幕视频 | 久久99婷婷 | 国产成人久久 | 成年人在线电影 | 免费情趣视频 | 免费下载高清毛片 | 欧美91成人网 | 国产99在线| 日本激情中文字幕 | 日韩久久精品一区二区三区 | 精品久久久久久亚洲综合网站 | 久久久久婷 | 精品一区二区在线免费观看 | 久草在线最新 | 亚洲视频h | 午夜成人免费电影 | 天天性天天草 | 国产精品s色| 色在线亚洲| 96久久欧美麻豆网站 | 免费观看91视频 | 一区二区三区 亚洲 | 日韩精品免费在线观看视频 | 波多野结衣在线观看一区二区三区 | 免费福利小视频 | 日韩精品免费一区二区在线观看 | 色九色| 狠狠色狠狠色综合日日92 | av福利在线导航 | 激情网色| 成人a免费 | 韩国精品一区二区三区六区色诱 | 欧美精品九九99久久 | 精品久久久国产 | 高潮久久久 | 日韩小视频网站 | 在线导航av | 久久激情视频 久久 | 日日干,天天干 | 在线观看岛国 | 在线亚洲免费视频 | 国产不卡视频 | 黄污网站在线 | 欧美极品一区二区三区 | 久久免费中文视频 | 免费看片网页 | 天天色天天草天天射 | 丁香激情综合国产 | 黄色在线看网站 | 精品99久久久久久 | 色黄久久久久久 | 久久久久国产精品一区二区 | 日产乱码一二三区别免费 | 高清视频一区二区三区 | 国产视频999 | 免费av视屏 | 西西大胆免费视频 | 九九av| 成人免费看黄 | 亚洲精品美女久久久久 | 欧美精品一区二区三区一线天视频 | 久草在线视频在线 | 在线观看日韩国产 | 亚洲毛片一区二区三区 | 99热999 | 一区二区三区国产欧美 | 在线观看亚洲电影 | 色婷婷啪啪免费在线电影观看 | 久久试看 | 久久久高清免费视频 | 江苏妇搡bbbb搡bbbb | 午夜视频久久久 | 亚洲精品毛片一级91精品 | 欧美激情视频免费看 | www.69xx | 国产日韩精品一区二区三区在线 | 色噜噜狠狠狠狠色综合久不 | 日韩免费视频线观看 | 亚洲激精日韩激精欧美精品 | 久久久久久久久久久久电影 | 91精品一区二区在线观看 | 成人免费在线电影 | 91精品国产入口 | 久久精品久久久精品美女 | 在线观看www视频 | 久久色网站 | 啪啪免费视频网站 | 九九精品视频在线观看 | 天天翘av | 亚洲欧美观看 | 色偷偷网站视频 | 精品综合久久久 | 中文字幕视频一区二区 | 黄色一级大片在线观看 | 在线亚州| 日韩理论影院 | 欧美久久久 | 96在线| 久久国产经典 | 亚洲一区久久久 | av女优中文字幕在线观看 | 91精品蜜桃 | 激情五月婷婷激情 | 欧美在线观看视频一区二区 | 久久精品黄色 | 国产黄色片一级 | 色综合 久久精品 | 国产 日韩 欧美 在线 | 又黄又刺激视频 | 日韩中字在线 | 精品久久久久久亚洲综合网站 | 成人国产精品 | 欧美aa级 | 国产91九色蝌蚪 | 久久手机免费观看 | 免费婷婷| 欧美天天干 | 国产精品亚洲人在线观看 | 国产精品高潮在线观看 | 五月婷婷播播 | 国产精品久久久一区二区三区网站 | 六月婷婷久香在线视频 | 日本女人的性生活视频 | 亚洲成人家庭影院 | 国内精品视频在线 | 成人综合免费 | 婷婷色在线 | 日本少妇视频 | 久久精品国产精品亚洲精品 | 日韩中字在线 | 日本女人的性生活视频 | 99久久久久久久久久 | 中文字幕在线观看一区二区三区 | 国产综合小视频 | 日韩黄色免费电影 | www日韩欧美 | 亚洲国产合集 | 免费在线观看av网站 | 在线观看黄污 | 一级精品视频在线观看宜春院 | 3d黄动漫免费看 | 国产91亚洲| 超碰97公开| 99自拍视频在线观看 | 成人免费看电影 | 在线观看午夜 | 五月天狠狠操 | 超碰人人干人人 | 色播99 | www色片 | 午夜三级理论 | 中文字幕成人 | 日本一区二区三区免费观看 | 日韩欧美电影在线 | 视频精品一区二区三区 | 精品久久久久久亚洲综合网 | 国产精品视频最多的网站 | 91精品国产福利在线观看 | 有码中文字幕 | 91av视频在线观看 | 免费日韩三级 | 五月天色网站 | 日韩理论片中文字幕 | 丁香视频| av成人在线观看 | 精品自拍sae8—视频 | 91在线免费公开视频 | 午夜av网站 | 天天天天天天干 | 在线亚洲欧美视频 | 亚洲精品午夜久久久久久久久久久 | 成人毛片在线观看 | 97夜夜澡人人双人人人喊 | 色婷婷综合久久久 | 亚洲激情综合网 | 2021国产在线视频 | 午夜少妇一区二区三区 | 人人干人人爽 | 精品在线一区二区 | 香蕉在线影院 | 色资源网免费观看视频 | 久热免费在线观看 | 在线观看片 | 免费在线观看毛片网站 | 欧美一区在线观看视频 | 国产精品a久久 | 999色视频| 欧美 日韩 国产 成人 在线 | 成人黄色中文字幕 | 在线观看一区视频 | 国产精品日韩在线观看 | 国产精品久久久久久久久久免费看 | 99精品视频观看 | 国产伦理精品一区二区 | 国产资源在线观看 | 欧美性春潮 | 精品国产乱码久久久久久1区2匹 | 色欧美88888久久久久久影院 | 超碰在线97国产 | 天天草天天插 | 久久综合久久伊人 | 日本中文字幕视频 | 亚洲妇女av| 国产色网 | 亚洲午夜av电影 | 国产福利在线免费 | 色片网站在线观看 | 成年人黄色免费看 | 日韩精品一区二区在线观看 | 最近免费观看的电影完整版 | 久久国产精品99久久久久 | 亚洲一级特黄 | 成年人av在线播放 | 男女免费av | 伊人色综合久久天天网 | 美女网站视频色 | 日韩毛片在线一区二区毛片 | 91在线小视频 | 国内精品久久久久久久影视简单 | 黄色最新网址 | 国产精品久久99精品毛片三a | 亚洲一级电影在线观看 | 久久黄色小说 | 国产麻豆视频 | av免费看电影 | 久久免费久久 | 国产一区二区视频在线 | 久久99国产精品久久 | 久久午夜网 | 一区二区三区在线免费观看 | 国产婷婷精品 | 五月天色网站 | 四虎成人精品永久免费av | 国产精品一区在线观看 | 国产精品久久久久久久久婷婷 | 国产精品久久久久久久久久99 | 婷婷在线免费 | 综合网天天射 | 999亚洲国产996395 | 国产精品理论片在线观看 | 久久人人97超碰com | 国产在线色视频 | 色综合久久五月天 | 96视频在线 | 欧美性大战久久久久 | 九九热在线精品 | 久久久国产精华液 | 高清不卡一区二区在线 | 亚洲国产三级在线 | 国产视频一区二区在线 | 91经典在线 | 亚洲最新av在线网站 | 91丨九色丨蝌蚪丨对白 | 国产成人精品久久亚洲高清不卡 | 99久久婷婷国产综合精品 | 人人澡人人添人人爽一区二区 | 亚洲欧洲久久久 | 一级精品视频在线观看宜春院 | 91视频免费观看 | 色噜噜日韩精品欧美一区二区 | 日韩免费播放 | 天天综合精品 | 成人午夜在线观看 | 日韩有码在线播放 | 麻豆视频在线看 | 国产又粗又硬又长又爽的视频 | 天堂av一区二区 | 国产剧在线观看片 | 日韩mv欧美mv国产精品 | 久久久国产精品成人免费 | 91av在线播放 | 国产99久久九九精品免费 | 在线观看视频91 | 免费看黄色小说的网站 | 视频二区在线视频 | 97色狠狠 | 国产亚洲精品久久久久久电影 | 欧美污网站 | 超碰成人av | 成人黄色大片 | 国产乱对白刺激视频不卡 | 国产美女黄网站免费 | 国产中文字幕在线播放 | 日韩国产在线观看 | 日韩黄色一级电影 | 国产精品美女久久久久久2018 | 一级片在线| 伊人永久在线 | 日韩精品91偷拍在线观看 | 美女视频黄是免费的 | 日韩av成人在线观看 | 日日夜夜天天久久 | 亚洲精品一区二区三区新线路 | 99在线高清视频在线播放 | 午夜电影av | 亚洲综合视频在线播放 | 免费a v网站 | 激情欧美国产 | 久久久香蕉视频 | 99精品热视频 | 亚洲另类久久 | 色播99| 夜夜躁狠狠躁日日躁视频黑人 | 国产精品大尺度 | 日韩免费网址 | 日韩性色 | 人人干网站 | 91九色蝌蚪国产 | 久久久久成人精品 | 国产精品网站 | 久草在线一免费新视频 | 国产精品第二页 | 日韩国产精品一区 | 精品自拍网 | 天天综合成人 | av超碰在线 | 69精品视频在线观看 | 91视频网址入口 | 国产精品毛片一区二区 | 美女视频永久黄网站免费观看国产 | 人人干天天干 | 亚洲影院色 | 中文字幕在线观看2018 | 久草视频免费在线观看 | 免费色视频| 色综合婷婷久久 | 亚洲免费精彩视频 | 色婷婷综合久久久 | 国产成人久久久77777 | 国产精品 9999 | 日本精品一区二区三区在线播放视频 | 中文在线√天堂 | 亚洲精品久久久久中文字幕m男 | 成人a级网站 | 亚洲日本va在线观看 | 操操操人人 | 三级黄色网络 | 黄色一级影院 | 国产中文字幕亚洲 | www.天天操.com | 国产精品久久久久av | 日韩试看 | 久久人人精品 | 在线观看av小说 | 免费av电影网站 | 色偷偷88888欧美精品久久久 | 福利视频一二区 | 一区二区三区 中文字幕 | 九九九在线| 久草热视频 | 黄色三级在线看 | 美女在线国产 | 色射色| 国产精品videoxxxx | 国产精品一区在线观看你懂的 | 综合国产在线 | 国产黄色片久久久 | 最新日韩在线观看视频 | 精品久久久久久电影 | 热久久最新地址 | 狠狠狠色丁香综合久久天下网 | 久久兔费看a级 | 狠狠久久伊人 | 网站你懂的 | 国产高清99 | 欧美一级视频一区 | 日韩三级成人 | www.com久久| 久久久午夜电影 | 在线观看网站黄 | 在线观看视频99 | 色婷婷视频在线 | 日韩字幕在线观看 | www.888.av| 中文在线中文资源 | 久久精品国产精品亚洲 | 日日草视频 | 日韩在线免费视频观看 | 亚洲精品美女久久久久 | 国产精品99久久久 | 亚洲在线视频观看 | 黄色av网站在线免费观看 | 亚洲国产精品久久久久婷婷884 | 公与妇乱理三级xxx 在线观看视频在线观看 | 国产一级高清 | 日本在线观看中文字幕无线观看 | 一级片色播影院 | 中文字幕.av.在线 | 欧美日韩激情视频8区 | 天天操天天拍 | 天天玩天天干天天操 | 在线观看视频一区二区三区 | 国产精品尤物 | 免费男女网站 | 国产在线黄 | 免费电影播放 | 婷婷丁香狠狠爱 | 亚洲黄色在线播放 | 97成人免费视频 | 久久你懂得 | 操操操综合 | 久久久久国产成人免费精品免费 | 国产亚州精品视频 | 天天夜夜亚洲 | av大全免费在线观看 | 欧美精品一区二区三区一线天视频 | 中文字幕久久精品一区 | 欧美a级免费视频 | 欧美另类性 | 在线观看国产v片 | 干亚洲少妇 | 久久精品国产成人精品 | 在线看岛国av | h动漫中文字幕 | 久久综合五月 | 婷婷爱五月天 | 国产一级免费观看 | 亚洲丝袜一区二区 | 久久韩国免费视频 | 日韩av免费大片 | 五月激情在线 | 久久免费视频在线观看30 | 亚洲三级在线免费观看 | 久久久免费看视频 | 国产精品日韩久久久久 | 18国产精品白浆在线观看免费 | 激情婷婷av | 九九九热精品 | 五月婷香蕉久色在线看 | 在线观看午夜av | 色妞色视频一区二区三区四区 | 日韩欧美在线观看一区二区三区 | 一区二区精品视频 | 97在线观看免费 | 27xxoo无遮挡动态视频 | 久久九九国产精品 | 久久免费高清视频 | 99久久婷婷国产综合精品 | 欧美亚洲国产精品久久高清浪潮 | 午夜久操| 97理论电影 | 最新av在线播放 | av三级av| 日韩中文字幕第一页 | 中文字幕欧美三区 | 中文字幕二区在线观看 | 97精品超碰一区二区三区 | 婷婷久久网站 | 日批在线观看 | 日日干,天天干 | 日韩精品一区二区三区免费观看视频 | 特级毛片网站 | 欧美在线视频一区二区三区 | 五月激情久久 | 精品一区二区av | 亚洲国产网址 | 九九色在线观看 | 欧美性大战 | 中文字幕久久亚洲 | www五月 | 91av在线免费 | 麻豆视频免费在线观看 | 91少妇精拍在线播放 | 亚洲最快最全在线视频 | 91观看视频 | 97成人精品| 成人av地址| 18女毛片 | 久久精品99久久久久久2456 | 精品视频国产一区 | 又黄又爽的免费高潮视频 | 日本中文字幕观看 | 丝袜足交在线 | 久久激情五月婷婷 | 国产999精品久久久久久 | 欧美黑吊大战白妞欧美 | 99热这里只有精品国产首页 | 久久视频免费 | 久久综合给合久久狠狠色 | 欧美性天天 | 成人黄色免费在线观看 | 国产成人精品午夜在线播放 | 久久精品国产免费看久久精品 | 在线观看一级片 | 亚洲综合一区二区精品导航 | 免费在线观看一区 | 丁香导航 | 久久久久欠精品国产毛片国产毛生 | 91最新在线观看 | 色综合www| 国产护士hd高朝护士1 | 在线国产视频一区 | 91资源在线播放 | 五月天高清欧美mv | 免费视频国产 | 久久人人爽人人 | 日日操网站 | 97超碰在线久草超碰在线观看 | 国产精品一区二区果冻传媒 | 毛片基地黄久久久久久天堂 | 天天干天天干天天射 | 人人澡人人模 | 国产精品国产三级国产不产一地 | www在线观看视频 | 又黄又爽又湿又无遮挡的在线视频 | 色婷婷狠狠干 | 天天爽天天爽天天爽 | 四虎影视www | 日韩天天操 | 在线观看日韩专区 | 天天综合网在线观看 | 天天躁日日躁狠狠躁av麻豆 | 国产精品一区二区av麻豆 | 特级黄色一级 | 国产剧情av在线播放 | 国产精品99久久99久久久二8 | 国产999精品久久久久久麻豆 | 麻豆国产精品va在线观看不卡 | 久久国产麻豆 | 不卡av电影在线观看 | 手机av资源 | 色偷偷88888欧美精品久久 | 午夜18视频在线观看 | 欧美福利片在线观看 | 欧美日韩中 | 国产精品久久久久一区二区国产 | 97视频在线免费 | 国产在线观看一 | 久久视频在线观看中文字幕 | 视频在线一区二区三区 | 国色天香在线 | 色偷偷人人澡久久超碰69 | 欧美激情视频免费看 | 99热.com | www.亚洲黄色| 在线国产专区 | 久久久久一区二区三区四区 | 国产黄色特级片 | 久久尤物电影视频在线观看 | 亚洲欧美国内爽妇网 | 日韩一区二区三区免费电影 | 又色又爽又黄 | av大片网址 | 最近中文字幕 | 欧美动漫一区二区三区 | 天天草天天色 | 免费美女av | 免费网站黄色 | 免费激情网 | 婷婷精品国产欧美精品亚洲人人爽 | 免费福利视频网站 | 久久亚洲欧美日韩精品专区 | 夜夜视频资源 | www毛片com| 久久人人97超碰精品888 | 久草观看 | 亚洲永久av| 免费看十八岁美女 | 欧美精品xx | 午夜丁香视频在线观看 | 成人禁用看黄a在线 | 久久免费一 | 国产黄视频在线观看 | 亚洲成人软件 | 国产视频在线播放 | 国产精选在线观看 | 一区二区三区不卡在线 | 91毛片在线观看 | 色小说av| 久久人人插 | 99久久99视频 | 中文字幕久久精品一区 | 在线免费观看的av网站 | 国产91av视频在线观看 | 天天操天天操天天 | 欧美日韩精品综合 | 99视频在线免费看 | 高清国产午夜精品久久久久久 | 亚洲国产偷 | 国产99久久精品 | 成人av在线一区二区 | 亚洲精品在线观看av | 欧美夫妻性生活电影 | 婷婷色社区| 亚洲欧洲一级 | 日精品 | 岛国一区在线 | 成人国产综合 | h网站免费在线观看 | 一区二区三区www | 超碰人人干人人 | 亚洲免费公开视频 | 久久久综合 | 色国产精品一区在线观看 | 91麻豆福利 | 日韩午夜小视频 | 国产视频手机在线 | 国产午夜精品一区二区三区在线观看 | 久草在线资源免费 | 91精品一区国产高清在线gif | 亚洲免费在线看 | 91精品在线免费观看视频 | 中文字幕在线免费观看 | 91麻豆视频网站 | 国产免费作爱视频 | 国产成人精品久久亚洲高清不卡 | 在线日本v二区不卡 | 午夜色场 | 国产原创在线视频 | 国产高清视频在线播放一区 | 国产999精品久久久久久麻豆 | 日韩av电影中文字幕 | 国产福利91精品一区 | 成人激情开心网 | 国产1区2| 日批视频在线 | 国产精品免费一区二区 | 日韩免费视频一区二区 | 亚洲国产精品电影 | 日韩小视频 | 亚洲精品资源在线 | 日日操日日干 | 国产精品不卡在线 | 午夜手机电影 | 日本在线观看一区二区三区 | 国产精品一区二区三区99 | 久久99久久99精品免观看软件 | 成人一区在线观看 | 亚洲欧美日韩国产一区二区三区 | www.色国产| 综合激情 | 狠狠五月婷婷 | 国产黄色一级片在线 | www夜夜操| 亚洲第一色| 国产永久免费高清在线观看视频 | 偷拍区另类综合在线 | 天天干夜夜爱 | 不卡av免费在线观看 | 日日干激情五月 | 久久综合久久综合这里只有精品 | 嫩草av影院 | 精品国产1区2区3区 国产欧美精品在线观看 | 91在线小视频 | 黄色软件网站在线观看 | 特级a老妇做爰全过程 | 日韩中文字幕视频在线 | 亚洲精品国产成人av在线 | 日本午夜在线亚洲.国产 | 在线视频99 | 综合伊人久久 | 91福利视频免费 | 国产成人在线一区 | 五月天婷亚洲天综合网鲁鲁鲁 | 欧美日韩一区二区在线观看 | 国产精成人品免费观看 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 9ⅰ精品久久久久久久久中文字幕 | 在线视频一区观看 | 热久久国产 | 婷婷国产v亚洲v欧美久久 | 丁香五香天综合情 | www黄免费 | 就要色综合 | av中文字幕在线电影 | 色夜影院| 国产精品中文久久久久久久 | 91精品视频免费 | 91久久丝袜国产露脸动漫 | 免费视频黄色 | 天堂在线一区二区三区 | 欧美一区二区三区在线视频观看 | 国产午夜剧场 | 国产乱老熟视频网88av | 成人av.com| 91亚洲欧美| 欧美精品免费在线 | 婷婷开心久久网 | 日韩狠狠操 | 91禁看片| 欧美91精品久久久久国产性生爱 | 国产免费视频一区二区裸体 | av色综合 | 精品一区二区日韩 | 日韩在线观看一区二区 | 天天干天天干天天射 | 中文字幕专区高清在线观看 | 欧美成人基地 | 欧美日韩一级视频 | 高清不卡毛片 | 人人澡人人模 | 亚洲春色综合另类校园电影 | 久在线观看视频 | 国产精品毛片一区视频播不卡 | 人人澡人人澡人人 | 精品国产一区二区三区av性色 | 国产一区私人高清影院 | 久久精品视频在线看 | 成人黄色av免费在线观看 | 99热在线观看 | 91成人在线观看高潮 | 国产精品初高中精品久久 | 欧美aⅴ在线观看 | 91漂亮少妇露脸在线播放 | 久香蕉 | 国产又粗又硬又爽的视频 | 亚洲天天在线 | 精品国产乱码久久久久久浪潮 | 色婷婷亚洲精品 | 国产午夜一区二区 | 日本精品久久久久中文字幕5 | 99操视频| 精品国产福利在线 | 亚洲涩涩涩涩涩涩 | 黄色动态图xx | 日本久久精品 | 99久久er热在这里只有精品15 | 美女国产| 国产在线视频一区二区 | 国精产品999国精产品岳 | 精品视频在线看 | 一级黄色大片 | 一区二区亚洲精品 | 在线观看日本高清mv视频 | 国产中文在线视频 | 99九九免费视频 | 黄色毛片在线 | 成人午夜片av在线看 | 狠狠操狠狠干2017 | 香蕉视频在线看 | 亚洲片在线观看 | 午夜视频久久久 | 97精产国品一二三产区在线 | 国产视频精品在线 | 国产成人在线免费观看 | 国产玖玖在线 | 91精品国产99久久久久久红楼 | 婷婷丁香七月 | 欧美污网站 | 天天综合导航 | 免费在线一区二区三区 | 免费在线黄 | 国产69精品久久久久99 | 97精品视频在线播放 | 9在线观看免费高清完整版 玖玖爱免费视频 | 日韩精品一区二区三区水蜜桃 | 色综合天天综合 | 韩国av一区二区三区 | 久久情爱 | 探花视频免费观看高清视频 | 国产资源在线视频 | 91成人免费 | 久久国产精品视频免费看 | 久久综合日| 91黄色小视频 | 国产精品乱码久久久久久1区2区 | 中文字幕在线观看网站 | 91精品久久香蕉国产线看观看 | 激情av资源网 | 久草在线最新免费 | 国产一线二线三线在线观看 | 在线电影 你懂得 | 亚洲每日更新 | 日韩美精品视频 | 国产黄色片一级 | 最新一区二区三区 | 国产午夜精品一区二区三区在线观看 | 一区二区三区动漫 | 91精品在线观看入口 | 天天操天天干天天综合网 | 久久久91精品国产 | av中文字幕免费在线观看 | 999久久久| 国产高清视频在线播放一区 | av中文字幕亚洲 | av日韩中文| 成年人网站免费观看 | 玖玖玖精品 | 久久99亚洲精品久久 | 狠狠干狠狠艹 | 免费视频久久久久久久 | 搡bbbb搡bbb视频 | 日批视频在线播放 | 日韩系列在线 | aaa毛片视频| 久久看看| 亚洲精品乱码白浆高清久久久久久 | 国产欧美最新羞羞视频在线观看 | 国产高清在线免费视频 | 国产成人综合精品 | 一区二区视频在线观看免费 | 精品国内自产拍在线观看视频 | 亚洲欧美日韩精品久久奇米一区 |