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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新

發(fā)布時間:2025/3/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

配置中心是什么

  配置中心,通過key=value的形式存儲環(huán)境變量。配置中心的屬性做了修改,項目中可以通過配置中心的依賴(sdk)立即感知到。需要做的就是如何在屬性發(fā)生變化時,改變帶有@ConfigurationProperties的bean的相關(guān)屬性。

配置中心原理

  在讀配置中心源碼的時候發(fā)現(xiàn),里面維護(hù)了一個Environment,以及ZookeeperPropertySource。當(dāng)配置中心屬性發(fā)生變化的時候,清空ZookeeperPropertySource,并放入最新的屬性值。

  

public class ZookeeperPropertySource extends EnumerablePropertySource<Properties>

  

  ZookeeperPropertySource重寫了equals和hahscode方法,根據(jù)這兩個方法可以判定配置中心是否修改了屬性。

  ?

動態(tài)刷新bean屬性原理

實(shí)現(xiàn)原理圖

  

動態(tài)刷新bean父類

public abstract class BaseConfigCenterBean implements InitializingBean {private static Logger LOGGER = LoggerFactory.getLogger(BaseConfigCenterBean.class);//配置中心是否生效protected boolean cfgCenterEffect = false;public boolean isCfgCenterEffect() {this.checkCfgCenterEffect();return cfgCenterEffect;}private void checkCfgCenterEffect() {boolean tmpCfgCenterEffect = !Objects.isNull(ConfigHelper.getEnvironment());if (tmpCfgCenterEffect) {// NOSONARString value = (String) ConfigHelper.getZookeeperPropertySource().getProperty("cfg.center.effect");if (StringUtils.isBlank(value)) {tmpCfgCenterEffect = false;} else {tmpCfgCenterEffect = Boolean.valueOf(value);}}cfgCenterEffect = tmpCfgCenterEffect;if (cfgCenterEffect) {String prefix = this.getConfigPrefix();cfgCenterEffect = Arrays.stream(ConfigHelper.getZookeeperPropertySource().getPropertyNames()).filter(keyName -> keyName.indexOf(prefix) == 0).count() > 0;if (!cfgCenterEffect) {LOGGER.info(String.format("配置中心沒有發(fā)現(xiàn)模塊=%s, prefix=%s的配置,將使用本地配置...", this.getModuleName(), prefix));}}}/*** 綁定自身目標(biāo)**/protected void doBind() {Class<? extends BaseConfigCenterBean> clazz = this.getClass();if (AopUtils.isCglibProxy(this)) {clazz = (Class<? extends BaseConfigCenterBean>) AopUtils.getTargetClass(this);}BaseConfigCenterBean target = binding(isCfgCenterEffect(), clazz, this.getDefaultResourcePath());this.copyProperties(target);}private void copyProperties(BaseConfigCenterBean target) {ReflectionUtils.doWithFields(this.getClass(), field -> {field.setAccessible(true);field.set(this, field.get(target));}, field -> AnnotatedElementUtils.isAnnotated(field, ConfigField.class));}/*** 綁定其他目標(biāo)** @param clazz 目標(biāo)類**/protected <T> T doBind(Class<T> clazz) {T target = binding(isCfgCenterEffect(), clazz, this.getDefaultResourcePath());if (target instanceof InitializingBean) {try {((InitializingBean) target).afterPropertiesSet();} catch (Exception e) {LOGGER.error(String.format("屬性初始化失敗[afterPropertiesSet], class=%s", ClassUtils.getSimpleName(clazz), e));}}return target;}private <T> T binding(boolean cfgCenterEffect, Class<T> clazz, String defaultResourcePath) {Optional<PropertySource> propertySource = Optional.empty();if (cfgCenterEffect) {propertySource = Optional.ofNullable(ConfigHelper.getZookeeperPropertySource());} else {Optional<ResourcePropertySource> resourcePropertySource = ResourceUtils.getResourcePropertySource(defaultResourcePath);if (resourcePropertySource.isPresent()) {propertySource = Optional.ofNullable(resourcePropertySource.get());}}if (propertySource.isPresent()) {T target;try {target = RelaxedConfigurationBinder.with(clazz).setPropertySources(propertySource.get()).doBind();} catch (GeneralException e) {LOGGER.error(String.format("屬性綁定失敗, class=%s", ClassUtils.getSimpleName(clazz)), e);return null;}return target;}return null;}@Overridepublic void afterPropertiesSet() {Class<?> target = this.getClass();if (AopUtils.isAopProxy(this)) {target = AopUtils.getTargetClass(this);}LOGGER.info(String.format("%s->%s模塊引入配置中心%s...", this.getModuleName(), ClassUtils.getSimpleName(target), (isCfgCenterEffect() ? "生效" : "無效")));}public String getModuleName() {return StringUtils.EMPTY;}@Subscribepublic void listenRefreshEvent(ConfigCenterUtils.ConfigRefreshEvent refreshEvent) {if (!refreshEvent.getModuleName().equals(this.getModuleName())) {this.refreshForEvent();}}//通過事件進(jìn)行刷新public abstract void refreshForEvent();//獲取本地配置默認(rèn)路徑public abstract String getDefaultResourcePath();//獲取配置屬性的公共前綴public abstract String getConfigPrefix(); }

  1、isCfgCenterEffect方法主要判斷項目是否接入了配置中心并且配置中心配有bean中相關(guān)的屬性。

  2、binding方法主要根據(jù)isCfgCenterEffect方法的返回值去加載配置中心的properties還是本地的properties。

  3、getDefaultResourcePath是主要是獲取本地資源的默認(rèn)路徑(在沒有接入配置中心的情況下)。

  4、getConfigPrefix方法返回bean中配置屬性的公共前綴(等同于@ConfigurationProperties中的prefix屬性)。

  5、refreshForEvent方法主要是在某個bean感知到配置中心更新屬性時異步通知其他bean進(jìn)行屬性的更新。

bean屬性綁定工具類

  動態(tài)將propertysource綁定到帶有@ConfigurationProperties注解的bean中。

