久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

spring中@Reference注入為空的解決方法

瀏覽:190日期:2023-07-10 10:56:12
線上發生事故了

前天晚上上線一波,發生了一個挺有意思的事,昨天復盤了一下,今天分享一下。

晚上的時候,我負責的系統和收銀系統同時上線一波(用的是Dubbo)。然后很神奇的事情發生了,收銀系統用@Reference注解注入我的接口,然后這個接口的實現類居然為空。

其實我們當時沒排查出來是什么原因?

重啟了一下就好了,畢竟重啟大法好。 但本著不能給用戶充錢的路上造成阻礙,還是要排查一波這個代理對象為空是如何造成的。

線上dubbo的版本為2.8.9,注意包名是(com.alibaba)

為了方便大家理解我說的內容,簡單說一下RPC框架的執行流程。

spring中@Reference注入為空的解決方法

Server將服務信息注冊到Registry,Client從Registry拉取Server的信息。Client通過代理對象(Client Stub)發送發送網絡請求,Server通過代理對象(Server Stub)執行本地方法網絡傳輸過程中有編解碼和序列化的過程

在Dubbo中Client Stub和Server Stub都是Invoker對象

我們繼續,注入的接口實現類居然能為空?我就看了一下他寫的代碼,只用了一個@Reference注解,沒有設置任何屬性。

