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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot 这么实现动态数据源切换,就很丝滑!

發布時間:2023/12/29 javascript 46 coder
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot 这么实现动态数据源切换,就很丝滑! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是小富~

簡介

項目開發中經常會遇到多數據源同時使用的場景,比如冷熱數據的查詢等情況,我們可以使用類似現成的工具包來解決問題,但在多數據源的使用中通常伴隨著定制化的業務,所以一般的公司還是會自行實現多數據源切換的功能,接下來一起使用實現自定義注解的形式來實現一下。

基礎配置

yml配置

pom.xml文件引入必要的Jar

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.6</version>
    </parent>
    <groupId>com.dynamic</groupId>
    <artifactId>springboot-dynamic-datasource</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <mybatis.plus.version>3.5.3.1</mybatis.plus.version>
        <mysql.connector.version>8.0.32</mysql.connector.version>
        <druid.version>1.2.6</druid.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- springboot核心包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- mysql驅動包 -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>${mysql.connector.version}</version>
        </dependency>
        <!-- lombok工具包 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- MyBatis Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis.plus.version}</version>
        </dependency>
        <!-- druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.7</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

管理數據源

我們應用ThreadLocal來管理數據源信息,通過其中內容的get,set,remove方法來獲取、設置、刪除當前線程對應的數據源。

/**
 * ThreadLocal存放數據源變量
 *
 * @author 公眾號:程序員小富
 * @date 2023/11/27 11:02
 */
public class DataSourceContextHolder {

    private static final ThreadLocal<String> DATASOURCE_HOLDER = new ThreadLocal<>();

    /**
     * 獲取當前線程的數據源
     *
     * @return 數據源名稱
     */
    public static String getDataSource() {
        return DATASOURCE_HOLDER.get();
    }

    /**
     * 設置數據源
     *
     * @param dataSourceName 數據源名稱
     */
    public static void setDataSource(String dataSourceName) {
        DATASOURCE_HOLDER.set(dataSourceName);
    }

    /**
     * 刪除當前數據源
     */
    public static void removeDataSource() {
        DATASOURCE_HOLDER.remove();
    }
}

重置數據源

創建 DynamicDataSource 類并繼承 AbstractRoutingDataSource,這樣我們就可以重置當前的數據庫路由,實現切換成想要執行的目標數據庫。

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
import javax.sql.DataSource;
import java.util.Map;

/**
 * 重置當前的數據庫路由,實現切換成想要執行的目標數據庫
 *
 * @author 公眾號:程序員小富
 * @date 2023/11/27 11:02
 */
public class DynamicDataSource extends AbstractRoutingDataSource {

    public DynamicDataSource(DataSource defaultDataSource, Map<Object, Object> targetDataSources) {
        super.setDefaultTargetDataSource(defaultDataSource);
        super.setTargetDataSources(targetDataSources);
    }

    /**
     * 這一步是關鍵,獲取注冊的數據源信息
     * @return
     */
    @Override
    protected Object determineCurrentLookupKey() {
        return DataSourceContextHolder.getDataSource();
    }
}

配置數據庫

在 application.yml 中配置數據庫信息,使用dynamic_datasource_1dynamic_datasource_2兩個數據庫

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      master:
        url: jdbc:mysql://127.0.0.1:3306/dynamic_datasource_1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
        username: root
        password: 12345
        driver-class-name: com.mysql.cj.jdbc.Driver
      slave:
        url: jdbc:mysql://127.0.0.1:3306/dynamic_datasource_2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
        username: root
        password: 12345
        driver-class-name: com.mysql.cj.jdbc.Driver

再將多個數據源注冊到DataSource.

import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

/**
 * 注冊多個數據源
 *
 * @author 公眾號:程序員小富
 * @date 2023/11/27 11:02
 */
@Configuration
public class DateSourceConfig {

    @Bean
    @ConfigurationProperties("spring.datasource.druid.master")
    public DataSource dynamicDatasourceMaster() {
        return DruidDataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties("spring.datasource.druid.slave")
    public DataSource dynamicDatasourceSlave() {
        return DruidDataSourceBuilder.create().build();
    }

    @Bean(name = "dynamicDataSource")
    @Primary
    public DynamicDataSource createDynamicDataSource() {
        Map<Object, Object> dataSourceMap = new HashMap<>();
        // 設置默認的數據源為Master
        DataSource defaultDataSource = dynamicDatasourceMaster();
        dataSourceMap.put("master", defaultDataSource);
        dataSourceMap.put("slave", dynamicDatasourceSlave());
        return new DynamicDataSource(defaultDataSource, dataSourceMap);
    }
}

啟動類配置

在啟動類的@SpringBootApplication注解中排除DataSourceAutoConfiguration,否則會報錯。

@SpringBootApplication(exclude?=?DataSourceAutoConfiguration.class)

到這多數據源的基礎配置就結束了,接下來測試一下

測試切換

準備SQL

創建兩個庫dynamic_datasource_1、dynamic_datasource_2,庫中均創建同一張表 t_dynamic_datasource_data。

CREATE TABLE `t_dynamic_datasource_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `source_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

dynamic_datasource_1.t_dynamic_datasource_data表中插入

insert?into?t_dynamic_datasource_data?(source_name)?value?('dynamic_datasource_master');

dynamic_datasource_2.t_dynamic_datasource_data表中插入

insert?into?t_dynamic_datasource_data?(source_name)?value?('dynamic_datasource_slave');

手動切換數據源

這里我準備了一個接口來驗證,傳入的 datasourceName 參數值就是剛剛注冊的數據源的key。

/**
 * 動態數據源切換
 *
 * @author 公眾號:程序員小富
 * @date 2023/11/27 11:02
 */
@RestController
public class DynamicSwitchController {