  參考?org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor

?

public class RelaxedConfigurationBinder<T> {private final PropertiesConfigurationFactory<T> factory;public RelaxedConfigurationBinder(T object) {this(new PropertiesConfigurationFactory<>(object));}public RelaxedConfigurationBinder(Class<?> type) {this(new PropertiesConfigurationFactory<>(type));}public static <T> RelaxedConfigurationBinder<T> with(T object) {return new RelaxedConfigurationBinder<>(object);}public static <T> RelaxedConfigurationBinder<T> with(Class<T> type) {return new RelaxedConfigurationBinder<>(type);}public RelaxedConfigurationBinder(PropertiesConfigurationFactory<T> factory) {this.factory = factory;ConfigurationProperties properties = getMergedAnnotation(factory.getObjectType(), ConfigurationProperties.class);javax.validation.Validator validator = Validation.buildDefaultValidatorFactory().getValidator();factory.setValidator(new SpringValidatorAdapter(validator));factory.setConversionService(new DefaultConversionService());if (!Objects.isNull(properties)) {//NOSONAR factory.setIgnoreNestedProperties(properties.ignoreNestedProperties());factory.setIgnoreInvalidFields(properties.ignoreInvalidFields());factory.setIgnoreUnknownFields(properties.ignoreUnknownFields());factory.setTargetName(properties.prefix());factory.setExceptionIfInvalid(properties.exceptionIfInvalid());}}public RelaxedConfigurationBinder<T> setTargetName(String targetName) {factory.setTargetName(targetName);return this;}public RelaxedConfigurationBinder<T> setPropertySources(PropertySource<?>... propertySources) {MutablePropertySources sources = new MutablePropertySources();for (PropertySource<?> propertySource : propertySources) {sources.addLast(propertySource);}factory.setPropertySources(sources);return this;}public RelaxedConfigurationBinder<T> setPropertySources(Environment environment) {factory.setPropertySources(((ConfigurableEnvironment) environment).getPropertySources());return this;}public RelaxedConfigurationBinder<T> setPropertySources(PropertySources propertySources) {factory.setPropertySources(propertySources);return this;}public RelaxedConfigurationBinder<T> setConversionService(ConversionService conversionService) {factory.setConversionService(conversionService);return this;}public RelaxedConfigurationBinder<T> setValidator(Validator validator) {factory.setValidator(validator);return this;}public RelaxedConfigurationBinder<T> setResolvePlaceholders(boolean resolvePlaceholders) {factory.setResolvePlaceholders(resolvePlaceholders);return this;}public T doBind() throws GeneralException {try {return factory.getObject();} catch (Exception ex) {throw new GeneralException("配置綁定失敗!", ex);}} }

配置中心工具類

public class ConfigCenterUtils {private static Logger LOGGER = LoggerFactory.getLogger(ConfigCenterUtils.class);private static AsyncEventBus eventBus = new AsyncEventBus(Executors.newFixedThreadPool(8));//NOSONARprivate static Properties cfgProperties;private static Environment environment;static {cfgProperties = new Properties();cfgProperties.putAll(ConfigHelper.getZookeeperPropertySource().getProperties());}public static void setEnvironment(Environment environment) {ConfigCenterUtils.environment = environment;}public static String getValue(String name) {try {return PropertiesUtil.getValue(name);} catch (Exception e) {LOGGER.info("配置中心無效, property name=" + name, e);}if (Objects.isNull(environment)) {LOGGER.info("environment無效,property name=" + name);return StringUtils.EMPTY;}if (!environment.containsProperty(name)) {LOGGER.info("environment無配置 property name=" + name);return StringUtils.EMPTY;}return environment.getProperty(name);}public synchronized static boolean propertySourceShouldRefresh(String moduleName, ZookeeperPropertySource newPropertySource) {if (!cfgProperties.equals(newPropertySource.getProperties())) {cfgProperties.clear();cfgProperties.putAll(newPropertySource.getProperties());eventBus.post(new ConfigRefreshEvent(moduleName));return true;}return false;}public static <T> T createToRefreshPropertiesBean(Class<T> clazz) {Enhancer enhancer = new Enhancer();// 設(shè)置代理對象父類 enhancer.setSuperclass(clazz);// 標(biāo)識Spring-generated proxiesenhancer.setInterfaces(new Class[]{SpringProxy.class});// 設(shè)置增強(qiáng)enhancer.setCallback((MethodInterceptor) (target, method, args, methodProxy) -> {ToRefresh toRefresh = AnnotationUtils.findAnnotation(method, ToRefresh.class);if (Objects.isNull(toRefresh) || StringUtils.isBlank(toRefresh.method())) {return methodProxy.invokeSuper(target, args);}Method refreshMethod = ReflectionUtils.findMethod(target.getClass(), toRefresh.method());if (Objects.isNull(refreshMethod)) {return methodProxy.invokeSuper(target, args);}refreshMethod = BridgeMethodResolver.findBridgedMethod(refreshMethod);refreshMethod.setAccessible(true);refreshMethod.invoke(target, null);return methodProxy.invokeSuper(target, args);});T target = (T) enhancer.create();// 創(chuàng)建代理對象 MethodIntrospector.selectMethods(clazz, (ReflectionUtils.MethodFilter) method -> AnnotatedElementUtils.isAnnotated(method, ToInitial.class)).stream().findFirst().ifPresent(method -> {method.setAccessible(true);try {method.invoke(target, null);} catch (Exception e) {LOGGER.error(String.format("初始化異常,class=%s ...", ClassUtils.getSimpleName(clazz)), e);}});return target;}public static void registerListener(BaseConfigCenterBean refreshableBean) {eventBus.register(refreshableBean);}public static class ConfigRefreshEvent {private String moduleName;public ConfigRefreshEvent(String moduleName) {this.moduleName = moduleName;}public String getModuleName() {return moduleName;}public void setModuleName(String moduleName) {this.moduleName = moduleName;}} }

  這個工具主要作用:

  1、判斷配置中心的屬性是否發(fā)生了變化

  2、為BaseConfigCenterBean子類創(chuàng)建代理類,使屬性在getter方法時檢測屬性是否應(yīng)該刷新。

  3、提供將BaseConfigCenterBean類型的對象的注冊為guava eventbus的監(jiān)聽對象,使之具有根據(jù)刷新事件自動刷新自身屬性。

bean后置處理器

public class ConfigCenterBeanPostProcessor implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (AnnotatedElementUtils.isAnnotated(bean.getClass(), ConfigCenterBean.class)) {BaseConfigCenterBean refreshableBean = (BaseConfigCenterBean) ConfigCenterUtils.createToRefreshPropertiesBean(bean.getClass());ConfigCenterUtils.registerListener(refreshableBean);return refreshableBean;}return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {return bean;} }