@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})public @interface Reference { // 省略其他屬性 boolean check() default true;}

那么check=true,即沒有服務提供者的時候,服務消費者都不能正常啟動,因為會拋出IllegalStateException異常。既然能正常啟動,那這個代理對象正常創建了啊,不可能為null啊

// 2.8.9版本// ReferenceConfig#createProxyBoolean c = check;if (c == null && consumer != null) { c = consumer.isCheck();}if (c == null) { c = true; // default true}if (c && !invoker.isAvailable()) { throw new IllegalStateException('Failed to check the status of the service ' + interfaceName + '. No provider available for the service ' + (group == null ? '' : group + '/') + interfaceName + (version == null ? '' : ':' + version) + ' from the url ' + invoker.getUrl() + ' to the consumer ' + NetUtils.getLocalHost() + ' use dubbo version ' + Version.getVersion());}

然后我同事說有沒有可能是客戶端先啟動,沒有服務提供者導致代理對象為空的?

我說不可能的,客戶端先啟動,check屬性為true,不可能啟動成功的!再說每次上線,新服務正常啟動后,才會關閉舊服務的,服務提供者一定會有的。

為什么會發生這種情況,是真心搞不懂,只能google “@Reference 注入對象為null”

答案基本一致,沒有服務提供者導致代理對象為空的,只要把@Reference的check屬性設置為false即可,至于原因沒一篇文章說過

接下來就是驗證網上的方法了

先啟動producer,再啟動consumer,正常調用先啟動consumer(check=true),再啟動producer,代理對象為空,完美復現先啟動consumer(check=false),再啟動producer,正常調用

和我的想法不一致,學dubbo的時候沒聽過必須先啟動producer再啟動consumer才能正常調用?。?/b>

我就拿出我學dubbo時用的例子測試了一波,dubbo的版本為2.7.3注意包名是(org.apache)

先啟動producer,再啟動consumer,正常調用先啟動consumer(check=true),此時沒有producer,啟動失敗先啟動consumer(check=false),再啟動producer,正常調用

這才符合我的想法啊

揭秘真相

既然@Reference注入的對象為null,那說明Spring Bean的生命周期中屬性賦值階段有問題

spring中@Reference注入為空的解決方法

再來分析一下@Reference注解的注入邏輯,和@Autowired,@Resource之類的注入邏輯基本差不多。

當你加入Dubbo的spring boot starter時,會往容器中注入ReferenceAnnotationBeanPostProcessor,看一下這個類的繼承關系

spring中@Reference注入為空的解決方法

其中最主要的部分你只需要知道這個類重寫了InstantiationAwareBeanPostProcessor#postProcessPropertyValues(這個方法在后面的版本中被postProcessProperties方法替代),而這個方法正是用來屬性賦值的,看上面的Bean生命周期圖

public class ReferenceAnnotationBeanPostProcessor {// 省略了繼承類和方法 // 這個方法給@Reference屬性賦值 @Override public PropertyValues postProcessPropertyValues( PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeanCreationException {InjectionMetadata metadata = findReferenceMetadata(beanName, bean.getClass(), pvs);try { metadata.inject(bean, beanName, pvs);} catch (BeanCreationException ex) { throw ex;} catch (Throwable ex) { throw new BeanCreationException(beanName, 'Injection of @Reference dependencies failed', ex);}return pvs; }}

接著執行到ReferenceFieldElement#inject方法,@Reference引入的對象會被包轉為ReferenceBean

private class ReferenceFieldElement extends InjectionMetadata.InjectedElement { @Override protected void inject(Object bean, String beanName, PropertyValues pvs) throws Throwable {Class<?> referenceClass = field.getType();// 獲取 referenceBean 的邏輯在這referenceBean = buildReferenceBean(reference, referenceClass);ReflectionUtils.makeAccessible(field);// 通過反射注入對象field.set(bean, referenceBean.getObject()); }}

經過一系列方法調用執行到如下方法

// AbstractAnnotationConfigBeanBuilder#buildpublic final B build() throws Exception { checkDependencies(); B bean = doBuild(); configureBean(bean); if (logger.isInfoEnabled()) {logger.info(bean + ' has been built.'); } return bean;}

此時日志中會打印ReferenceBean對象,這個對象繼承了AbstractConfig,所以會執行AbstractConfig#toString方法

public abstract class AbstractConfig implements Serializable { @Override public String toString() {try { StringBuilder buf = new StringBuilder(); buf.append('<dubbo:'); buf.append(getTagName(getClass())); Method[] methods = getClass().getMethods(); for (Method method : methods) {try { String name = method.getName(); if ((name.startsWith('get') || name.startsWith('is')) && !'getClass'.equals(name) && !'get'.equals(name) && !'is'.equals(name) && Modifier.isPublic(method.getModifiers()) && method.getParameterTypes().length == 0 && isPrimitive(method.getReturnType())) {int i = name.startsWith('get') ? 3 : 2;String key = name.substring(i, i + 1).toLowerCase() + name.substring(i + 1);Object value = method.invoke(this, new Object[0]);if (value != null) { buf.append(' '); buf.append(key); buf.append('=''); buf.append(value); buf.append(''');} }} catch (Exception e) { logger.warn(e.getMessage(), e);} } buf.append(' />'); return buf.toString();} catch (Throwable t) { logger.warn(t.getMessage(), t); return super.toString();} }}

好家伙,打印的時候把get方法全執行了一遍,然后執行ReferenceBean#getObject方法異常了(就是那個沒有服務提供者拋出的異常),但是被try Catch了

因為ReferenceBean是一個FactoryBean,所以需要調用getObject方法才能獲取創建的對象

private class ReferenceFieldElement extends InjectionMetadata.InjectedElement { @Override protected void inject(Object bean, String beanName, PropertyValues pvs) throws Throwable {Class<?> referenceClass = field.getType();// 獲取 referenceBean 的邏輯在這referenceBean = buildReferenceBean(reference, referenceClass);ReflectionUtils.makeAccessible(field);// 通過反射注入對象field.set(bean, referenceBean.getObject()); }}

接著調用ReferenceBean#getObject方法,好了,這就是服務導出的邏輯了! 不細說了,后續單開文章寫,會執行到ReferenceConfig#get方法

// ReferenceConfig#getpublic synchronized T get() { if (destroyed) {throw new IllegalStateException('Already destroyed!'); } if (ref == null) {init(); } return ref;}

此時代理對象為null,執行init方法,initialized默認為false,執行一次變為true(AbstractConfig執行toString方法的時候哈),所以第二次執行,直接return,此時代理對象為null,完事!

private void init() { if (initialized) {return; } initialized = true; // 省略部分代碼}

我學習用的版本為什么能正常工作?

public final C build() throws Exception { checkDependencies(); C configBean = doBuild(); configureBean(configBean); if (logger.isInfoEnabled()) {logger.info('The configBean[type:' + configBean.getClass().getSimpleName() + '] has been built.'); } return configBean;}

就是打印的時候不會執行getObject方法了

為什么@Reference的check屬性設置為false就能正常調用?

因為第一次調用成功執行完ReferenceBean#getObject方法,ref已經賦值為代理對象了,第二次執行就能將這個代理對象返回

// ReferenceConfig#getpublic synchronized T get() { if (destroyed) {throw new IllegalStateException('Already destroyed!'); } if (ref == null) {init(); } return ref;}

至于我們的線上系統為什么沒獲取到服務提供者,我估計很大概率是由于網絡的原因

解決方案

@Reference注解的check屬性設置為false(默認為true),因為當你的check屬性為true并且沒有服務提供者時,不會起任何作用,只會注入一個空對象,后續當有服務提供者可用時,這個對象始終為空。當check為false時,會注入一個代理對象,當有服務提供者時,這個代理對象會刷新,就能正常發起調用

選擇能正常執行的版本

到此這篇關于spring中@Reference注入為空的解決方法的文章就介紹到這了,更多相關spring @Reference注入為空內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 四虎av成人 | 中文字幕在线观看视频一区 | 91精品国产一区二区三区香蕉 | 中文字幕av一区 | 久久久久国产精品www | 日韩一区在线视频 | 在线观看毛片网站 | 婷婷久久综合九色综合绿巨人 | 亚洲成人精品久久久 | 一区二区三区在线观看视频 | 欧美精品国产精品 | 欧美一区二区三区在线视频 | 国家aaa的一级看片 操操操夜夜操 | 国产无套一区二区三区久久 | 日韩激情一区二区 | 精品视频一区二区三区 | 免费的av网站| 成人福利视频 | 国产精品一区二区视频 | 亚洲精品区 | 国产精品片aa在线观看 | 91麻豆精品国产91久久久资源速度 | 日韩中文字幕国产 | 久在线| 麻豆毛片 | sese综合| 亚洲欧美国产一区二区三区 | 欧美日韩国产精品一区 | 日本爱爱 | 一区二区三区精品视频免费看 | 欧美a级成人淫片免费看 | 欧美日韩a | 性人久久久 | 日本韩国欧美一区 | 中国一级毛片 | 亚洲免费视频一区 | 亚洲欧美综合精品久久成人 | www.五月婷 | 中文字幕一区日韩精品欧美 | 在线欧美视频 | 中文字幕视频免费观看 | 欧美成人免费在线观看 | 国产一区二区三区四区在线观看 | 在线视频一区二区 | 青青草超碰在线 | 日韩高清黄色 | 99国产精品久久久久久久 | 亚洲视频一区二区在线 | 欧美在线视频三区 | 亚洲精品1 | 一区二区三区免费看 | 一区二区免费视频 | 欧美高清成人 | 奇米影视77 | 日本黄色大片免费看 | 久久不卡日韩美女 | 韩日精品视频 | 亚洲综合在线一区 | 国产精品久久久久久久久久小说 | 亚洲视频在线观看 | 精品国产乱码一区二区三区 | 久久免费精品视频 | 欧美综合婷婷 | 国产一区二区精品 | 天天操综合网 | 精品久久久久久久 | 成人国产| 精品无人乱码一区二区三区的优势 | 日韩一级免费在线观看 | 香蕉久久网 | 日韩在线一区二区三区 | 欧美操穴| 九热精品 | 99热免费精品 | 久色成人 | 亚洲国产精品精华液网站 | 欧美一区不卡 | 龙珠z普通话国语版在线观看 | 国产精品27页| 日本99精品| 国产成人一区 | 成人理论片 | 精品一区二区三区免费视频 | 情五月 | 亚洲国产成人av好男人在线观看 | 波多野结衣 一区二区 | 中文字幕在线永久 | 久久久av| 中文字幕二区 | 无套内谢孕妇毛片免费看红桃影视 | 国产免费自拍 | 草久av| 影音先锋男人网 | 国产精品18久久久久久久久 | 欧美激情在线精品一区二区三区 | 国产精品视频免费播放 | 99视频免费看 | 日本免费网| 伊人久久精品久久亚洲一区 | av中文在线| 精品久久久久久久 | 99中文字幕| 日韩国产欧美 | 男女午夜网站 | 后进极品白嫩翘臀在线视频 | 亚洲福利社区 | 国产精品久久久久久无遮挡 | 亚洲国内精品 | av在线网址观看 | 国产丝袜在线 | 四虎最新影视 | 亚洲精品乱码久久久久久麻豆不卡 | 国产一区二 | av网址在线播放 | 国产羞羞视频免费在线观看 | 日韩欧美国产网站 | 国产在线精品一区二区三区 | 国产精品久久久久久久午夜片 | 久久精品一区二区三区四区 | 精品九九 | 精品在线视频观看 | 日韩一级大片 | 免费观看成人性生生活片 | 国产欧美在线观看 | 亚洲精品视频在线观看免费 | 一级黄色录像在线观看 | 中文字幕第二页 | 黄色影视在线免费观看 | 国产一二三区在线播放 | 欧美一级一区 | 亚洲成人免费 | 国产99久久精品一区二区永久免费 | 国产黄色免费小视频 | 日韩不卡在线 | 日韩欧美国产精品综合嫩v 亚洲欧美日韩在线 | 日本末发育嫩小xxxx | 欧美日韩国产一区二区 | 亚洲视频在线视频 | 久久的爱 | 免费视频99 | 欧美日韩专区 | 亚洲国产精品99久久久久久久久 | 男女视频在线观看 | 中文字幕免费在线观看 | 龙珠z国语版291集全 | 91精品久久 | 久久91精品国产 | 国产亚洲www | 日本中文在线 | 免费大片黄在线观看 | aaa黄色片| 亚洲视频免费 | 成人免费一区二区三区视频网站 | 日本成人中文字幕在线观看 | 精品久久精品 | 国产精品二区三区 | 亚洲cb精品一区二区三区 | 国产中文一区 | 欧美视频网站 | 久草青青 | 日韩中文在线视频 | 亚洲欧美在线观看 | 免费黄网视频 | 久久国产精品免费一区二区三区 | 91中文字幕在线 | 91久久精品日日躁夜夜躁欧美 | 奇米影视四色777me | 91视频.www | 天天干天天搞天天射 | 久久久久久毛片免费观看 | 亚洲一区二区在线视频 | 国产精品2区| 亚洲精品二区 | 亚洲精品在线观看免费 | 日韩在线播放一区 | 九九热精品视频 | 久久久久久免费毛片精品 | 综合久久网 | 久久国产精彩视频 | 亚洲在线免费观看 | 日韩欧美一区二区在线观看 | 三区在线| 国产一区91 | 一区二区三区小视频 | 久久国产精品免费一区二区三区 | 麻豆网址| 人人看人人射 | 国产精品99久久久久久久vr | 欧美国产精品一区 | 最近的中文字幕在线看视频 | 日韩成年视频 | 精品久久久久久久久久久久 | www.久久久 | 久久综合久久久 | 999视频在线 | 日韩午夜视频在线观看 | av激情在线| 国产精品久久久久久久久久久免费看 | 欧美成人精品一区二区三区 | 99精品全国免费观看视频软件 | a一级免费视频 | 国产三级在线播放 | www.黄网 | 国产亲子乱弄免费视频 | 依人成人综合网 | 久久国产欧美日韩精品 | 亚洲高清视频一区二区三区 | 久久伊人青青草 | 亚洲精品网址 | 日韩理伦在线 | 精品久久久久久久久久久 | 一区二区三区的视频 | 亚洲欧美国产一区二区三区 | 国产在线小视频 | 日韩在线精品强乱中文字幕 | 天天干干干干 | 日韩手机专区 | 久久国产综合 | 久久久精品一区二区 | 欧美在线播放一区 | 欧美一级久久 | 最新av中文字幕 | 亚洲国产精品久久久 | 久久青青操 | 日韩三区视频 | 欧美一级二级三级视频 | 涩涩天堂 | 欧美视频一区二区三区在线观看 | 中文字幕亚洲一区二区va在线 | 精品在线看 | 中文字幕毛片 | 久久99er6热线精品首页蜜臀 | 国产一区二区三区久久 | 爱操av| 亚洲人久久 | 日本在线观看 | 爱免费视频 | 精品国产91乱码一区二区三区 | 天天操天天插天天干 | 国产成人一区二区三区 | 91不卡 | 伊人青青久久 | 亚洲午夜精品视频 | 国产老女人精品毛片久久 | 久久久网站 | 超级碰在线视频 | 久久精品国产亚洲精品 | 一区日韩 | 精品一二三区 | 亚洲一区免费视频 | 国产欧美精品一区二区色综合朱莉 | 成人av免费在线观看 | 国产一区二区三区在线免费观看 | 波多野结衣先锋影音 | 精品福利在线视频 | 日韩精品一区二区三区四区视频 | 欧美激情一区二区三级高清视频 | 香蕉久久av一区二区三区 | 亚洲成av人片一区二区梦乃 | 亚洲久久视频 | 欧美一区二区三区免费 | 99综合 | 国产成人一区二区三区 | 天天操夜夜干 | 一区二区不卡视频 | 欧美精品成人一区二区在线 | 精品三级三级三级三级三级 | 国产精品精品 | 亚洲精品视频在线观看免费 | 亚洲成人免费视频 | 国产一级免费 | 91一区在线 | 久久99国产精品 | 一区二区在线免费观看 | 欧美在线观看一区二区 | 在线看h | 第一色网站 | 国产伦精品一区二区三区在线 | 国产精品国产精品国产专区不片 | 操视频网站 | 亚洲人成中文字幕在线观看 | 伊人手机在线视频 | 国产高清在线精品 | 国产精品乱码一二三区的特点 | 国产成人精品久久二区二区 | 日韩综合网 | 亚洲 欧美 另类 综合 偷拍 | 日韩成人在线播放 | 亚洲一区二区三区蜜桃 | 在线观看欧美日韩视频 | 国产三级一区二区 | 美女视频久久 | 国产在线小视频 | 玖玖国产精品视频 | av在线播放国产 | 青青草99 | 国产精品伦一区二区三级视频 | 一级在线毛片 | 亚洲男人天堂av | 日韩一区二区三区在线视频 | 亚洲日韩中文字幕一区 | 久久精品一 | 男人的天堂在线视频 | 国产目拍亚洲精品99久久精品 | 国产一级毛片电影 | 国产精品免费在线 | www久久精品| 亚洲成人免费网站 | 日韩精品免费在线观看 | 久草成人 | 国产精品午夜电影 | 国产69精品99久久久久久宅男 | 噜噜噜在线 | 一区二区视频网 | 亚欧毛片 | 男女免费在线观看视频 | 国产伦精品一区二区三区四区视频 | www.国产一区 | av一区二区三区 | 国内自拍网站 | 国产视频精品在线观看 | 久久久精品久久久久 | 久久精品二区亚洲w码 | 国产一区二区三区四 | 欧美三级在线 | 国产aⅴ一区二区 | 日韩欧美国产精品一区二区三区 | 亚洲天天| 中文字幕久久精品 | 国产999精品久久久影片官网 | 精品自拍视频 | 亚洲成人福利在线观看 | 激情欧美一区二区三区中文字幕 | 亚洲一区在线日韩在线深爱 | av成人毛片 | 99精品欧美一区二区蜜桃免费 | 黄色国产 | 久久精品欧美电影 | 久久久精品一区二区 | 久久国产精品久久精品 | 国产亚洲一区二区三区在线观看 | 99精品久久久久久久免费看蜜月 | 羞羞网页| 午夜私人影院在线观看 | 日本精品网站 | 亚洲精品电影在线一区 | 色九九| 成人精品鲁一区一区二区 | 91啪影院 | 亚洲欧美激情在线 | 成人免费在线观看视频 | 亚洲天堂色2017 | 亚洲一区二区三区免费观看 | 午夜视频网 | 欧美中文字幕在线观看 | 在线国产视频 | 午夜精品久久久久久久久久久久久 | 免费看的av| 免费黄色网止 | 国产精品久久久久久久 | 免费av在线网站 | 亚洲 成人 av| 欧美日韩中文字幕 | 在线a级毛片 | 一区不卡 | h在线免费 | 亚洲日本va中文字幕 | 午夜影视 | 国产精品久久久久免费 | 午夜精品久久久久久久久久久久 | 免费a爱片猛猛 | 日韩成人在线播放 | 亚洲伦理| 欧美日韩一区二区三区不卡视频 | 欧美性大战久久久久久久蜜臀 | 国内自拍偷拍视频 | 91麻豆精品国产91久久久更新时间 | 亚洲在线一区二区 | 亚洲成人精品视频 | 日韩欧美一区二区三区免费观看 | 久久青青 | 国产美女网站视频 | 男女免费视频 | 看亚洲a级一级毛片 | 久国久产久精永久网页 | 午夜精品一区二区三区在线 | 伊人超碰 | 亚洲激情久久 | 一区二区三区精品视频 | 亚洲综合第一页 | 亚洲欧洲精品视频在线观看 | 欧美一级爆毛片 | 欧美精品在线观看 | 日本久久久久 | 国产精品久久777777 | 久久久久久久久99精品 | 亚洲成年人影院 | 日韩福利在线观看 | 久久日韩 | 国产欧美精品一区二区三区四区 | 国产一级一级特黄女人精品毛片 | 欧美夜夜爽| 亚洲精品一二三区 | 播放毛片 | 免费观看一级视频 | 国产一区二区三区高清 | 亚洲精品四区 | 久久精品色欧美aⅴ一区二区 | 午夜视频在线观看网址 | 亚洲三区在线观看 | 波多野结衣电影一区 | 日韩在线观看视频一区二区三区 | 99国产精品 | 蜜桃视频网站在线观看 | 在线中文字幕第一页 | 久久91精品国产91久久跳 | 国产玖玖| 欧美一级小视频 | 亚洲免费网站在线观看 | 国产成人一区二区三区 | 国产精品久久久久久久免费大片 | 欧美极品一区二区 | 久久青| 日韩一区二区三区在线观看 | 亚洲91| 国产午夜精品一区二区三区 | 色久天堂| 91一区二区 | 国产精品69毛片高清亚洲 | 奇米一区二区 | 久久av资源 | 天天操天天干天天爽 | 中文字幕在线观看的电影 | 亚洲精品视频在线 | 国产高清精品一区 | 欧美成人一区二免费视频软件 | 日本免费视频在线观看 | 日韩综合 | 精品一区二区不卡 | 韩日视频在线观看 | 日韩视频二区 | 福利视频网 | 日韩在线观看视频一区二区 | 日韩精品一区二区在线观看 | 欧美激情国产日韩精品一区18 | 天天澡天天狠天天天做 | 91精品国产综合久久久久久丝袜 | 亚洲精选国产 | 91精品国产自产精品男人的天堂 | 亚洲成人免费av | 亚洲夜幕久久日韩精品一区 | 亚洲一区二区三区在线播放 | www国产免费 | 久久久久久国产精品 | 亚洲精品在线免费播放 | 黄色一级大片在线免费看产 | 中文字幕视频三区 | av在线播放网站 | 国产成人在线一区二区 | 日本a视频 | 樱桃小丸子在线观看 | 国产激情免费 | 国产91在线观看 | 欧美亚洲国产一区二区三区 | 欧美性大战久久久久久久蜜臀 | 国产高清在线a视频大全 | 久久久久久久国产精品视频 | 国产一区二区视频免费看 | 国产精品一区一区三区 | 欧美日韩国产一区二区三区 | 日韩一区电影 | 欧美日韩在线观看中文字幕 | 91免费版在线看 | 日韩激情二区 | 国产一区二区三区久久久 | 亚洲美女一区二区三区 | 日本一区二区三区四区 | 婷婷五月在线视频 | 国产在线观看一区 | 草草视频在线播放 | 国产在线观看一区二区 | 国产一区二区精品 | 日本一二三区在线 | 黄色小视频免费观看 | 精品国产乱码久久久久久蜜柚 | 国产精品天天干 | 国产99久久精品一区二区永久免费 | 精品一区二区三区免费毛片爱 | 午夜激情视频在线观看 | 久久国产精品免费一区二区三区 | a级在线免费视频 | 国产精品二区一区二区aⅴ污介绍 | 欧美一级免费看 | 婷婷视频在线 | 精品视频一区二区三区 | 国产精品一区二区三区在线 | 国产在线视频xxx | 精品视频久久 | 人人操日日干 | 欧美激情一区二区 | 综合久久亚洲 | 国产一区二区三区久久久久久 | 国产欧美一区二区三区在线看 | 99视频在线免费观看 | 天天做天天看 | 亚洲精品一区中文字幕乱码 | hd国产人妖ts另类视频 | 午夜日韩| 青草青草久热精品视频在线观看 | 一区二区三区在线免费播放 | 视频一区在线播放 | 91av导航 | 欧美在线小视频 | 亚洲自拍一区在线 | 黄视频入口 | 一区二区av | 亚洲精选一区二区 | 一级视频在线免费观看 | 天天干天天操天天爽 | 亚洲巨乳自拍在线视频 | 麻豆专区一区二区三区四区五区 | 久草热8精品视频在线观看 黄色片网站视频 | 欧美极品一区二区三区 | 麻豆国产露脸在线观看 | 国产三区在线成人av | 伦理自拍 | 精品久久久久久 | 亚洲第一av | 自拍偷拍亚洲欧洲 | 亚洲免费网站在线观看 | 色精品视频 | 久久亚洲一区 | 精品国产一区二区三区性色 | 免费一区二区三区 | 成人在线视频免费观看 | 成人一级视频 | 日韩欧美精品一区 | 成人免费在线播放 | 国产免费一区二区三区 | 欧美日韩三级 | 成人不卡视频 | 亚洲精彩视频在线观看 | 成人免费在线网址 | 亚洲一区二区三区在线免费观看 | 亚洲女人天堂成人av在线 | 国产成人小视频 | 久久久久中文字幕 | 精品久久久久久久久久久 | 日本黄色短片 | 欧美日韩一区二区三区在线观看 | 日日摸日日碰夜夜爽不卡dvd | 欧美国产免费 | 成人在线观 | 999精品视频| 一区二区三区欧美在线 | 伊人免费观看视频 | 午夜免费福利视频 | 毛片网站大全 | 息与子猛烈交尾一区二区 | 国产精品久久久久一区二区三区 | 国产午夜精品一区二区 | 久久在线播放 | jizz18国产| 久久久com| 精品国产成人 | 国产精品一区2区 | 成人亚洲 | 欧美二区三区视频 | 日日干夜夜操 | 中文字字幕在线观看 | 一级做a毛片 | 欧美日韩视频网站 | 国产在线a | 一区二区亚洲 | 不卡成人| 呦一呦二在线精品视频 | 欧美aaaaa| 欧美精品一区二区三区蜜桃视频 | 欧美一级二级视频 | 免费黄色大片 | 国产精品视频一区二区三区不卡 | 69av片| 亚洲啊v在线 | 国产精品国产a级 | 天堂一区二区三区 | 色网在线观看 | 久久久精品国产 | 成人亚洲视频 | 精品无码久久久久久国产 | 久久人操| 亚洲人久久 | 黄色一级免费看 | 99亚洲| 日本精品在线观看 | 久久精品com | 91免费影片 | 一区在线观看 | 色综合久久久久 | 国产免费一区二区三区四区五区 | 天天舔天天干天天操 | 四季久久免费一区二区三区四区 | av女人的天堂| 欧美视频综合 | 成人精品鲁一区一区二区 | 四虎影院免费网址 | av日韩在线看 | 日本久久精品视频 | 激情久久久 | 欧美日韩福利视频 | 五月天婷婷激情视频 | 欧美自拍视频 | 精品日韩中文字幕 | 欧美日韩国产一级片 | 精品免费国产 | 久久久久国产精品一区二区三区 |