    @Resource
    private DynamicDatasourceDataMapper dynamicDatasourceDataMapper;

    @GetMapping("/switchDataSource/{datasourceName}")
    public String switchDataSource(@PathVariable("datasourceName") String datasourceName) {
        DataSourceContextHolder.setDataSource(datasourceName);
        DynamicDatasourceData dynamicDatasourceData = dynamicDatasourceDataMapper.selectOne(null);
        DataSourceContextHolder.removeDataSource();
        return dynamicDatasourceData.getSourceName();
    }
}

傳入參數master時:127.0.0.1:9004/switchDataSource/master

傳入參數slave時:127.0.0.1:9004/switchDataSource/slave

通過執行結果,我們看到傳遞不同的數據源名稱,已經實現了查詢對應的數據庫數據。

注解切換數據源

上邊已經成功實現了手動切換數據源,但這種方式頂多算是半自動,下邊我們來使用注解方式實現動態切換。

定義注解

我們先定一個名為DS的注解,作用域為METHOD方法上,由于@DS中設置的默認值是:master,因此在調用主數據源時,可以不用進行傳值。

/**
 * 定于數據源切換注解
 *
 * @author 公眾號:程序員小富
 * @date 2023/11/27 11:02
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DS {
    // 默認數據源master
    String value() default "master";
}

實現AOP

定義了@DS注解后,緊接著實現注解的AOP邏輯,拿到注解傳遞值,然后設置當前線程的數據源

import com.dynamic.config.DataSourceContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
import java.util.Objects;

/**
 * 實現@DS注解的AOP切面
 *
 * @author 公眾號:程序員小富
 * @date 2023/11/27 11:02
 */
@Aspect
@Component
@Slf4j
public class DSAspect {

    @Pointcut("@annotation(com.dynamic.aspect.DS)")
    public void dynamicDataSource() {
    }

    @Around("dynamicDataSource()")
    public Object datasourceAround(ProceedingJoinPoint point) throws Throwable {
        MethodSignature signature = (MethodSignature) point.getSignature();
        Method method = signature.getMethod();
        DS ds = method.getAnnotation(DS.class);
        if (Objects.nonNull(ds)) {
            DataSourceContextHolder.setDataSource(ds.value());
        }
        try {
            return point.proceed();
        } finally {
            DataSourceContextHolder.removeDataSource();
        }
    }
}

測試注解

再添加兩個接口測試,使用@DS注解標注,使用不同的數據源名稱,內部執行相同的查詢條件,看看結果如何?

@DS(value = "master")
@GetMapping("/dbMaster")
public String dbMaster() {
    DynamicDatasourceData dynamicDatasourceData = dynamicDatasourceDataMapper.selectOne(null);
    return dynamicDatasourceData.getSourceName();
}

@DS(value = "slave")
@GetMapping("/dbSlave")
public String dbSlave() {
    DynamicDatasourceData dynamicDatasourceData = dynamicDatasourceDataMapper.selectOne(null);
    return dynamicDatasourceData.getSourceName();
}

通過執行結果,看到通過應用@DS注解也成功的進行了數據源的切換。

事務管理

在動態切換數據源的時候有一個問題是要考慮的,那就是事務管理是否還會生效呢?

我們做個測試,新增一個接口分別插入兩條記錄,其中在插入第二條數據時將值設置超過了字段長度限制,會產生Data too long for column異常。

    /**
     * 驗證一下事物控制
     */
//    @Transactional(rollbackFor = Exception.class)
    @DS(value = "slave")
    @GetMapping("/dbTestTransactional")
    public void dbTestTransactional() {

        DynamicDatasourceData datasourceData = new DynamicDatasourceData();
        datasourceData.setSourceName("test");
        dynamicDatasourceDataMapper.insert(datasourceData);

        DynamicDatasourceData datasourceData1 = new DynamicDatasourceData();
        datasourceData1.setSourceName("testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest");
        dynamicDatasourceDataMapper.insert(datasourceData1);
    }

經過測試發現執行結果如下,即便實現動態切換數據源,本地事務依然可以生效。

  • 不加上@Transactional注解第一條記錄可以插入,第二條插入失敗