  該后置處理器的作用是對所有BaseConfigCenterBean類型的bean進(jìn)行處理,生成代理bean,并注冊為guava eventbus相應(yīng)的listener。

pojo屬性綁定配置中心優(yōu)雅方案1

@ConfigCenterBean @ConfigurationProperties(prefix = "wx.temporary.qrcode") @Component public class QrcodeConstants extends BaseConfigCenterBean {private static Logger LOGGER = LoggerFactory.getLogger(QrcodeConstants.class);//渠道@ConfigField //標(biāo)識該屬性來自配置中心private List<Scene> channels;//業(yè)務(wù) @ConfigFieldprivate List<Scene> bizs;//業(yè)務(wù)和渠道映射關(guān)系 @ConfigFieldprivate Map<String, String> biz2Channel;private Map<String, Scene> channelMap;private Map<String, Scene> bizMap;public List<Scene> getChannels() {return channels;}public void setChannels(List<Scene> channels) {this.channels = channels;}public List<Scene> getBizs() {return bizs;}public void setBizs(List<Scene> bizs) {this.bizs = bizs;}@ToRefresh(method = "toRefresh")public Map<String, Scene> getChannelMap() {return channelMap;}@ToRefresh(method = "toRefresh")public Map<String, Scene> getBizMap() {return bizMap;}@ToRefresh(method = "toRefresh")public Map<String, String> getBiz2Channel() {return biz2Channel;}public void setBiz2Channel(Map<String, String> biz2Channel) {this.biz2Channel = biz2Channel;}@ToInitialprivate void refreshQrcodeProperties() {try {super.doBind();//屬性處理if (CollectionUtils.isEmpty(channels)) {this.channelMap = Maps.newHashMap();} else {this.channelMap = channels.stream().collect(Collectors.toMap(channel -> channel.getType(), Function.identity()));}if (CollectionUtils.isEmpty(bizs)) {this.bizMap = Maps.newHashMap();} else {this.bizMap = bizs.stream().collect(Collectors.toMap(biz -> biz.getType(), Function.identity()));}LOGGER.info(String.format("%s 刷新成功..., 當(dāng)前配置=%s...", this.getModuleName(), this));} catch (Exception e) {LOGGER.error("QrcodeConstants 對象屬性綁定失敗...", e);}}private void toRefresh() {try {if (isCfgCenterEffect()) {ZookeeperPropertySource propertySource = ConfigHelper.getZookeeperPropertySource();if (ConfigCenterUtils.propertySourceShouldRefresh(this.getModuleName(), propertySource)) {this.refreshQrcodeProperties();}}} catch (Exception e) {LOGGER.error("QrcodeConstants 對象屬性刷新失敗", e);}}//刷新事件調(diào)用 @Overridepublic void refreshForEvent() {this.refreshQrcodeProperties();}//本地資源文件 @Overridepublic String getDefaultResourcePath() {return "config/qrcode.properties";}//屬性配置 公共前綴(和@ConfigurationProperties prefix 屬性一致) @Overridepublic String getConfigPrefix() {return "wx.temporary.qrcode";}//模塊名稱 @Overridepublic String getModuleName() {return "微信臨時二維碼配置";}@Overridepublic String toString() {return ReflectionToStringBuilder.toString(this, ToStringStyle.JSON_STYLE, false, false, QrcodeConstants.class);}public static class Scene {private String type;private String desc;public String getType() {return type;}public void setType(String type) {this.type = type;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}@Overridepublic String toString() {return ReflectionToStringBuilder.toString(this, ToStringStyle.JSON_STYLE, false, false, Scene.class);}} }

pojo屬性綁定配置中心優(yōu)雅方案2

@ConfigCenterBean @Component public class QrcodeConstants extends BaseConfigCenterBean {private static Logger LOGGER = LoggerFactory.getLogger(QrcodeConstants.class);//業(yè)務(wù)和渠道映射關(guān)系private Map<String, String> biz2Channel;//渠道private Map<String, Scene> channelMap;//業(yè)務(wù)private Map<String, Scene> bizMap;private QrcodeProperties qrcodeProperties;@ToRefresh(method = "toRefresh")public Map<String, Scene> getChannelMap() {return channelMap;}@ToRefresh(method = "toRefresh")public Map<String, Scene> getBizMap() {return bizMap;}@ToRefresh(method = "toRefresh")public Map<String, String> getBiz2Channel() {return biz2Channel;}public void setBiz2Channel(Map<String, String> biz2Channel) {this.biz2Channel = biz2Channel;}public QrcodeProperties getRawQrcodeProperties() {return qrcodeProperties;}@ToInitialprivate void refreshQrcodeProperties() {try {QrcodeProperties qrcodeProperties = super.doBind(QrcodeProperties.class);if (Objects.isNull(qrcodeProperties)) {LOGGER.error(String.format("沒有加載到%s配置,請檢查配置...", this.getModuleName()));return;}this.qrcodeProperties = qrcodeProperties;//屬性處理if (CollectionUtils.isEmpty(qrcodeProperties.channels)) {this.channelMap = Maps.newHashMap();} else {this.channelMap = qrcodeProperties.channels.stream().collect(Collectors.toMap(channel -> channel.getType(), Function.identity()));}if (CollectionUtils.isEmpty(qrcodeProperties.bizs)) {this.bizMap = Maps.newHashMap();} else {this.bizMap = qrcodeProperties.bizs.stream().collect(Collectors.toMap(biz -> biz.getType(), Function.identity()));}if (CollectionUtils.isEmpty(qrcodeProperties.getBiz2Channel())) {this.biz2Channel = Maps.newHashMap();} else {this.biz2Channel = qrcodeProperties.getBiz2Channel();}LOGGER.info(String.format("%s 刷新成功..., 當(dāng)前配置=%s...", this.getModuleName(), this));} catch (Exception e) {LOGGER.error("QrcodeConstants 對象屬性綁定失敗...", e);}}private void toRefresh() {try {if (isCfgCenterEffect()) {ZookeeperPropertySource propertySource = ConfigHelper.getZookeeperPropertySource();if (ConfigCenterUtils.propertySourceShouldRefresh(this.getModuleName(), propertySource)) {this.refreshQrcodeProperties();}}} catch (Exception e) {LOGGER.error("QrcodeConstants 對象屬性刷新失敗", e);}}@Overridepublic void refreshForEvent() {this.refreshQrcodeProperties();}@Overridepublic String getDefaultResourcePath() {return "config/qrcode.properties";}@Overridepublic String getConfigPrefix() {return "wx.temporary.qrcode";}@Overridepublic String getModuleName() {return "微信臨時二維碼配置";}@Overridepublic String toString() {return new ToStringBuilder(this).append("biz2Channel", biz2Channel).append("channelMap", channelMap).append("bizMap", bizMap).toString();}@ConfigurationProperties(prefix = "wx.temporary.qrcode")public static class QrcodeProperties {//渠道private List<Scene> channels;//業(yè)務(wù)private List<Scene> bizs;//業(yè)務(wù)和渠道映射關(guān)系private Map<String, String> biz2Channel;public List<Scene> getChannels() {return channels;}public void setChannels(List<Scene> channels) {this.channels = channels;}public List<Scene> getBizs() {return bizs;}public void setBizs(List<Scene> bizs) {this.bizs = bizs;}public Map<String, String> getBiz2Channel() {return biz2Channel;}public void setBiz2Channel(Map<String, String> biz2Channel) {this.biz2Channel = biz2Channel;}}public static class Scene {private String type;private String desc;public String getType() {return type;}public void setType(String type) {this.type = type;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}@Overridepublic String toString() {return ReflectionToStringBuilder.toString(this, ToStringStyle.JSON_STYLE, false, false, Scene.class);}} }