  • 加上@Transactional注解兩條記錄都不會插入成功

本文案例地址:https://github.com/chengxy-nds/Springboot-Notebook/tree/master/springboot101/通用功能/springboot-config-order

總結

以上是生活随笔為你收集整理的SpringBoot 这么实现动态数据源切换,就很丝滑!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品日韩欧美一区二区 | 麻豆视频国产 | 国产成人精品久久久久 | 久草在线视频看看 | 国产精品成人在线 | 91一区啪爱嗯打偷拍欧美 | 91人人干 | 色播五月激情五月 | 欧美二区三区91 | 色吊丝在线永久观看最新版本 | 日日麻批40分钟视频免费观看 | 女人18毛片a级毛片一区二区 | 999电影免费在线观看2020 | 国产美女视频免费 | 亚洲午夜精品一区二区三区电影院 | 欧美成人基地 | 啪啪av在线 | 国产精美视频 | 少妇精品久久久一区二区免费 | 亚洲美女免费视频 | 国产精品综合av一区二区国产馆 | 91亚洲欧美 | 成年人免费在线看 | 夜夜高潮夜夜爽国产伦精品 | 精品在线观看一区二区 | 国产一区二区精品久久91 | 国产成人亚洲精品自产在线 | 亚洲精品小视频 | 久久综合免费 | 久久综合9988久久爱 | 久久视| 免费a网 | 国产精品免费一区二区 | 午夜精品久久久久久 | 国产色小视频 | 亚洲第一中文网 | 中文字幕a∨在线乱码免费看 | 热久久99这里有精品 | 国产污视频在线观看 | 五月婷婷综合在线 | av一级一片 | 91高清免费| 久久中文网 | 中文字幕日韩国产 | 欧美国产亚洲精品久久久8v | 天天干,天天操,天天射 | 免费网站在线观看人 | 国产午夜三级一区二区三桃花影视 | 中文字幕在线播放一区 | 在线免费观看视频a | 国产中文字幕第一页 | 国产精品久久久久久999 | 日日爱网址 | 国产无套精品久久久久久 | 91久久奴性调教 | 亚洲精品视频在线观看免费视频 | 日韩乱码中文字幕 | 久久精品激情 | 91亚洲精品国偷拍自产在线观看 | 黄色成年 | 亚洲女人av| 欧美黄色特级片 | 久久人人爽人人片 | 天天干夜夜干 | 国产精品不卡在线 | 国产高清视频在线免费观看 | 免费观看的黄色 | 国产一级电影网 | 韩国一区二区在线观看 | 四虎永久免费网站 | 五月婷婷丁香激情 | 国内精品久久天天躁人人爽 | 一级α片免费看 | 91麻豆国产福利在线观看 | 五月婷社区 | 日韩欧美有码在线 | 粉嫩av一区二区三区四区在线观看 | 麻豆成人在线观看 | 99久久婷婷国产精品综合 | 视频在线观看入口黄最新永久免费国产 | 久久艹人人| 亚洲精品一区二区三区四区高清 | 国产区精品区 | 国产一区二区三区高清播放 | 美女免费视频一区 | 丁香激情五月 | 99精品美女 | 成年人免费电影在线观看 | 特级毛片网| 高清在线一区二区 | 亚洲日本欧美在线 | 一二三久久久 | 免费看的黄色录像 | 成人av电影免费观看 | 亚洲欧美日本一区二区三区 | 亚洲经典在线 | 永久免费在线 | 国产精品99爱| av一级久久 | 日韩中文在线观看 | 夜夜摸夜夜爽 | 久久99精品波多结衣一区 | 人人爽久久涩噜噜噜网站 | 精品久久久国产 | 黄色com| 亚洲精品乱码久久久一二三 | 久久久久国产成人免费精品免费 | 亚洲人成人在线 | 久久精品国产免费 | 国产一区网址 | 在线中文字幕一区二区 | 亚洲综合在线五月天 | 午夜影院日本 | 亚洲黄色片| 夜色资源网 | 正在播放一区二区 | 精品一区二区日韩 | 中文字幕在 | aaa日本高清在线播放免费观看 | 欧美欧美 | 在线中文字幕一区二区 | 免费av看片 | 免费黄色av. | 日韩理论在线观看 | 久久99视频精品 | 91网页版在线观看 | 日日操夜夜操狠狠操 | 91在线看网站 | 日韩网页 | 精产嫩模国品一二三区 | 久久精品人人做人人综合老师 | 日韩在线观看你懂得 | 久久久免费精品国产一区二区 | 一级做a爱片性色毛片www | 国产麻豆精品久久一二三 | av在线播放不卡 | 四虎8848免费高清在线观看 | 丁香花在线观看免费完整版视频 | 国产色在线 | а天堂中文最新一区二区三区 | 日韩高清毛片 | 精品99免费 | 一级黄色片在线播放 | 国产久视频| 欧美激情xxxx | 中文字幕文字幕一区二区 | 极品中文字幕 | 日韩毛片在线免费观看 | 婷婷色综合网 | 久久久久中文字幕 | 九九在线视频免费观看 | 成人免费ⅴa | 国产专区一 | 中文字幕一区二区三区久久 | av片一区| 91视频三区 | 久久国产精品一区二区 | 国产无区一区二区三麻豆 | 亚洲精品在线免费播放 | 久久国产精品色婷婷 | 色综合色综合久久综合频道88 | 中文字幕一区三区 | 国产18精品乱码免费看 | 久草电影在线观看 | 在线观看免费av片 | 亚洲电影图片小说 | 欧美午夜久久 | 日韩视频在线不卡 | 丁香综合av | 国产日韩欧美视频 | 天堂网一区二区 | 人人爽人人av | 爱射综合 | 五月婷婷开心中文字幕 | 97av视频| 亚洲va在线va天堂 | 亚洲欧洲精品一区二区 | 国外av在线 | 欧美精品乱码99久久影院 | www国产在线 | 亚洲砖区区免费 | 三级黄色网络 | 丁香婷婷在线 | 超碰av在线 | 手机在线观看国产精品 | 色综合久久88色综合天天6 | 亚洲精品玖玖玖av在线看 | 在线视频日韩欧美 | 亚洲电影一区二区 | 天天精品视频 | 黄色亚洲片 | 亚洲欧美视频网站 | 夜夜爽88888免费视频4848 | 黄色av播放 | 成人a免费看 | 在线国产精品视频 | 大荫蒂欧美视频另类xxxx | 免费三级a | 亚州激情视频 | 日本高清dvd | 国产精品久久久网站 | 亚洲 欧美 成人 | 久久av电影 | 日日噜噜噜噜夜夜爽亚洲精品 | 激情欧美xxxx | 久久手机免费观看 | 午夜 久久 tv | 黄色资源在线观看 | 2019av在线视频 | 五月天亚洲激情 | 午夜性色 | 日本黄色大片免费 | 狂野欧美激情性xxxx | 日韩精品久久久久久中文字幕8 | 激情av在线播放 | 久久天天躁 | 中文字幕第一页在线播放 | 国产午夜视频在线观看 | 久久国际影院 | 超碰在线人人草 | 欧美日韩中字 | 久久情侣偷拍 | 97影视 | 日韩精品在线视频免费观看 | 伊人亚洲精品 | 91av大全 | 天天骚夜夜操 | 国产黄色片在线 | 久久免费黄色大片 | 国产经典三级 | 日韩天天干 | 国产99久久九九精品 | 国产中文字幕视频 | 奇米四色影狠狠爱7777 | 久久免费黄色网址 | 97超碰资源网 | 国产色视频| 狠狠色噜噜狠狠狠狠2021天天 | 日韩高清毛片 | 九色视频网址 | 亚洲日本黄色 | 少妇高潮冒白浆 | 国产一级免费片 | 久久精品欧美一区 | 免费观看不卡av | 国产小视频福利在线 | 日p视频| 日韩欧美国产精品 | 色a网 | 一区 二区电影免费在线观看 | 一本一道久久a久久综合蜜桃 | 黄色一级性片 | 精品国产资源 | 亚洲欧美日韩精品久久奇米一区 | 日韩毛片在线播放 | 天天操天天谢 | 欧美网址在线观看 | 波多野结衣一区二区三区中文字幕 | 婷婷在线看 | 中文字幕 在线看 | 天天射射天天 | 久久精品这里精品 | 波多野结衣电影一区 | 91福利视频网站 | 精品国偷自产在线 | 欧美日韩在线网站 | 国产在线传媒 | 日本黄色免费大片 | 精品久久久久久一区二区里番 | 麻豆激情电影 | www.久久成人 | 日韩精品一区二 | 免费a现在观看 | 久久精品黄色 | 色av男人的天堂免费在线 | 少妇bbw揉bbb欧美 | 精品视频在线免费观看 | 碰超在线| 特级片免费看 | 午夜精品一区二区三区视频免费看 | 成人中文字幕在线 | 精品黄色在线观看 | 亚洲精品88欧美一区二区 | 国内精品久久久久久久久久久 | 成片免费 | 99久久精品久久亚洲精品 | 国产精品高清一区二区三区 | 高清在线观看av | 中文字幕电影在线 | 国产在线小视频 | 婷婷日日 | 99国内精品| 日韩av手机在线看 | 五月天中文字幕mv在线 | 中文字幕人成不卡一区 | 国产一区黄色 | 黄色av电影在线观看 | 亚洲欧美综合 | 午夜性生活 | 四虎国产精 | 国产精品淫片 | 国产精品女同一区二区三区久久夜 | 久久成人午夜视频 | 色综合久久88色综合天天人守婷 | 99精品国产99久久久久久97 | 久草精品网| 亚洲va韩国va欧美va精四季 | 97免费在线观看视频 | 国产成人高清在线 | 美女视频永久黄网站免费观看国产 | 日韩黄色影院 | 久久久免费观看视频 | 免费激情在线电影 | 美女国内精品自产拍在线播放 | 91视频中文字幕 | av中文资源在线 | 日韩精品一区二区三区电影 | 91精品对白一区国产伦 | 色射爱| 碰超人人 | 国产午夜精品一区二区三区四区 | 四虎影视精品成人 | 欧美久久久久久久久 | 超级碰碰免费视频 | 久久精品视频网站 | 91专区在线观看 | 99久免费精品视频在线观看 | 狠狠色综合欧美激情 | 中文字幕资源网 国产 | 精品国产123| 就要干b| 国产免费黄视频在线观看 | 欧美日韩国产一区 | 一级片视频免费观看 | 免费黄色a网站 | 国产精品久久在线 | 日韩欧美99| 久久免费av电影 | 香蕉在线视频播放网站 | 蜜臀av一区| 久一网站 | 欧美一二区在线 | 成人精品福利 | 国产v亚洲v| 操操操com| 日韩av一区二区在线影视 | 中文字幕亚洲精品日韩 | 国产精品毛片一区视频播 | av福利网址导航大全 | 激情综合六月 | 免费久久久久久久 | 激情综合网在线观看 | 久草在线视频在线 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 啪啪小视频网站 | 久久毛片高清国产 | 久久人人爽av | 91精品久久久久久综合乱菊 | 成人久久18免费 | 51精品国自产在线 | 欧美a级片网站 | 玖玖视频 | 国产精品24小时在线观看 | 人人超碰97| 日韩一级理论片 | 在线视频日韩 | 天天添夜夜操 | 在线精品亚洲一区二区 | 五月天久久久 | 久久国产麻豆 | 99久久夜色精品国产亚洲 | 黄污在线看 | 日韩黄色大片在线观看 | 久久久亚洲电影 | 国产精品99久久免费观看 | av免费在线观看网站 | 国产精品久久综合 | 国产精品综合久久 | 免费在线观看中文字幕 | 精品欧美一区二区在线观看 | 深夜免费小视频 | 日韩理论电影在线观看 | 精品一二三四视频 | 欧美日韩精品在线 | 999久久久久久久久 69av视频在线观看 | 日日夜夜精品免费视频 | www黄色com | 99免费看片| 久久久久久黄 | 国产高清视频色在线www | 四虎国产精品永久在线国在线 | 福利av影院 | 免费av黄色| 亚洲成人av在线播放 | 国产精品免费高清 | 四虎永久国产精品 | 91色一区二区三区 | 久久精品超碰 | 少妇bbb搡bbbb搡bbbb | 91大神精品视频在线观看 | 精品在线一区二区三区 | 美女黄频免费 | 丁香婷婷成人 | 国产男女爽爽爽免费视频 | 色老板在线视频 | 69视频永久免费观看 | 国产亚洲免费观看 | 丁香五月亚洲综合在线 | 国产不卡片 | 欧美久久久久久 | 色干综合| 日本中出在线观看 | 色噜噜在线观看 | 国产成人在线看 | 国产中文视频 | 一本到在线 | 香蕉视频国产在线 | 国产精品大片免费观看 | 成人黄色片在线播放 | 黄色成人av | 久久精品站 | 亚洲日本va在线观看 | 亚洲视频999 | 国产精品18p | 婷婷成人在线 | 色综合久久88色综合天天人守婷 | 99精品久久只有精品 | 日日爽天天 | 久久亚洲美女 | 国产999精品久久久久久绿帽 | 在线视频 你懂得 | 日本99久久 | 免费黄色特级片 | 久久免费国产电影 | 国产精品av久久久久久无 | 久久久久国产成人免费精品免费 | 日本不卡123区 | 精品国产一区二区三区男人吃奶 | 国产资源在线视频 | 狠狠色狠狠色综合日日92 | 欧美激情视频在线观看免费 | 精品国产人成亚洲区 | 中文字幕免费高清 | 日日干日日色 | 亚洲免费精彩视频 | 久久久久久久久久久黄色 | 国产成人91 | 在线免费观看黄网站 | 久草.com | 日本最新一区二区三区 | 久久 精品一区 | 国产精品久久久久久久久久久免费 | 日韩精品中文字幕在线不卡尤物 | 亚洲 欧美 91| 国产成人av在线影院 | 天天爽夜夜操 | 91看片一区二区三区 | 久久精国产 | 欧美精品免费一区二区 | 日韩av手机在线看 | 波多野结衣一区二区三区中文字幕 | 日本女人的性生活视频 | 久草在线最新免费 | 国产资源免费 | 能在线看的av | 一区二区不卡 | 999精品在线| 欧美亚洲一区二区在线 | 免费成人av在线看 | 亚洲精品免费在线观看视频 | 亚洲激情综合 | 四季av综合网站 | 久久久影片 | 欧美精品三级在线观看 | 国产精品久久中文字幕 | 五月婷婷激情六月 | 热久久国产 | 日韩在线视频播放 | 激情文学综合丁香 | 综合久久婷婷 | 在线免费观看国产精品 | 国产午夜精品一区二区三区四区 | 中文字幕资源站 | 成人午夜电影在线播放 | 久久免费av电影 | 亚洲涩涩网 | 精品久久久久久久久久久久 | 在线免费黄色 | 91看片淫黄大片一级在线观看 | 国产精品免费在线播放 | 手机看片国产 | 亚洲天堂精品视频 | 高清精品视频 | 国产精品99久久久精品免费观看 | 国产精品爽爽久久久久久蜜臀 | 制服丝袜成人在线 | 国产福利免费看 | 天天操天天综合网 | 丁香激情综合国产 | 欧美一级免费 | 欧美色噜噜噜 | 亚洲aⅴ在线观看 | 91精品国产91热久久久做人人 | 欧美日韩18 | 精品国产观看 | 中文字幕在线观看视频一区二区三区 | 91精品国产99久久久久久红楼 | 日韩午夜精品 | 搡bbbb搡bbb视频 | 在线免费观看av网站 | 久久午夜羞羞影院 | 色婷婷综合久久久中文字幕 | 在线91网| 在线影院中文字幕 | 日韩亚洲国产精品 | 一区二区中文字幕在线观看 | 欧美久久九九 | 黄色免费视频在线观看 | 日韩欧美视频免费在线观看 | 热久久国产精品 | 婷婷亚洲五月 | 天天插日日插 | 99热最新在线 | 日韩a免费| 国产精品99久久99久久久二8 | 久草网站 | 国产亚洲成人精品 | 81精品国产乱码久久久久久 | 最近在线中文字幕 | 亚洲资源视频 | 午夜精品av在线 | 99精品国产99久久久久久97 | 久久久精品国产免费观看一区二区 | 激情综合五月婷婷 | 国产在线精品国自产拍影院 | av综合网址 | 国产色啪 | 中文资源在线播放 | 男女激情网址 | 国产精品久久久久一区二区国产 | 一区在线电影 | 手机av在线网站 | 在线观看亚洲精品视频 | 久久精品一区二区三区中文字幕 | 亚洲最快最全在线视频 | 国产老太婆免费交性大片 | 日本精品一区二区三区在线观看 | 高清美女视频 | 天天伊人狠狠 | 成年人黄色大全 | 日日爽天天爽 | 91麻豆视频网站 | 在线观看黄色小视频 | 久久久久国产精品www | 精品国产观看 | 三级av在线播放 | 国产成人在线播放 | 久久永久免费视频 | 国产无吗一区二区三区在线欢 | 三三级黄色片之日韩 | 精品不卡av| 99精品乱码国产在线观看 | 一本一道久久a久久精品 | 夜夜爱av | 97国产大学生情侣白嫩酒店 | 天天操操操操操 | 综合成人在线 | 亚洲精品在线资源 | 色国产精品 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产精品毛片一区视频播 | 91九色网站 | 成人黄色在线观看视频 | 91成人免费在线 | 国产精品自在欧美一区 | 最近中文字幕 | 日韩av不卡在线观看 | 天天色天天综合网 | 青青河边草手机免费 | 亚洲一级片av | 亚洲v欧美v国产v在线观看 | 亚洲精品日韩在线观看 | 91视频免费观看 | 中文字幕第一页在线 | 国产日韩欧美在线看 | 中文字幕人成人 | 欧美日韩不卡一区二区 | 91桃花视频 | 色香蕉在线 | 最新日韩精品 | 国产va在线 | 成年人免费观看在线视频 | 99久久999久久久精玫瑰 | 日韩精品一区二区三区水蜜桃 | 亚洲综合色网站 | 国产小视频在线 | 精品视频资源站 | 天天躁日日躁狠狠躁 | 国产成人三级一区二区在线观看一 | 国内精品久久久久久久久久清纯 | 日韩在线观看视频网站 | 在线观看韩日电影免费 | 色就是色综合 | 91av播放 | 久久特级毛片 | 欧美另类美少妇69xxxx | 免费视频久久久久久久 | 97超碰免费在线观看 | 一区免费视频 | 草久电影| 国产资源在线播放 | 狠狠躁日日躁狂躁夜夜躁av | 亚洲永久精品视频 | 天天爽夜夜爽人人爽一区二区 | 久久久久久久免费观看 | 99热在 | 亚洲精品久久激情国产片 | 国产精品嫩草69影院 | 98久9在线 | 免费 | 欧美黄色成人 | 最近中文字幕高清字幕在线视频 | 五月综合在线观看 | 亚洲桃花综合 | 欧美激情视频免费看 | 欧美aaa大片| 国产精品视频资源 | 99久久久久久久久久 | 97碰碰精品嫩模在线播放 | 久久线视频| 国产精品18p| 天天操天天射天天 | 极品国产91在线网站 | 欧美一级艳片视频免费观看 | 欧美一级特黄高清视频 | 国产精品专区在线观看 | 激情www | 奇米四色影狠狠爱7777 | 日精品 | 国产在线观看午夜 | 亚洲欧美国产精品18p | 免费av网址大全 | av色一区 | 欧美一区二区三区在线 | 日本护士三级少妇三级999 | 精品久久久久久久久久岛国gif | 婷婷看片 | 九九亚洲视频 | 麻豆免费在线视频 | 亚洲黄色一级大片 | 在线视频日韩精品 | 97在线成人 | 欧美日韩在线免费观看视频 | 玖玖爱在线观看 | 碰超人人 | 91在线一区 | 国产精品久久婷婷六月丁香 | 在线天堂视频 | 免费在线播放视频 | 黄色aaaaa| 国产精品久久久久9999吃药 | 国产片网站| 91漂亮少妇露脸在线播放 | 欧美日韩在线视频观看 | 日韩午夜高清 | 中文字幕av一区二区三区四区 | 欧美日韩高清一区二区三区 | 麻豆免费视频观看 | 人人看人人 | 久久久久看片 | 91精品福利在线 | 99精品免费久久久久久久久日本 | 欧美激情精品久久久久久 | 国产在线精品二区 | 超碰97公开 | 91九色免费视频 | 国产美女精品视频免费观看 | 国产精品成人一区二区 | 99精品欧美一区二区三区 | 国产精品高潮久久av | 午夜精品久久久久久久99婷婷 | 欧美特一级片 | 久久1电影院 | 啪嗒啪嗒免费观看完整版 | 日韩免费高清在线 | 一区二区三区久久精品 | 日韩中文字幕视频在线观看 | 最近中文字幕在线 | 色播激情五月 | 亚洲国产三级在线 | 久久综合久久综合久久 | 96av在线视频| 国产一区二区精品在线 | 四虎在线免费观看视频 | 日韩精品免费在线观看视频 | 精品免费在线视频 | 久亚洲| 日韩影视精品 | 中文字幕在线观看三区 | 91超在线 | av成人免费在线观看 | av免费成人| 中文字幕在线日本 | 97超级碰碰碰视频在线观看 | 免费色视频在线 | 中文av在线播放 | av福利网址导航大全 | 国产综合福利在线 | 国产伦精品一区二区三区免费 | 国产精品video爽爽爽爽 | 欧美国产日韩久久 | 国产伦精品一区二区三区… | 国产精品系列在线 | 国产在线精品福利 | 国产主播大尺度精品福利免费 | 福利电影久久 | 成人毛片在线视频 | 国产一级性生活 | 中文字幕日韩在线播放 | 米奇四色影视 | 亚洲黄色免费在线 | 成人在线电影观看 | 成人黄色片免费 | 97超碰福利久久精品 | 狠狠干狠狠艹 | 91久久久国产精品 | 国产又粗又猛又黄又爽视频 | 国产中文字幕在线看 | 天天摸夜夜添 | 国产中出在线观看 | www.久久久久 | 国产一级片在线播放 | 午夜精品99久久免费 | 免费在线观看成人小视频 | 永久免费的av电影 | 色999五月色 | 国产一区免费看 | 亚洲欧美婷婷六月色综合 | 成人毛片在线观看 | 国产美女久久 | 久久久午夜影院 | 午夜精品一区二区三区在线观看 | 国产69精品久久久久久久久久 | 特级毛片在线免费观看 | 欧美性成人 | 久久久久激情视频 | 大荫蒂欧美视频另类xxxx | 亚洲人视频在线 | 伊人伊成久久人综合网站 | 波多野结衣在线播放视频 | 久久久久久久久毛片精品 | 天海翼一区二区三区免费 | 在线观看mv的中文字幕网站 | 一区 二区 精品 | 黄色av免费| 欧美精品在线视频观看 | 91视频午夜| 久久99爱视频 | 丁香电影小说免费视频观看 | 亚洲激情婷婷 | 久久爱资源网 | 久久精品一区二区三区中文字幕 | 黄色小说视频在线 | 99国产精品视频免费观看一公开 | 91视视频在线直接观看在线看网页在线看 | 伊人狠狠色 | 在线观看免费 | 操操操人人 | 久草网站在线观看 | 国产精品一区二区三区免费视频 | 国产91亚洲精品 | 99精品国产成人一区二区 | 国产一级特黄毛片在线毛片 | 国内三级在线 | 中日韩在线视频 | 91成人在线网站 | 亚洲一区二区麻豆 | 色婷婷视频在线观看 | 国产精品乱码高清在线看 | 在线色网站| 国产色网 | 一区二区三区 中文字幕 | 日韩国产欧美在线播放 | 日本在线视频一区二区三区 | 黄a网 | 特级西西人体444是什么意思 | 久草免费福利在线观看 | 欧美日本啪啪无遮挡网站 | 色欧美成人精品a∨在线观看 | 91精品视频播放 | 成人网在线免费视频 | 亚洲视频在线免费看 | 久久久久久久亚洲精品 | 天堂网一区二区 | 日韩免费久久 | 中文字幕在线观看第一页 | 中文字幕日韩免费视频 | 久久一区国产 | 69av网| 999久久久精品视频 日韩高清www | 日韩电影精品一区 | 久久丝袜视频 | 国产视频一区在线免费观看 | 国产精品久久久久久久久久免费 | 久久亚洲欧美 | 另类老妇性bbwbbw高清 | 欧美日韩激情视频8区 | 国产麻豆视频在线观看 | 久视频在线播放 | 五月婷香蕉久色在线看 | 亚洲一区网站 | 开心激情婷婷 | 亚洲黄色一级视频 | av网站大全免费 | 97在线观看免费观看 | 国产精品av免费观看 | 国产玖玖视频 | 国产成人在线观看免费 | 最近更新中文字幕 | 日本中文字幕免费观看 | 国产高清成人av | 亚洲综合网 | 久久不射电影院 | 久久精品日产第一区二区三区乱码 | 91传媒激情理伦片 | 少妇性aaaaaaaaa视频 | av在线免费网站 | 久久草草热国产精品直播 | 久久99国产一区二区三区 | 久热这里有精品 | 人人澡人 | 狠狠色综合欧美激情 | 日韩动漫免费观看高清完整版在线观看 | av福利在线| 欧美另类美少妇69xxxx | 在线日韩精品视频 | 欧美精品乱码久久久久久按摩 | 亚洲国产精品人久久电影 | 免费三级大片 | 免费观看国产精品视频 | 激情图片qvod | 在线国产中文字幕 | 久久久官网 | 国产精品人成电影在线观看 | 国产精品一区二区果冻传媒 | 午夜在线看片 | 国产精品原创av片国产免费 | 久久久久久久久久久久99 | 久久九九影院 | av在线免费在线 | 久草在线视频免费资源观看 | 欧美日韩午夜爽爽 | 99久久久久免费精品国产 | av在线进入 | 国产精品乱码久久久久久1区2区 | 狠狠干夜夜操天天爽 | 亚洲区另类春色综合小说 | 久久成视频 | 亚洲精品看片 | 国产精品高清在线观看 | 久久不射电影院 | 精品国产一区在线观看 | 免费视频 你懂的 | 江苏妇搡bbbb搡bbbb | 一二区av | 亚洲精品在线观看的 | 五月婷网站| 国产精品theporn | 日韩成人av在线 | 一区二区 不卡 | 日韩免费一二三区 | 色综合久久综合中文综合网 | 国产成人精品午夜在线播放 | 久久av伊人 | 美女性爽视频国产免费app | 亚洲精品国产精品乱码在线观看 | 精品1区2区3区 | 女人18毛片90分钟 | 国产小视频在线免费观看 | 精品一区二区日韩 | 国产婷婷一区二区 | 欧美极品一区二区三区 | 在线观看韩日电影免费 | 欧美午夜精品久久久久久孕妇 | 91精品对白一区国产伦 | 操久久免费视频 | 黄色的网站免费看 | 正在播放亚洲精品 | 99精品在线观看视频 | 成人久久久精品国产乱码一区二区 | 国产小视频免费观看 | www日韩视频 | 亚洲成人一区 | 欧美analxxxx| 91最新视频在线观看 | 黄色电影网站在线观看 | 激情五月在线视频 | 国内精品久久久久影院一蜜桃 | 操处女逼 | 日韩av免费一区二区 | 成人国产精品入口 | 久久天堂精品视频 | 日日夜夜天天人人 | 精品九九九 | 亚洲永久字幕 | 日韩精品在线观看av | 亚洲电影久久久 | 中文字幕在线不卡国产视频 | 久章草在线观看 | 激情综合五月天 | 91禁在线观看 | 欧美精品一区在线发布 | 天天综合日日夜夜 | 久久久久久麻豆 | 在线免费观看国产 | 五月天欧美精品 | www色网站| 免费日韩一区二区三区 | 免费在线观看一区二区三区 | 成人观看视频 | 国产成人在线观看 | 热久久免费视频 | 三级毛片视频 | 激情视频二区 | 五月婷婷中文字幕 | 久久视频精品 | 99热在线观看 | 久久久久久黄色 | 国产伦理一区二区 | 亚洲欧美国产精品18p | 在线黄色国产 | 亚洲午夜精品一区 | 日韩资源在线观看 | 日韩精品电影在线播放 | 九九热在线观看视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美在线不卡一区 | 天天爽夜夜爽精品视频婷婷 | 午夜久久久久久久 | 国产91在线观看 | 婷婷六月在线 | 欧美激情视频一区二区三区免费 | 在线影院 国内精品 | 亚洲国产高清在线观看视频 | a爱爱视频| 97av在线| 亚洲三级黄色 | 精品国产一二三四区 | 国产手机精品视频 | 日韩高清在线不卡 | 精品v亚洲v欧美v高清v | 久久99久国产精品黄毛片入口 | 激情偷乱人伦小说视频在线观看 | 国产亚洲精品综合一区91 | 欧美xxxx性xxxxx高清 | 高清日韩一区二区 | 狠狠色丁香久久婷婷综 | 亚洲精品欧美专区 | 超碰成人av | 日韩精品免费一区二区在线观看 | 国产成年免费视频 | 成人一级在线观看 | 毛片网站观看 | 久久久亚洲精品 | 一区二区三区四区不卡 | 日韩欧美网站 | 日本性xxxxx 亚洲精品午夜久久久 | 色五月激情五月 | 国产精品成人免费精品自在线观看 | 香蕉视频91| 碰超在线97人人 | 国产精品久久久 | av3级在线| 天天射天天做 | 欧美成人性网 | 一区中文字幕电影 | 成人av一二三区 | 久久9999久久免费精品国产 | 精品一二三区 | 天天天干夜夜夜操 | www久久 | 最近中文字幕免费 | 五月天综合激情网 | 日日夜夜综合网 | 精品久久久久久国产 | 五月开心激情网 | 国产伦理一区二区三区 | 黄色大片日本 | 最近日本mv字幕免费观看 | 日韩欧美视频二区 | 亚洲精品久久久久久久不卡四虎 | 精品国产一区二区三区噜噜噜 | 久久精品一二三区白丝高潮 | 欧美在线观看视频免费 | 色91在线 | 少妇精品久久久一区二区免费 | 久久久久草 | 91精品久| 免费观看黄色12片一级视频 |