  方案1和方案2略有不同,針對一些屬性,我們需要做一些邏輯處理。方案1中將源屬性和邏輯之后的屬性都放在了同一類中,方案二則是將源屬性單獨(dú)放到一個靜態(tài)類中,最終處理過后的屬性放在了目標(biāo)類中。另外二者的doBind方法也是有區(qū)別的,仔細(xì)看一下BaseConfigCenterBean這個類就可以了。

?

? ? ?就先分享這么多了,更多分享請關(guān)注我們的技術(shù)公眾吧!!!

  參考文章:算法和技術(shù)SHARING

轉(zhuǎn)載于:https://www.cnblogs.com/hujunzheng/p/9697282.html

總結(jié)

以上是生活随笔為你收集整理的依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

天堂资源在线观看视频 | 国产日韩精品一区二区三区在线 | 欧美成人在线网站 | www国产亚洲精品久久麻豆 | 伊人日日干 | 亚洲激情 | 亚洲精品视频在线免费播放 | 999久久久| www.福利| 日韩激情网 | 精品一区电影 | 久久亚洲影院 | 国产精品一区久久久久 | 久久午夜剧场 | 免费观看版 | 国产精品影音先锋 | 激情深爱.com| 很黄很色很污的网站 | 91麻豆产精品久久久久久 | 中文字幕成人一区 | 国产精品成人一区二区 | av在线免费网 | 超级碰碰碰碰 | 亚洲国产精品成人女人久久 | 麻豆影视网站 | 98精品国产自产在线观看 | 9797在线看片亚洲精品 | 欧美日韩亚洲在线观看 | 波多野结衣视频一区二区三区 | 97电影院网 | 国内外成人在线视频 | 国产精品嫩草影院123 | 男女拍拍免费视频 | 国产精品一区二区三区在线免费观看 | 免费一级片在线观看 | 久久久久黄色 | 中文字幕乱码电影 | 视频99爱 | 91麻豆精品国产午夜天堂 | 国产精品尤物 | 成人网看片 | 国产精品美女www爽爽爽视频 | 91成人在线免费观看 | 欧美国产日韩中文 | av在线电影免费观看 | 国产综合视频在线观看 | 久久99国产精品免费 | 日韩欧美国产精品 | 久久国产手机看片 | 九九99| 日本久久成人中文字幕电影 | 五月婷婷丁香六月 | 少妇bbw揉bbb欧美 | 久久久久久久久艹 | 婷婷国产精品 | 久久国产剧场电影 | 主播av在线 | 亚洲综合在线一区二区三区 | 久久99精品国产一区二区三区 | 色资源网在线观看 | 欧美日韩在线视频免费 | 久久国产a | 99国产免费网址 | 精品国产一区二区三区免费 | 伊人天天操 | 中文字幕在线观看三区 | 美女视频黄在线 | 人人玩人人添人人 | av亚洲产国偷v产偷v自拍小说 | 亚洲片在线观看 | 九九在线播放 | 在线观看视频一区二区三区 | 国产99久久久国产精品免费二区 | 久久视讯| 伊人久久一区 | 国产专区在线看 | 久久成人午夜 | 西西444www大胆无视频 | 欧美性大战 | 日韩精品不卡在线 | av色网站| 色老板在线视频 | 国产免码va在线观看免费 | 久久精品久久精品久久精品 | 丁香六月在线观看 | 天天干夜夜想 | 中文字幕丝袜美腿 | 久久久久久久久久久影视 | 久久久久久久久久久黄色 | av资源中文字幕 | 久久久久草 | 久久久久国| 久久精品久久精品久久 | 国产精品亚洲视频 | 亚洲五月综合 | 91在线产啪 | 国产精品中文字幕在线播放 | 成人免费在线观看av | 欧美一级专区免费大片 | 久久五月网 | 免费a现在观看 | 日韩手机在线观看 | 中文字幕在线观看完整版 | 91在线视频免费 | 成人动漫一区二区 | 国产午夜精品在线 | 在线观看日韩精品 | a午夜电影| 美女视频久久黄 | 久久亚洲福利 | 91成人精品国产刺激国语对白 | 99久高清在线观看视频99精品热在线观看视频 | 国产一级二级视频 | 欧美久久影院 | 一区二区三区高清在线观看 | 欧美一级视频在线观看 | 日韩成人高清在线 | 三级黄色大片在线观看 | 欧美日韩不卡一区二区 | 亚洲综合视频网 | 中文字幕在线中文 | 四虎国产精品免费观看视频优播 | 亚洲三级在线免费观看 | 美女免费网视频 | 探花视频在线观看+在线播放 | 久久99精品国产麻豆宅宅 | 色国产精品一区在线观看 | 国产a级精品| 69xxxx欧美 | 黄色精品久久久 | 国内精品久久久 | 91热精品| 在线观看一二三区 | 在线播放精品一区二区三区 | a视频在线播放 | 欧美精品在线免费 | 黄色在线网站噜噜噜 | 日本中文字幕久久 | 国产在线a视频 | 亚洲精品久久久蜜臀下载官网 | 国产美女在线免费观看 | 热re99久久精品国产66热 | 日韩精品综合在线 | 久久国内视频 | 六月丁香婷婷久久 | 国产午夜视频在线观看 | 在线观看视频97 | 在线 国产 日韩 | 91av资源在线 | 天堂av在线网址 | 成年人毛片在线观看 | 又黄又爽的视频在线观看网站 | 久久综合五月 | 成人动漫一区二区三区 | 日本三级香港三级人妇99 | 国产一区国产精品 | 久草精品在线观看 | 99久久婷婷| 99在线免费观看 | 三日本三级少妇三级99 | 亚洲一区二区精品视频 | 丁香视频五月 | 九九在线高清精品视频 | 最近日韩免费视频 | 又黄又爽又湿又无遮挡的在线视频 | 99在线视频播放 | 午夜精品久久久久久久久久久 | 黄色精品久久久 | 色播五月激情综合网 | 干 操 插 | 久草在| 日韩在线观看a | 色亚洲激情 | 欧美日韩一区二区三区视频 | 91久久久国产精品 | 成人va视频| 欧美另类色图 | 人人爽人人 | 午夜10000| 日本在线观看一区 | 日韩欧美一区二区三区免费观看 | 91在线国产观看 | 不卡中文字幕在线 | 亚洲日本中文字幕在线观看 | 高清国产在线一区 | 免费观看成人网 | 日本在线精品视频 | 久久精彩视频 | 91亚洲网 | 欧美午夜一区二区福利视频 | 中文网丁香综合网 | 欧美日韩免费视频 | 91精品少妇偷拍99 | 中文字幕在线观看一区二区三区 | 97人人模人人爽人人喊网 | 国产精品 中文字幕 亚洲 欧美 | a国产精品| 欧美日韩在线视频一区二区 | 国产在线不卡 | 精品国产欧美一区二区 | 精品久久久久久久久久久久 | 99久久99久久精品国产片 | 国产亚洲人 | 国产亚洲免费观看 | 日韩大片在线免费观看 | 欧美精品一区在线发布 | 天天射天 | 美女一区网站 | 久99久在线| 91看片成人 | 91一区在线观看 | 成人手机在线视频 | 人人干干人人 | 日韩av午夜在线观看 | 美女福利视频一区二区 | 一区二区三区四区五区在线 | 国产色区| 久草免费在线视频观看 | 九九热在线精品视频 | 在线亚洲观看 | 欧美精品xx | 黄色亚洲大片免费在线观看 | 成人久久亚洲 | 日韩国产欧美在线播放 | 九九精品久久 | 欧美久久久一区二区三区 | 国产99精品 | 久久天堂精品视频 | 在线观看精品黄av片免费 | 婷婷色网视频在线播放 | 青青视频一区 | www.夜夜操.com | 国产精品伦一区二区三区视频 | 婷婷亚洲激情 | 亚洲专区在线视频 | 操老逼免费视频 | 久久久久久久久免费 | 天天操 夜夜操 | 亚洲经典视频 | 久久激情综合网 | 国内视频| 成人一区二区三区在线 | www.久久婷婷 | 成人国产精品久久久久久亚洲 | 黄色在线观看网站 | 久久久久久国产精品久久 | 中中文字幕av在线 | 久久手机精品视频 | 91成人短视频在线观看 | 国产黄色片免费观看 | 99久久综合国产精品二区 | 久久精品亚洲 | 97视频网址| 久久精品电影网 | 国产特黄色片 | 欧美成a人片在线观看久 | 婷婷亚洲五月色综合 | 国产亚洲综合精品 | 粉嫩aⅴ一区二区三区 | 久草精品在线观看 | 免费日韩 精品中文字幕视频在线 | 日夜夜精品视频 | 狠狠久久综合 | 91在线文字幕 | 五月婷婷综合激情网 | 开心色停停 | 91欧美精品 | 国产成人精品综合久久久 | 999久久国精品免费观看网站 | 91网址在线 | 亚洲一区尤物 | 欧美成人理伦片 | 午夜精品婷婷 | 国产精品午夜在线观看 | 色在线亚洲| 亚洲最新视频在线 | 国产成人一区二区啪在线观看 | 国产99久久九九精品免费 | 日韩一区视频在线 | 在线日韩精品视频 | 国产尤物在线视频 | 在线免费观看视频一区二区三区 | 久久久国产精品人人片99精片欧美一 | 天堂在线成人 | 亚洲国产一区在线观看 | 97人人模人人爽人人喊网 | 一区二区三区在线免费 | 国产精选在线观看 | 一区二区三区免费在线观看 | 国产精品黄 | 国产视频一区在线 | av黄色国产| av亚洲产国偷v产偷v自拍小说 | 在线色视频小说 | 精品久久久久久国产偷窥 | 欧美日韩不卡在线视频 | 久久天堂网站 | 国产免费黄色 | 国产无套精品久久久久久 | 91精品久久久久久粉嫩 | 亚洲成熟女人毛片在线 | 91欧美日韩国产 | 91麻豆精品国产91久久久久 | 月下香电影 | 亚洲高清免费在线 | 福利视频午夜 | 国产一线二线三线在线观看 | 国产午夜在线观看视频 | 色99视频 | 69国产盗摄一区二区三区五区 | www.色com | 特级黄色一级 | 欧美日韩高清一区二区三区 | 涩涩网站免费 | 亚洲成av片人久久久 | 日韩精品极品视频 | a级成人毛片 | 99精品乱码国产在线观看 | 精品久久久久久亚洲 | 国产黄| 日本精品在线视频 | 欧美va天堂在线电影 | 欧美性色网站 | 黄色成年| 日韩毛片在线播放 | 91在线看视频免费 | 国产免费av一区二区三区 | 亚洲国产中文字幕在线 | 国产美女精品人人做人人爽 | 国产成人av一区二区三区在线观看 | 国产v在线| 亚洲成人资源网 | 成人在线免费观看视视频 | 日韩一区二区三区免费视频 | 国产视频精品在线 | 精品999国产 | 日韩三级.com | 人人爽人人做 | 91av中文字幕 | 亚洲精品美女 | 香蕉视频在线观看免费 | 亚色视频在线观看 | 在线成人性视频 | 国产无遮挡猛进猛出免费软件 | 国产香蕉视频在线观看 | 免费成人在线观看视频 | www.久草视频 | 欧美少妇的秘密 | 亚洲黄网站 | 国产日韩欧美在线影视 | 中文字幕一二三区 | free,性欧美 九九交易行官网 | 在线国产能看的 | 激情久久久久 | 国产精品视频不卡 | 久久久99国产精品免费 | 国产精品wwwwww | 久久综合精品一区 | 国产精品麻豆免费版 | 国内久久视频 | 久久久久久久久毛片 | 国产麻豆精品一区 | 色婷婷av一区二 | 成人国产精品入口 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 亚洲va欧美va| av电影一区 | 人人干人人爽 | 日韩在线观看电影 | 亚洲a成人v| 亚洲经典视频在线观看 | 国产午夜视频在线观看 | 日韩久久午夜一级啪啪 | 日日天天av | 97超碰在线久草超碰在线观看 | 伊人色综合久久天天网 | 精品一区二区日韩 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 中文字幕专区高清在线观看 | av免费看看| 成人在线免费视频 | 欧美日韩在线免费观看 | 久久专区 | 婷婷综合五月 | 激情五月开心 | 91在线视频网址 | 麻豆国产精品va在线观看不卡 | 欧美日韩高清在线观看 | 亚洲精品视频在线观看免费视频 | 97精品国产一二三产区 | bayu135国产精品视频 | 国产三级精品在线 | 成人精品一区二区三区电影免费 | 干干日日 | 二区三区精品 | 亚洲成人免费 | 亚洲国产电影在线观看 | 国内精品久久久久久久影视简单 | 国产成人一区二 | 草久在线播放 | 欧美日韩国产在线观看 | 久产久精国产品 | 国产一线二线三线在线观看 | 国产老妇av| 69国产精品成人在线播放 | 麻豆成人精品 | 国产丝袜一区二区三区 | 精品在线视频观看 | 91在线一区二区 | 婷婷5月色 | 婷婷色视频| 色中文字幕在线观看 | 在线观看视频黄 | 超碰成人网 | 欧美日韩国产在线一区 | 天天干天天在线 | 91av超碰| 成人a在线| 69av久久| 久久看片 | 中文字幕在线观看视频网站 | 日韩精品字幕 | 久久与婷婷 | 五月天中文字幕 | 九九视频免费在线观看 | 中文字幕免费久久 | 国产视频在线观看一区 | 九九热视频在线播放 | 国产日韩欧美在线看 | 一区二区三区免费 | 亚洲经典在线 | 国产伦精品一区二区三区无广告 | 在线观看亚洲精品 | 日韩性久久 | 国产男女无遮挡猛进猛出在线观看 | 日b视频国产 | 91色偷偷 | 免费在线观看中文字幕 | 瑞典xxxx性hd极品 | 在线直播av | 国产成人久久久久 | 国产成人精品一区二区三区福利 | 91在线蜜桃臀 | 国产精品久久久久婷婷二区次 | 中文字幕视频免费观看 | a在线观看视频 | 国产中文字幕一区 | 在线观看免费成人av | av片一区二区 | 亚洲在线视频观看 | 亚洲天天干 | 亚洲a免费 | 欧美aaa一级 | 国产男女免费完整视频 | av福利免费 | 久久www免费视频 | 色吊丝在线永久观看最新版本 | 国产精品福利小视频 | 国产精品 国产精品 | 亚洲精品国偷拍自产在线观看 | 久草视频观看 | 欧美最猛性xxxxx亚洲精品 | www.亚洲视频| 久久福利国产 | 亚洲精品高清在线观看 | 欧美热久久| 婷婷丁香色综合狠狠色 | 中文字幕亚洲精品日韩 | 亚洲激情一区二区三区 | 国产视频精选 | 五月婷婷六月丁香 | 人人射人人射 | 四虎影视成人永久免费观看视频 | 欧美一级电影片 | 在线观看v片 | 久久天天综合网 | 日韩精品免费在线观看视频 | 亚洲精品视频在线 | 亚洲精品乱码久久久一二三 | 国产精品观看视频 | 麻豆视频免费播放 | 91观看视频 | 天天综合色天天综合 | 黄色网在线播放 | 亚洲高清av| 99精品国产一区二区三区麻豆 | 午夜黄色| 久久免费的精品国产v∧ | 国产成人免费观看 | 免费亚洲视频在线观看 | 一区二区三区手机在线观看 | 久久精品资源 | 久久99久久99精品免观看软件 | 久久久久久久久久久久亚洲 | 中文一区在线观看 | 日韩精品中文字幕在线播放 | 亚洲国产精品激情在线观看 | 91x色 | 国产亚洲视频在线免费观看 | 久久久久久视频 | 精品国产91亚洲一区二区三区www | 超碰在线最新地址 | 亚洲国产wwwccc36天堂 | 久久久视屏 | 午夜久久电影网 | 国产精品毛片一区视频播不卡 | 久久久久影视 | 欧美一进一出抽搐大尺度视频 | 在线观看韩日电影免费 | av看片网址 | 免费成人在线电影 | 国产精品福利小视频 | 亚洲国产三级在线观看 | 日本视频精品 | 91最新地址永久入口 | 国产成人综合在线观看 | 国内精品久久久精品电影院 | 99在线热播精品免费99热 | 亚洲精品高清视频在线观看 | 成人av高清在线 | 久久99热久久99精品 | 91麻豆精品国产91久久久久 | 中文字幕一区二区三区在线播放 | 国产一级黄色电影 | 色网站国产精品 | 日本特黄一级 | 三级视频国产 | 91大神dom调教在线观看 | 网站你懂的| 久久精品99 | 日韩免费网站 | 在线婷婷 | 欧美视频99 | 91传媒免费在线观看 | 久99热| 国产一区二区在线免费 | 国产在线国偷精品产拍 | 国产在线a不卡 | 欧美一级淫片videoshd | 国产原创在线视频 | 91视频专区| 国产精品黄色 | 免费韩国av| 粉嫩一二三区 | 中文字幕第 | 亚洲黄色高清 | 亚洲一本视频 | 香蕉视频啪啪 | 国产精品久久久久久久久久妇女 | 国产黄a三级 | 97超碰国产精品 | 婷婷在线视频 | 欧美做受高潮1 | 国产这里只有精品 | 国产亚洲日 | 成人免费看视频 | 久久精品国产亚洲a | 久精品视频在线观看 | 97在线观看免费观看 | 操操操日日日干干干 | 免费看片网址 | 最新国产在线 | 99热在线国产 | 国产黄大片 | 成在线播放 | 最新国产精品亚洲 | 日日夜夜亚洲 | 韩日三级在线 | 亚洲区另类春色综合小说校园片 | 人人搞人人爽 | 狂野欧美激情性xxxx | 亚洲欧美日韩国产一区二区 | 夜夜爽88888免费视频4848 | 四虎影视成人精品 | 激情久久小说 | 91久久久久久久 | 欧美激情视频一区 | 亚洲精品国产自产拍在线观看 | 一区二区三区中文字幕在线观看 | 九色最新网址 | 在线视频日韩 | 91高清不卡 | 在线观看色网站 | 99 精品 在线 | 欧美伦理一区二区三区 | 国产成人一区二区三区影院在线 | 三级av中文字幕 | 日韩精品第一区 | av电影免费在线播放 | 成人小视频在线观看免费 | 久久精品久久综合 | 中文字幕日韩精品有码视频 | 男女激情免费网站 | 亚洲第一伊人 | 天天射综合网视频 | 91日韩在线专区 | www.成人精品 | 8090yy亚洲精品久久 | 2022久久国产露脸精品国产 | 五月天中文字幕mv在线 | 久久 一区 | 91人人视频在线观看 | 在线免费观看视频一区 | www国产亚洲精品久久网站 | 精品美女久久久久 | 精品视频99 | 国产成人亚洲在线电影 | 亚洲日日夜夜 | 国产在线视频导航 | 免费av网站在线看 | 99在线热播精品免费99热 | 国产视频一区二区三区在线 | 九九视频在线观看视频6 | 日韩精品中文字幕在线观看 | 国产精品毛片久久久久久久久久99999999 | 久久人操 | 成片视频在线观看 | 国内精品在线看 | 91在线影视 | 中文字幕乱码日本亚洲一区二区 | 日韩精品中文字幕在线观看 | 一级全黄毛片 | 日本 在线 视频 中文 有码 | 国内精品美女在线观看 | 久久夜靖品 | 91在线视频免费观看 | www视频免费在线观看 | 99九九99九九九视频精品 | 天天操天天色综合 | 欧美黑人猛交 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 成人97视频一区二区 | 中文字幕亚洲综合久久五月天色无吗'' | 人人爱爱 | 综合激情伊人 | 一区三区在线欧 | 亚洲黄污| 激情在线五月天 | 香蕉视频网址 | 96av视频| 九九日韩 | 国产视频在线一区二区 | 91porny九色在线播放 | 日日夜夜精品网站 | 欧美激情操 | 日日夜夜精品免费视频 | 日韩大陆欧美高清视频区 | 在线看的av网站 | 国产伦精品一区二区三区… | 亚洲精品国产品国语在线 | 欧美性精品 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 国产白浆视频 | 国产网站在线免费观看 | 日本在线观看一区二区三区 | 激情久久久久久久久久久久久久久久 | 91在线视频观看免费 | 激情网五月天 | 久草免费在线观看 | 永久免费视频国产 | 免费国产在线精品 | 蜜桃视频在线观看一区 | 涩涩网站在线观看 | 国产精品久久久久久久久久不蜜月 | 久久色在线播放 | 九九热只有这里有精品 | 日韩在线观看视频在线 | 三级在线国产 | 久久视讯 | 99在线免费视频 | 久久久激情网 | 日韩一区正在播放 | 99在线精品视频观看 | 欧美三级在线播放 | 99在线观看视频网站 | 国内外成人在线视频 | 精品国产人成亚洲区 | 天天操天天色天天射 | 黄色三级网站在线观看 | 色久综合 | 欧美日韩午夜在线 | 欧美精品一级视频 | 91九色网站| 亚洲一区二区精品3399 | 91亚洲成人 | 亚洲成人高清在线 | 正在播放国产精品 | 99免费在线视频观看 | 免费色网站| 国产精品一区二区三区观看 | 亚洲精品五月 | 成人毛片在线视频 | 成 人 黄 色 视频 免费观看 | 久久久久久麻豆 | 特级毛片在线免费观看 | 日本三级国产 | av免费观看高清 | 天天曰天天爽 | 欧美在线视频一区二区三区 | 五月婷婷综合在线观看 | 天天爱天天操天天射 | 精品免费视频 | 丝袜美腿在线视频 | 久久 地址 | 一区二区三区在线播放 | 久草在线资源网 | 天天草夜夜 | 999热视频 | 婷婷狠狠操 | 又色又爽又黄高潮的免费视频 | 黄色成人91| 国产精品久久久久久久久久久久午夜片 | 中文字幕在线一二 | 国产成人福利片 | 911久久香蕉国产线看观看 | 亚洲国产福利视频 | av网址最新 | 欧美激情综合色综合啪啪五月 | 午夜久久久精品 | 国产精品18久久久久久久久久久久 | 天天综合色天天综合 | 又污又黄网站 | 国产精品21区 | 91激情视频在线 | www.五月天 | 精品自拍sae8—视频 | 欧美日韩一区二区视频在线观看 | 亚洲一区二区三区毛片 | 91网免费看| 国产黄色理论片 | 一区二区 不卡 | 久久久精品高清 | 亚洲欧洲成人精品av97 | 麻豆综合网 | 国产免费亚洲 | 天天综合网天天综合色 | 99热在线看 | 玖玖玖国产精品 | 欧美动漫一区二区三区 | 国产日韩在线播放 | 九色porny真实丨国产18 | 一 级 黄 色 片免费看的 | 九九热久久免费视频 | 西西444www大胆高清视频 | 国产一区二区综合 | 色婷婷电影网 | 精品欧美一区二区精品久久 | 国产精品免费av | 人人澡人人模 | 91av视频免费观看 | 国产精品视频免费在线观看 | 亚洲精品国产精品国自产在线 | 国产精品久久久久久一二三四五 | 日本69hd| 天无日天天操天天干 | 99激情网| 中文字幕一区在线观看视频 | 日韩视频中文字幕在线观看 | 午夜av影院 | 狠狠操电影网 | 日韩r级电影在线观看 | 国产一区在线免费观看视频 | 免费视频黄 | 在线你懂| 成人av片免费看 | 91尤物国产尤物福利在线播放 | 色网免费观看 | 国产成人免费av电影 | 五月婷婷六月丁香在线观看 | 国产成人免费精品 | 91亚洲精品久久久蜜桃网站 | 婷婷四房综合激情五月 | 黄色在线成人 | 久久久久激情 | 在线国产能看的 | 国产成人精品一区二区在线 | 黄色精品免费 | 国产精品99久久久精品 | 日日婷婷夜日日天干 | 日日日视频 | 人人爽人人爽人人 | 奇米网网址 | 97色国产| 午夜久久福利 | 深爱综合网 | 中国一级片免费看 | 超碰人人在线观看 | 久久久国产在线视频 | 天天射天天做 | 国产网站av | 国产特级毛片aaaaaa高清 | 波多野结衣日韩 | 国产精品门事件 | 久久伦理影院 | 亚洲精品在线电影 | 狠狠躁日日躁狂躁夜夜躁av | 黄色电影小说 | 婷婷综合av| 国产精品视频全国免费观看 | av在线h | 亚洲精品美女久久 | 婷婷丁香七月 | 日韩夜夜爽 | 五月天亚洲综合小说网 | 国产黄色美女 | 亚洲黄色小说网 | 久草在线免费电影 | 在线观看 亚洲 | 成人中文字幕av | 国产999精品久久久久久 | 天天干,天天操 | 五月天综合色激情 | 中文字幕一区二区三区四区久久 | av网站大全免费 | 六月色丁 | 成年人黄色免费视频 | 久久综合狠狠综合久久综合88 | 久久99亚洲精品久久久久 | 久色小说 | 久草剧场 | 中文理论片 | 免费日韩一级片 | 色综合天天综合网国产成人网 | 美女在线观看av | 国产精品入口麻豆www | 亚洲精品三级 | 九九热re | 亚洲视频免费在线观看 | 超碰成人av| 在线观看完整版 | 精品99久久久久久 | 欧美激情视频一区二区三区 | 男女男视频 | 亚洲精品毛片一级91精品 | 韩国av在线| 日韩电影在线观看一区二区三区 | 六月丁香六月婷婷 | 国产午夜精品视频 | 亚洲国产一区在线观看 | 成人av亚洲 | 久久一区二区免费视频 | 亚洲国内精品在线 | 成人在线免费观看视视频 | 九九热在线免费观看 | 一级黄色大片在线观看 | 国产精品12 | 欧美一级黄色片 | 久草| 在线视频你懂 | 97视频亚洲| av在线免费不卡 | 国产精品亚洲成人 | 日韩欧美视频免费在线观看 | 久久99视频免费观看 | 麻豆视频免费入口 | 一区二区精品视频 | 日韩欧美视频二区 | 精品久久久久久国产偷窥 | 成人在线观看免费视频 | 人人揉人人揉人人揉人人揉97 | 在线免费观看国产黄色 | 免费黄色在线网址 | 91精品国产九九九久久久亚洲 | 五月丁香| av一级久久 | 天天爽天天做 | 欧美精品天堂 | 日韩videos| 在线免费看黄网站 | av一区二区三区在线播放 | 在线观看一区视频 | 五月激情av | 国产精品1区 | 亚洲激精日韩激精欧美精品 | 99精品久久久久久久 | 国产专区视频 | 日韩最新在线 | 国产成人综 | 亚洲精品自拍视频在线观看 | 最近最新最好看中文视频 | 91看片在线观看 | 91色国产在线 | 91资源在线播放 | av中文资源在线 | 综合久久精品 | 91污视频在线观看 | 国产精品爽爽久久久久久蜜臀 | 色偷偷97 | 国产成人精品免高潮在线观看 | 成人黄色在线电影 | 超碰国产97 | 成人91在线 | 国产视频一区在线播放 | av在线在线 | 亚洲午夜精品久久久久久久久 | 天天曰天天曰 | 在线观看日韩一区 | 成人精品国产免费网站 | 五月婷婷综合激情网 | 日韩电影黄色 | 欧美欧美| 免费观看一级特黄欧美大片 | 国产成人三级一区二区在线观看一 | 免费人成网ww44kk44 | 色婷婷综合激情 | 欧美日韩视频在线观看一区二区 | 婷婷色综合 | 久久国产精品99久久久久久丝袜 | 亚洲精品免费在线视频 | 一区二区三区四区精品 | 日韩午夜小视频 | 综合色狠狠| 久久精品免视看 | 欧美伦理一区二区三区 | 国产系列 在线观看 | 欧洲精品视频一区 | av免费网| 五月天免费网站 | 五月婷婷精品 | 日韩激情免费视频 | 色婷婷狠狠五月综合天色拍 | 四虎影视精品永久在线观看 | www.玖玖玖| 久久影视一区二区 | 久久99亚洲精品久久 | 免费看污网站 | 日韩一区二区三区在线看 | 欧美贵妇性狂欢 | 91精品对白一区国产伦 | 一区二区电影网 | av在线短片 | 日韩 精品 一区 国产 麻豆 | 69久久久久久久 | 成人在线观看免费视频 | 亚洲精品av中文字幕在线在线 | 国产一级免费在线观看 | 日韩资源在线 | 亚洲自拍偷拍色图 | 国产黄色看片 | 能在线观看的日韩av | 亚洲a在线观看 | 亚洲综合婷婷 | 久草视频在 | 成人免费观看视频网站 | 九色精品免费永久在线 | 2023av在线| 米奇狠狠狠888 | 国产精品久久久久久电影 | 97精品国自产拍在线观看 | 久久一区二区三区超碰国产精品 | 狠狠操夜夜操 | 色窝资源 | 国产在线观看免费 | 91精品日韩| 亚洲作爱视频 | 国产精品日韩在线 | 欧美精品黑人性xxxx | 粉嫩高清一区二区三区 | 色婷婷av国产精品 | 久久经典国产视频 | 日本性xxx| 久久久久久久免费 | 色中色综合 | 婷香五月 | 国产精品video爽爽爽爽 | 久久免费视频一区 | 国产日韩精品欧美 | 国产精品免费一区二区 | 99在线免费视频观看 | 国产精品 国产精品 | 欧美极品少妇xbxb性爽爽视频 | 国产亚洲在线视频 | 天天干天天操天天射 | 干天天| 日本在线观看视频一区 | 日韩免费在线观看网站 | 99久久精品国产毛片 | 国产成人久久久77777 | 国产 日韩 欧美 中文 在线播放 | 福利区在线观看 | 亚洲高清免费在线 | 99色在线| 91看片在线免费观看 | 嫩草av在线 | www免费看片com | 色www免费视频 | 国产精品一区二区在线 | 午夜精品久久久久99热app | 一本一道久久a久久精品 | av888av.com| 99久久精品免费看国产四区 | 色婷婷成人网 | www.色午夜.com | 伊人天堂久久 | 97精品在线 | 欧美影院久久 | 欧美日韩性视频在线 | 精品免费视频123区 午夜久久成人 |