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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FF4J(特性框架)简介及入门

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FF4J(特性框架)简介及入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FF4J

什么是FF4J

ff4j是一款開源的實現特性功能切換的框架。簡單來說通過aop和各種配置,去替代用硬代碼if…else

簡單入門

ff4j.xml

ff4j提供多種持久化方式(jdbc、redis、mongodb等)

<?xml version="1.0" encoding="UTF-8" ?> <ff4j xmlns="http://www.ff4j.org/schema/ff4j"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.ff4j.org/schema/ff4j http://ff4j.org/schema/ff4j-1.4.0.xsd"><features><!-- Will be "ON" if enable is set as true --><feature uid="hello" enable="true" description="This is my first feature" /><!-- Will be "ON" only if :(1) Enable is set as true(2) A security provider is defined(3) The current logged user has the correct permissions. --><feature uid="mySecuredFeature" enable="true" ><security><role name="USER" /><role name="ADMIN" /></security></feature><!-- Will be "ON" only if(1) Enable is set as true(2) Strategy predicate is true (here current > releaseDate) --><feature uid="myFutureFeature" enable="true"><flipstrategy class="org.ff4j.strategy.time.ReleaseDateFlipStrategy" ><param name="releaseDate" value="2020-07-14-14:00" /></flipstrategy></feature><!-- Features can be grouped to be toggled in the same time --><feature-group name="sprint_3"><feature uid="userStory3_1" enable="false" /><feature uid="userStory3_2" enable="false" /></feature-group></features> </ff4j>

Usage

public class FF4jHelloTest {@Testpublic void testMyFirst(){assertNotNull(getClass().getClassLoader().getResourceAsStream("ff4j.xml"));// When: initFF4j ff4j = new FF4j("ff4j.xml");assertEquals(5, ff4j.getFeatures().size());// 是否存在特性assertTrue(ff4j.exist("hello"));// 特性是否生效assertTrue(ff4j.check("hello"));// Usageif (ff4j.check("hello")){System.out.println("Hello FF4j !");}ff4j.disable("hello");assertFalse(ff4j.check("hello"));}@Testpublic void testAutoCreate(){assertNotNull(getClass().getClassLoader().getResourceAsStream("ff4j.xml"));// When: initFF4j ff4j = new FF4j("ff4j.xml");try {// 如果沒有開始自動創建,會拋異常if (ff4j.check("notExistFeature")){// do nothing}} catch (Exception e){System.out.println("ff4j throw exception when feature not exist !");}// 開啟后,如果不存在會自動創建,默認不生效ff4j.setAutocreate(true);if (!ff4j.check("notExistFeature")){System.out.println("feature toggle off or not exist");}}@Testpublic void testGroups(){assertNotNull(getClass().getClassLoader().getResourceAsStream("ff4j.xml"));// When: initFF4j ff4j = new FF4j("ff4j.xml");assertTrue(ff4j.exist("userStory3_1"));assertTrue(ff4j.exist("userStory3_2"));// 獲取分組assertTrue(ff4j.getStore().readAllGroups().contains("sprint_3"));assertEquals("sprint_3", ff4j.getFeature("userStory3_1").getGroup());assertEquals("sprint_3", ff4j.getFeature("userStory3_2").getGroup());assertFalse(ff4j.check("userStory3_1"));assertFalse(ff4j.check("userStory3_2"));// 啟用分組,這里用分組可以同時開啟或關閉多個特性功能ff4j.getStore().enableGroup("sprint_3");assertTrue(ff4j.check("userStory3_1"));assertTrue(ff4j.check("userStory3_2"));} }

核心組件

Feature

Feature,顧名思義,就是特性,通過唯一標識來代表一個特性

// Simplest declaration Feature f1 = new Feature("f1");// Declaration with desc and init state Feature f2 = new Feature("f2", false, "sample desc");// ACL & Group Set<String> permission = new HashSet<>(2); permission.add("BETA-TESTER"); permission.add("VIP"); Feature f3 = new Feature("f3", false, "sample desc", "g1", permission);// Custom Properties Feature f4 = new Feature("f4"); f4.addProperty(new PropertyString("p1", "v1")); f4.addProperty(new PropertyDouble("pie", Math.PI));// Flipping Strategy Feature f5 = new Feature("f5"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MONTH, Calendar.SEPTEMBER); calendar.set(Calendar.DAY_OF_MONTH, 1); f5.setFlippingStrategy(new ReleaseDateFlipStrategy(calendar.getTime()));Feature f6 = new Feature("f6"); f6.setFlippingStrategy(new DarkLaunchStrategy(0.2D));Feature f7 = new Feature("f7"); f7.setFlippingStrategy(new WhiteListStrategy("localhost"));

FeatureStore

同理,特征持久化抽象(內存、jdbc、redis等)

Feature f5 = new Feature("f5"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MONTH, Calendar.SEPTEMBER); calendar.set(Calendar.DAY_OF_MONTH, 1); f5.setFlippingStrategy(new ReleaseDateFlipStrategy(calendar.getTime()));InMemoryFeatureStore store = new InMemoryFeatureStore(); store.create(f5); store.exist("f1"); store.enable("f1");// grant permission store.grantRoleOnFeature("f1", "BETA");store.addToGroup("f1", "g1"); store.enable("g1"); Map<String, Feature> g1 = store.readGroup("g1");store.readAll();

Property

屬性,特性的屬性

// wrap java type// 默認包裝了很多Java類型,也可以通過extends Property<?>擴展 PropertyBigDecimal propertyBigDecimal = new PropertyBigDecimal(); PropertyBoolean f2 = new PropertyBoolean("f2", false); PropertyByte b1 = new PropertyByte("b1", Byte.valueOf("1")); PropertyDate d1 = new PropertyDate("d1", new Date());

PropertyStore

屬性持久化

PropertyStore pStore = new InMemoryPropertyStore();// CURD pStore.existProperty("a"); pStore.createProperty(new PropertyDate("d1", new Date())); Property<Date> pDate = (Property<Date>) pStore.readProperty("a"); pDate.setValue(new Date()); pStore.updateProperty(pDate); pStore.deleteProperty("a");pStore.clear(); pStore.readAllProperties(); pStore.listPropertyNames();// get PropertyStore from ff4j FF4j ff4j = new FF4j("ff4j.xml"); PropertyStore propertiesStore = ff4j.getPropertiesStore();// Usage FF4J can wrap all operation // proxy all, u know ff4j.createProperty(new PropertyDate("ddd", new Date()));

Cache

如果持久化方式為jdbc等(數據在磁盤),可以考慮將Feature、Property等緩存到內存, 具體可參考FF4JCacheManager

public Feature read(String featureUid) {Feature fp = getCacheManager().getFeature(featureUid);// not in cache but may has been created from nowif (null == fp) {fp = getTargetFeatureStore().read(featureUid);getCacheManager().putFeature(fp);}return fp; }

Security

老生常談,認證和授權。可以用于線上做灰度,新特性功能只有灰度用戶可以體驗

FF4J集成了springSecurity和ApacheShiro

Flipping Strategy

FlippingStrategy的evaluate方法判斷是否放開特性。自定義的strategy可以extends AbstractFlipStrategy
自實現

// 內置的各種策略 BlackList ClientFilter DarkLaunch Drools Expression OfficeHour Ponderation ReleaseDate ServerFilter WhiteList

最常見的就是ReleaseDateFlipStrategy. 先開發驗證好“國慶活動”等國慶當天再生效

Group

分組,將特性打包分組,把多個開關合成一個開關

存儲形式

前面提到了FF4J提供了很多持久化方式,包括內存、jdbc等

內存

默認的方式,以xml作為存儲介質,然后解析xml將Feature等加載到內存。
該方式會在應用重啟后復原,即之前做的改動都不存在了,會重新讀xml到內存

<?xml version="1.0" encoding="UTF-8" ?> <features xmlns="http://www.ff4j.org/schema/ff4j"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.ff4j.org/schema/ff4j http://ff4j.org/schema/ff4j.xsd"><!-- Simplest --><feature uid="A" enable="true" /><!-- Add description --><feature uid="B" description="Expect to say good bye..." enable="false" /><!-- Security stuff --><feature uid="C" enable="false"><security><role name="USER" /><role name="ADMIN" /></security></feature><!-- Some strategies and a group --><feature-group name="strategies"><feature uid="S1" enable="true"><flipstrategy class="org.ff4j.strategy.el.ExpressionFlipStrategy"> <param name="expression" value="A | B" /></flipstrategy></feature><feature uid="S2" enable="true"><flipstrategy class="org.ff4j.strategy.ReleaseDateFlipStrategy"><param name="releaseDate" value="2013-07-14-14:00" /></flipstrategy></feature><feature uid="S3" description="null" enable="true"><flipstrategy class="org.ff4j.strategy.PonderationStrategy"><param name="weight" value="0.5" /></flipstrategy></feature><feature uid="S4" description="z" enable="true"><flipstrategy class="org.ff4j.strategy.ClientFilterStrategy"> <param name="grantedClients" value="c1,c2" /></flipstrategy></feature><feature uid="S5" description="null" enable="true"> <flipstrategy class="org.ff4j.strategy.ServerFilterStrategy"><param name="grantedServers" value="s1,s2" /></flipstrategy></feature></feature-group> </features>

JDBC

主要是基于RDBMS,FF4J內置了JdbcFeatureStore、JdbcPropertyStore等,同時
提供了基于關系型數據庫的DDL腳本

DDL腳本
-- Main Table to store Features -- 存儲特征 CREATE TABLE FF4J_FEATURES ("FEAT_UID" VARCHAR(100),"ENABLE" INTEGER NOT NULL,"DESCRIPTION" VARCHAR(1000),"STRATEGY" VARCHAR(1000),"EXPRESSION" VARCHAR(255),"GROUPNAME" VARCHAR(100),PRIMARY KEY("FEAT_UID") );-- Roles to store ACL, FK to main table -- 存儲ACL(訪問控制列表) CREATE TABLE FF4J_ROLES ("FEAT_UID" VARCHAR(100) REFERENCES FF4J_FEATURES("FEAT_UID"),"ROLE_NAME" VARCHAR(100),PRIMARY KEY("FEAT_UID", "ROLE_NAME") );-- Feature Internal Custom Properties -- 存儲自定義屬性 CREATE TABLE FF4J_CUSTOM_PROPERTIES ("PROPERTY_ID" VARCHAR(100) NOT NULL,"CLAZZ" VARCHAR(255) NOT NULL,"CURRENTVALUE" VARCHAR(255),"FIXEDVALUES" VARCHAR(1000),"DESCRIPTION" VARCHAR(1000),"FEAT_UID" VARCHAR(100) REFERENCES FF4J_FEATURES("FEAT_UID"),PRIMARY KEY("PROPERTY_ID", "FEAT_UID") );-- @PropertyStore (edit general properties) -- 存儲通用屬性 CREATE TABLE FF4J_PROPERTIES ("PROPERTY_ID" VARCHAR(100) NOT NULL,"CLAZZ" VARCHAR(255) NOT NULL,"CURRENTVALUE" VARCHAR(255),"FIXEDVALUES" VARCHAR(1000),"DESCRIPTION" VARCHAR(1000),PRIMARY KEY("PROPERTY_ID") );-- @see JdbcEventRepository (audit event) -- 存儲審核事件 CREATE TABLE FF4J_AUDIT ("EVT_UUID" VARCHAR(40) NOT NULL,"EVT_TIME" TIMESTAMP NOT NULL,"EVT_TYPE" VARCHAR(30) NOT NULL,"EVT_NAME" VARCHAR(30) NOT NULL,"EVT_ACTION" VARCHAR(30) NOT NULL,"EVT_HOSTNAME" VARCHAR(100) NOT NULL,"EVT_SOURCE" VARCHAR(30) NOT NULL,"EVT_DURATION" INTEGER,"EVT_USER" VARCHAR(30),"EVT_VALUE" VARCHAR(100),"EVT_KEYS" VARCHAR(255),PRIMARY KEY("EVT_UUID", "EVT_TIME") );
簡單使用

jdbc

// Initialization of your DataSource DataSource ds = ...FF4j ff4j = new FF4j(); ff4j.setFeatureStore(new JdbcFeatureStore(ds)); ff4j.setPropertiesStore(new JdbcPropertyStore(ds)); ff4j.setEventRepository(new JdbcEventRepository(ds));

spring-jdbc

// Initialization of your DataSource DataSource ds = ...// Init the framework full in memory FF4j ff4j = new FF4j();// Feature States in a RDBMS FeatureStoreSpringJdbc featureStore= new FeatureStoreSpringJdbc(); featureStore.setDataSource(ds); ff4j.setFeatureStore(featureStore);// Properties in RDBMS PropertyStoreSpringJdbc propertyStore= new PropertyStoreSpringJdbc(); jdbcStore.setDataSource(ds); ff4j.setPropertiesStore(propertyStore);// Audit in RDBMS // So far the implementation with SpringJDBC is not there, leverage on default JDBC EventRepository auditStore = new JdbcEventRepository(ds); ff4j.setEventRepository(eventRepository);ff4j.audit(true);

Redis

非關系型的KV數據庫, 內置了FeatureStoreRedis、PropertyStoreRedis等,相當于
將feature、property之類的存儲在Redis

redis連接

// Will use default value for REDIS (localhost/6379 @{@link `redis.clients.jedis.Protocol`}) new RedisConnection();// enforce host and port new RedisConnection("localhost", 6379);// if password is enabled in redis new RedisConnection("localhost", 6379, "requiredPassword");// Defined your own pool with all capabilities of {@link redis.clients.jedis.JedisPool} new RedisConnection(new JedisPool("localhost", 6379));// Use the sentinel through specialized JedisPool {@link redis.clients.jedis.JedisSentinelPool} new RedisConnection(new JedisSentinelPool("localhost", Util.set("master", "slave1")));

ff4j curd

// Initialization of FF4J FF4j ff4j = new FF4j(); ff4j.setFeatureStore(new FeatureStoreRedis(redisConnection)); ff4j.setPropertiesStore(new PropertyStoreRedis(redisConnection)); ff4j.setEventRepository(new EventRepositoryRedis(redisConnection));// Empty Store ff4j.getFeatureStore().clear(); ff4j.getPropertiesStore().clear();// Work a bit with CRUD Feature f1 = new Feature("f1", true, "My firts feature", "Group1"); ff4j.getFeatureStore().create(f1);PropertyString p1 = new PropertyString("p1", "v1"); ff4j.getPropertiesStore().createProperty(p1);ff4j.check("f1");

存儲形式

m127.0.0.1:6379> keys FF4J*1) "FF4J_PROPERTY_p1"2) "FF4J_FEATURE_f1"3) "FF4J_EVENT_-1467803617889-9ac83532-2480-4609-9a76-5793cdb21e1a"4) "FF4J_EVENT_-1467803617833-a856c1b9-cedc-4164-815b-55bf9dc3adef"5) "FF4J_EVENT_-1467803654139-03a9cb1e-b5b3-4d9f-91dd-0ca5b2cc5a01"6) "FF4J_EVENT_-1467803654144-cc591275-a98b-4efe-ab39-4bfd0839aa1e"7) "FF4J_EVENT_-1467803617829-4487077f-680a-44ba-b0e2-43e6685dc044"8) "FF4J_EVENT_-1467803654599-83af1ce2-05f6-4264-8b53-d1541e8e036c"127.0.0.1:6379> get FF4J_FEATURE_f1 "{\"uid\":\"f1\",\"enable\":true,\"description\":\"My firts feature\",\"group\":\"Group1\",\"permissions\":[],\"flippingStrategy\":null,\"customProperties\":{}}"127.0.0.1:6379> get FF4J_PROPERTY_p1 "{\"name\":\"p1\",\"description\":null,\"type\":\"org.ff4j.property.PropertyString\",\"value\":\"v1\",\"fixedValues\":null}"127.0.0.1:6379> get FF4J_EVENT_-1467803654599-83af1ce2-05f6-4264-8b53-d1541e8e036c "{\"id\": \"83af1ce2-05f6-4264-8b53-d1541e8e036c\", \"timestamp\":1467803654599, \"hostName\": \"mbp\", \"source\": \"JAVA_API\", \"name\": \"f1\", \"type\": \"feature\", \"action\": \"checkOn\", \"duration\":0}"127.0.0.1:6379>

其他相關

參考:https://github.com/ff4j/ff4j/wiki

1. spring框架整合, 可以通過@Flip注解的方式松耦合 2. 內置的web管理頁面,一般叫它dashboard 3. 事件處理,觀察者模式 4. FF4j這個類相當于一個門面,通過它可以操作上面提到的核心組件,并且做一些代理的事情

總結

以上是生活随笔為你收集整理的FF4J(特性框架)简介及入门的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲国产资源 | 精品中文字幕在线播放 | 丁香国产视频 | 国产精品99精品久久免费 | 最近免费中文字幕mv在线视频3 | 国产精品短视频 | 91精品推荐 | www.夜夜夜| 五月天丁香视频 | 国产中文字幕在线播放 | 一区二区三区电影在线播 | 992tv在线成人免费观看 | 亚洲欧美日韩精品久久久 | 日产乱码一二三区别在线 | 在线电影91| 国产 一区二区三区 在线 | 免费在线观看国产精品 | 久草网站在线观看 | 91精品啪在线观看国产81旧版 | 国产成人久久精品77777 | 91麻豆精品国产91久久久无限制版 | 欧美激情视频久久 | 久久99精品久久久久久三级 | 国产99久久精品一区二区300 | 国产中文字幕视频在线观看 | 欧美日韩不卡在线视频 | 六月丁香在线观看 | 色多视频在线观看 | 五月天丁香 | 人人擦| 黄色一级性片 | 国产精品99精品久久免费 | 成年人黄色免费网站 | 69精品视频在线观看 | 欧洲在线免费视频 | 啪啪动态视频 | 亚洲四虎影院 | 97人人模人人爽人人少妇 | 99色资源 | 成人免费看片98欧美 | 婷婷亚洲最大 | 精品久久久久久久久中文字幕 | 久久免费黄色大片 | 色人久久| 亚洲免费资源 | 久久久三级视频 | 久久久久www | 久久99精品久久久久久秒播蜜臀 | 久久国内精品视频 | 一级免费观看 | 五月天高清欧美mv | 天天射天天舔天天干 | 国产精品一二三 | 黄www在线观看 | 免费观看xxxx9999片 | 欧洲亚洲女同hd | 女女av在线| 色综合久久久久 | 911香蕉视频 | 亚洲欧美视频在线观看 | 97精品在线观看 | 精品一区二区三区久久 | 丁香色婷 | 国产美女免费观看 | 亚洲一级电影在线观看 | 亚洲欧洲久久久 | 国内精品久久久精品电影院 | 免费试看一区 | 国产精品久久久久久久久久久免费看 | 欧美国产大片 | 最新av网址在线 | 中文字幕在线播放日韩 | 91免费在线播放 | 韩国在线一区 | 久草资源免费 | 在线观看国产麻豆 | 欧美五月婷婷 | 在线日韩一区 | 国产精品成人一区 | 中文字幕日本特黄aa毛片 | 国产精品美女视频网站 | 91麻豆视频| 欧美视频一区二 | 色综合欧洲 | 精品视频99 | 久热av | 久久久精品 | 狠狠操狠狠干天天操 | 国产精品女主播一区二区三区 | 中文字幕亚洲欧美日韩2019 | 免费日韩一区二区三区 | 五月婷婷久久丁香 | 亚洲综合色播 | 婷婷色综合色 | 日日碰狠狠添天天爽超碰97久久 | 免费在线激情电影 | 欧美日韩中字 | 99中文字幕视频 | 欧美日韩亚洲一 | 欧美激情综合五月色丁香 | 成人黄色在线看 | www.com久久久 | 国产精品久久久久久久久久 | 亚洲综合色视频 | 手机看片国产日韩 | 国产精品免费在线播放 | 久久伦理电影网 | 麻花豆传媒mv在线观看网站 | 国产精品久久三 | 黄p网站在线观看 | 日日碰狠狠添天天爽超碰97久久 | 这里只有精品视频在线 | 国产在线观看免费观看 | 在线免费观看视频 | 久久久国产影视 | 亚洲精品一区二区三区新线路 | 天天综合久久 | 日韩视频精品在线 | 亚洲日日射| 亚洲日本va午夜在线影院 | 日本在线观看黄色 | 天天狠狠操 | 欧美一级看片 | 久久激情综合 | 国产乱老熟视频网88av | 国产精品日韩欧美 | 午夜 在线| 欧美激情第一区 | 国产精品乱码一区二三区 | 久久久久久久18 | 午夜成人免费影院 | 久久久免费精品国产一区二区 | 成人一级免费电影 | 精品国产乱码久久久久久1区2匹 | 欧美 日韩 成人 | 免费韩国av| 免费a级毛片在线看 | 国产第一页在线观看 | 不卡的av在线播放 | av久久在线| 久久久国产视频 | 波多野结衣一区 | 99精品视频免费在线观看 | 久久久久久久久久久久久国产精品 | 国产精品mm | 国产99免费视频 | 插婷婷 | 日日操网站 | 欧美在线观看禁18 | 91黄色影视 | 一区二区 精品 | 欧美成人理伦片 | 91免费在线| 日日草夜夜操 | 国产精品理论片在线观看 | 欧美少妇影院 | 国产精品成人一区二区三区 | 国产精品久久久久久av | 久久国产精品99久久久久久丝袜 | 中文字幕免费在线 | 中文字幕在线观看播放 | 伊香蕉大综综综合久久啪 | 在线观看视频97 | 夜夜操天天操 | 色多多污污 | 国产亚洲成av人片在线观看桃 | 天天曰视频 | 一区二区三区在线免费 | 国产香蕉视频在线观看 | 超碰人人射 | 久久综合九色综合97婷婷女人 | 四虎影视成人永久免费观看亚洲欧美 | 丁香五香天综合情 | 91豆麻精品91久久久久久 | 天堂av免费观看 | 国产一区免费在线 | 婷婷久久精品 | 日韩h在线观看 | 91在线porny国产在线看 | 波多野结衣小视频 | 久久精品中文字幕少妇 | 69av久久| 在线国产一区 | 手机在线黄色网址 | 免费亚洲电影 | aaa黄色毛片 | 天天se天天cao天天干 | 九九免费观看视频 | 午夜久久影院 | 在线中文字幕视频 | 天天操天天弄 | 久草在线国产 | 中文字幕a∨在线乱码免费看 | 欧美日韩不卡一区二区三区 | 午夜精品久久久久久久久久久久 | 在线观看欧美成人 | 美女视频黄是免费的 | av国产网站 | 国产精品一区二区三区在线看 | 日韩免费久久 | 亚洲三级在线 | 欧美日韩另类在线 | 一区二区三区日韩精品 | 国产精品成人免费精品自在线观看 | 99re6热在线精品视频 | 中文字幕黄色av | 婷婷av电影| 中文字幕 国产视频 | 91人人视频在线观看 | 欧美精品视 | 国产精品欧美激情在线观看 | 成人av在线直播 | 99视频网站 | 在线国产视频一区 | 久久国产美女视频 | 亚洲精品动漫久久久久 | 国内丰满少妇猛烈精品播放 | 美女网站在线播放 | 成人九九视频 | 五月婷婷开心 | 中文字幕在线电影 | 欧美精品乱码久久久久久按摩 | www.亚洲精品视频 | 狠狠色丁香婷婷综合视频 | 午夜免费久久看 | 亚洲视频久久久久 | 久久手机精品视频 | 在线 国产 亚洲 欧美 | 欧美一级性生活视频 | 国产九色在线播放九色 | 99中文在线| 国产日韩精品一区二区 | 色悠悠久久综合 | 亚洲综合日韩在线 | 日韩在线视频免费看 | 丁香婷婷色综合亚洲电影 | 亚洲 欧洲av | 国产免费视频一区二区裸体 | 国产精品不卡在线 | 精品久久久网 | 欧美在线aa | 国产成人精品999在线观看 | 黄色电影小说 | 免费观看性生活大片 | 国产亚洲无| 狠狠搞,com| 久久久久久久久网站 | 久久国产精品小视频 | 99热网站| 欧美国产一区二区 | 狠狠狠干| 国产一区欧美二区 | 欧美精品中文在线免费观看 | 黄色软件在线观看免费 | 在线综合色 | 中文字幕一区二区三区乱码不卡 | 四虎永久国产精品 | 999久久国产 | 国产精品高潮呻吟久久久久 | 欧美成人黄色片 | 美女黄视频免费看 | 日韩av在线免费播放 | 麻豆免费视频 | 91在线小视频 | 午夜av不卡 | 国产午夜精品福利视频 | 97视频在线| 久久久久久免费毛片精品 | 欧美黑人巨大xxxxx | 久久久九色精品国产一区二区三区 | 狠狠色丁香久久婷婷综合五月 | 国产一区在线视频播放 | 不卡的一区二区三区 | 中文字幕一区二区三区在线播放 | 亚洲第一中文网 | 欧美亚洲精品在线观看 | 三级av在线| 黄色成品视频 | 热久久影视 | 精品国产亚洲日本 | 激情www | 在线99 | 国产a高清 | 亚洲午夜精品久久久久久久久 | 久久久午夜电影 | 久久久久区 | 欧美日韩在线播放一区 | 中文字幕免费在线看 | 日b视频在线观看网址 | 91丨九色丨蝌蚪丰满 | 久久无码精品一区二区三区 | 国内久久看| 人人精久| 免费看三级网站 | 国内综合精品午夜久久资源 | 五月天电影免费在线观看一区 | 久久国产精品免费一区二区三区 | 欧美aaa一级| 久久观看最新视频 | 91传媒激情理伦片 | 一区二区三区四区在线 | 亚洲闷骚少妇在线观看网站 | 最近中文字幕高清字幕免费mv | 亚洲国产成人av网 | 久99久精品视频免费观看 | 在线看中文字幕 | 成人av在线看 | 激情久久一区二区三区 | 成人免费在线观看电影 | 日韩精品专区在线影院重磅 | 精品女同一区二区三区在线观看 | 亚洲va综合va国产va中文 | 国产.精品.日韩.另类.中文.在线.播放 | 日韩理论电影在线观看 | 免费看片日韩 | 欧美一级片在线播放 | 青青网视频 | 国产成人精品一区二区在线 | 亚洲精品在线一区二区 | 在线色资源 | 天天操天天操天天操天天操 | www.夜夜操.com | 成人在线免费视频观看 | 视频在线播放国产 | 99精品一区 | 亚洲一级片免费观看 | 天天射天天干天天操 | 不卡的av中文字幕 | 久久午夜视频 | 香蕉97视频观看在线观看 | 免费下载高清毛片 | 色婷婷导航 | 久久久久久久久福利 | 精品久久一区二区三区 | 91精品专区 | 香蕉视频在线播放 | 在线观看午夜 | 欧美日韩二区在线 | 国产福利在线免费 | 丁香五月缴情综合网 | 久久免费视频在线观看 | 日韩av播放在线 | 日韩免费在线视频观看 | 亚洲精品在线播放视频 | 天天射狠狠干 | 午夜12点| 手机在线中文字幕 | 亚洲精品久久久蜜桃 | 国产精品久久久777 成人手机在线视频 | 亚洲影视资源 | 在线v片免费观看视频 | 国产精品一区二区三区电影 | 99精品成人 | 丝袜美腿一区 | 久久综合五月天婷婷伊人 | 欧美一区二区三区在线视频观看 | 成人av免费在线 | 91精品久久久久 | 国产婷婷vvvv激情久 | av电影av在线 | 国产精品18久久久久久久 | 亚洲狠狠操 | 超碰97国产 | 日韩资源在线观看 | 激情五月***国产精品 | av在线中文 | 日本资源中文字幕在线 | 黄色一级动作片 | 一级电影免费在线观看 | 草久久av | 成人小视频在线 | 日韩欧美网址 | 日韩一区二区三区高清在线观看 | 久久黄色小说 | 97精品国产一二三产区 | 日韩黄视频 | 在线 影视 一区 | 国产成人一区二区三区在线观看 | 亚洲欧美偷拍另类 | 婷婷 中文字幕 | 国产精品破处视频 | 国产精品18久久久久久久久久久久 | 色婷婷综合五月 | 久草视频在线免费播放 | 亚洲精品视频在线观看免费视频 | 亚洲va欧洲va国产va不卡 | 亚洲欧美成人在线 | 一级免费看视频 | 欧美日韩3p | 色吊丝在线永久观看最新版本 | 免费观看性生活大片 | 国产中文字幕视频在线 | av专区在线 | 黄网在线免费观看 | 天天艹天天 | 国产在线精品一区二区 | 国产精品大片在线观看 | 中文乱幕日产无线码1区 | 欧美一级电影 | 五月婷久 | 亚洲欧美精品在线 | 国产在线观看,日本 | 黄色www在线观看 | 欧美日本三级 | 人人射人人爽 | 最新国产精品久久精品 | 日韩在线观看中文字幕 | 国产精品一区久久久久 | 天天色草 | 国产黄色高清 | 亚洲另类在线视频 | 免费av网址大全 | 欧美一级日韩免费不卡 | 国产高清精品在线观看 | 久久视频精品在线观看 | av在线播放免费 | 久色伊人 | 亚洲人在线| 欧美日本一二三 | 国产精品免费在线观看视频 | 国产亚洲精品日韩在线tv黄 | 99视频网站 | wwwwww色| 欧美激情xxxx性bbbb | 黄色a在线 | 色诱亚洲精品久久久久久 | 激情欧美一区二区三区免费看 | 在线黄色免费 | 欧美精品视 | 99久久婷婷国产一区二区三区 | 西西www444 | 久草免费看 | 国产一级免费观看视频 | 国产精品一区二区果冻传媒 | 一区二区在线不卡 | 久久一区二区三区四区 | 久久精品视频在线观看免费 | 久久久久亚洲天堂 | 在线播放精品一区二区三区 | 天天干天天操天天入 | 免费av观看| 免费看av片网站 | 日韩和的一区二在线 | 91在线亚洲 | 国内视频在线 | 欧美大jb | 婷婷中文字幕 | 欧美国产日韩在线观看 | 手机在线黄色网址 | 成人手机在线视频 | 久久夜靖品 | 国产群p视频 | 97av视频| 久操伊人| 伊人五月 | 成人av电影在线 | 亚洲成av人影片在线观看 | 国产成人av网 | 久久在线一区 | 天天天天射 | 涩涩成人在线 | 欧美日韩二区在线 | 丁香婷婷色综合亚洲电影 | 久久在线免费视频 | 六月丁香社区 | 玖玖玖国产精品 | 国产日韩欧美在线免费观看 | 免费看91的网站 | 五月激情丁香图片 | 国内精品视频久久 | 国产精品久久久久三级 | 热99在线| 亚av在线| 成年人毛片在线观看 | 国产电影一区二区三区四区 | 99精品免费在线观看 | 欧美影院久久 | 天堂成人在线 | av片免费播放 | 99视频精品免费观看, | 在线观看久久久久久 | 国产在线观看免 | 久久爱资源网 | 国产小视频精品 | 欧美激情综合五月色丁香小说 | 欧美日韩高清在线 | 久久久久亚洲天堂 | 午夜天天操 | 91.精品高清在线观看 | 狠狠插天天干 | 日韩欧美在线免费观看 | 中文字幕电影一区 | 精品国产1区2区3区 国产欧美精品在线观看 | 国产伦理一区二区三区 | 中文av一区二区 | 99夜色| 99久久久国产免费 | 国产精品观看在线亚洲人成网 | 一本一道波多野毛片中文在线 | 天天射射天天 | 免费aa大片 | 激情五月***国产精品 | 久久久亚洲精华液 | 国产日韩欧美在线播放 | av免费观看网址 | 久久久久久国产精品亚洲78 | 99综合视频 | 色婷婷精品大在线视频 | 亚洲成人黄色在线 | 69亚洲精品 | 18久久久久 | 日p视频 | 丁香六月久久综合狠狠色 | www,黄视频| 精品视频免费播放 | 亚洲免费小视频 | 亚洲成av人片在线观看 | 久久国产精品影视 | 日本中出在线观看 | 欧美日韩中文字幕视频 | 久久伊人精品一区二区三区 | 欧美日韩精品免费观看视频 | 欧美日韩高清 | av成人在线电影 | 精品亚洲免费视频 | 久久久性| 国产色就色 | 日韩av成人免费看 | 亚洲一区在线看 | 久久久免费观看 | 一级黄色片在线 | av电影一区 | 91精品在线观看入口 | 91av播放| 超碰在线人 | 国产一级电影免费观看 | 免费日韩 精品中文字幕视频在线 | 99热国产在线观看 | 九九影视理伦片 | 99在线看 | 91视频黄色 | 精品久久久久久久久久久久久久久久久久 | 中文字幕在线播放日韩 | 黄色视屏免费在线观看 | 亚洲精品毛片一级91精品 | 狠狠干网站| 91手机视频在线 | 国产一级免费视频 | 在线国产精品一区 | 激情在线免费视频 | 国产一区在线视频播放 | 欧美日韩国产页 | 激情一区二区三区欧美 | 国产精品久久久久永久免费观看 | www.成人sex| 国产午夜精品一区二区三区 | 日韩精品一区二区三区三炮视频 | 国产一区二区高清不卡 | av电影在线免费观看 | 亚洲午夜在线视频 | 日韩经典一区二区三区 | 久久成人国产精品入口 | 激情视频网页 | 天天操天天操天天操天天操 | 国产一区在线免费观看 | 婷婷丁香色 | 精品一区二区综合 | 日韩免费播放 | 亚洲精品国精品久久99热一 | 国产亚洲亚洲 | 中文字幕影片免费在线观看 | 成人免费视频免费观看 | 西西444www | 丝袜制服天堂 | 国产又粗又硬又长又爽的视频 | 免费三级影片 | 亚洲国产精品电影 | 国产玖玖精品视频 | 国产精品综合在线观看 | 一区二区影视 | 九九99| 亚洲三级黄色 | 色综合天天色综合 | 久久久久www| 成人av电影免费在线播放 | 国产清纯在线 | 三上悠亚在线免费 | 久久精品一区二区三区国产主播 | 久久99亚洲网美利坚合众国 | 奇米网8888 | 五月婷婷激情六月 | 国产99免费 | 久久福利精品 | 亚洲成av人片在线观看www | 免费在线播放 | 日韩欧美一区二区在线播放 | 免费精品在线视频 | 精品一区在线 | 日韩精品视频久久 | 最新av网站在线观看 | 蜜臀一区二区三区精品免费视频 | 国产伦精品一区二区三区照片91 | 九九免费在线观看视频 | 黄色av网站在线观看 | 亚洲天天综合 | 久久国产精品99久久久久久老狼 | 亚洲电影一级黄 | 国产资源免费在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美日韩亚洲第一页 | 国产精品美女999 | 日韩高清免费无专码区 | 91桃色视频 | 久久呀| 四虎在线观看精品视频 | 亚洲午夜久久久综合37日本 | 国产91小视频 | 黄色一级在线免费观看 | 国产精品久久久久三级 | 中文字幕在线乱 | 色九九影院 | 久久99精品久久久久久清纯直播 | 中文字幕在线一区观看 | 欧美日韩中文字幕在线视频 | 99操视频 | 有码一区二区三区 | 久久这里只有精品视频首页 | 久久久久精 | 在线观看视频一区二区三区 | 欧美日韩午夜 | 欧美日韩亚洲在线观看 | 国产成人精品亚洲 | 色婷久久 | 久久久99精品免费观看乱色 | 色悠悠久久综合 | 日韩精品首页 | 一区二区 精品 | 久久高清av | 国内一区二区视频 | 在线视频久久 | 精品久久一二三区 | www,黄视频 | 久久精品亚洲一区二区三区观看模式 | 成人免费视频在线观看 | 免费观看mv大片高清 | 亚洲天堂网在线视频观看 | 成人免费在线视频观看 | 欧美大香线蕉线伊人久久 | 精品一区二区三区久久 | 天天做天天爱夜夜爽 | 色干综合| 91伊人久久大香线蕉蜜芽人口 | 国产精品视频区 | 一区二区三区中文字幕在线观看 | 亚洲精品国产精品国自产 | 天天玩天天干 | 91在线播放国产 | 美腿丝袜av | 国产小视频在线观看 | 日韩成人av在线 | 欧美巨乳波霸 | 国产一区二区精品久久 | 成人一级片视频 | 日韩国产欧美在线播放 | 久久av电影| 色综合久久久久久久久五月 | 国产精品免费在线观看视频 | 成人小视频在线观看免费 | 在线直播av| 欧美一级爽 | 久久99免费 | 玖玖玖在线观看 | 在线午夜av| 中文字幕乱偷在线 | 99在线播放 | 国产亚洲高清视频 | 久草干 | 亚洲第一中文网 | 久久丁香网 | 中文字幕永久免费 | 欧美日韩一级在线 | 免费在线黄 | 97色婷婷 | 99综合电影在线视频 | 免费黄色av | 日日夜夜天天 | 丁香综合激情 | 91九色视频国产 | av怡红院| 免费观看国产精品视频 | 91女人18片女毛片60分钟 | 福利电影一区二区 | 狠狠色丁香婷婷综合橹88 | h视频在线看 | 久久九九精品久久 | 9i看片成人免费看片 | 麻豆视频免费观看 | 国产日韩精品一区二区三区 | 奇米四色影狠狠爱7777 | 精品福利网站 | 国产精品久久久久久一二三四五 | 特级黄色片免费看 | 视频在线99re | 国模视频一区二区三区 | 亚洲1区在线 | 最近免费观看的电影完整版 | 久久婷婷一区二区三区 | 日本mv大片欧洲mv大片 | 91麻豆网站 | 色婷婷精品大在线视频 | 中文字幕日韩在线播放 | 中文字幕视频一区 | 麻豆国产精品一区二区三区 | 日韩国产精品一区 | 欧美日性视频 | 欧美日韩性 | 玖玖在线播放 | 欧美淫视频 | 在线观看成人网 | 人人干狠狠干 | 日本少妇高清做爰视频 | 在线视频 一区二区 | 日韩性片 | 九九热久久久 | 69av网| 全黄色一级片 | 激情丁香 | 欧美日韩免费一区二区 | 欧美a在线看 | 国产精品男女视频 | 在线 视频 亚洲 | 国产日产在线观看 | 九色最新网址 | 久久电影国产免费久久电影 | 日韩乱码在线 | 九九精品无码 | 日韩欧美一区二区在线观看 | 99免费视频 | 国产一区久久久 | 精品一区二区三区香蕉蜜桃 | 日韩色综合 | 久久久久久久国产精品影院 | 91免费网址 | 免费成人在线观看 | 久久久久成人精品免费播放动漫 | 97久久久免费福利网址 | 欧美激情视频免费看 | 精选久久 | 亚洲高清视频一区二区三区 | 国产a免费| 福利视频一区二区 | 91大神一区二区三区 | 欧美日韩一级视频 | 免费黄av| 欧美xxxxx在线视频 | 国产精品原创 | 欧美在线观看视频 | 国产中文字幕网 | 九九热精品在线 | 亚洲三级在线播放 | 免费视频一区 | 欧美精品999 | 天堂av网站| 亚洲精品乱码久久久久久蜜桃动漫 | 国内精品久久久久久久久 | 亚洲综合在线五月天 | 国产v在线 | 中文一区在线观看 | 亚洲欧洲一级 | 久草在线视频看看 | 亚洲精品国产精品乱码在线观看 | 国产一区二区久久久 | 亚洲自拍自偷 | 97超碰超碰久久福利超碰 | 日韩色一区二区三区 | 国产精品成人免费精品自在线观看 | 亚洲精品成人av在线 | 欧美一区二区三区在线观看 | av电影不卡在线 | 99久久精品视频免费 | 最新av在线播放 | 欧美激情精品久久久久久 | 精品美女久久 | 在线免费视 | 亚洲日韩欧美视频 | 最近更新中文字幕 | 在线观看国产区 | 成人三级视频 | 国产精品a成v人在线播放 | 激情在线免费视频 | 人人爽人人干 | 天天操天天干天天爽 | 丁香婷婷成人 | 精品久久片 | 亚洲视频999 | 久久久久网站 | 午夜视频免费 | 伊香蕉大综综综合久久啪 | 免费日韩一区二区三区 | 久久精品电影 | 亚洲在线视频免费观看 | 国产视频在线观看一区 | 69久久99精品久久久久婷婷 | 色噜噜在线观看视频 | 91亚洲国产成人久久精品网站 | 国产不卡网站 | 久久精品中文字幕 | 免费h精品视频在线播放 | 国产高清视频免费观看 | 婷婷成人综合 | 天天插天天狠 | 亚洲精品动漫久久久久 | 成人免费xxx在线观看 | 久久综合色影院 | 国产麻豆电影在线观看 | 日本三级香港三级人妇99 | 天堂av免费| 国产精品原创在线 | 国产91国语对白在线 | 亚洲欧美激情精品一区二区 | 24小时日本在线www免费的 | 亚洲精品久久久久中文字幕二区 | 丁香花中文在线免费观看 | 国产一级高清 | 视频一区二区免费 | 日韩在线观看网址 | 综合国产视频 | 不卡电影一区二区三区 | 日日夜夜天天人人 | 五月综合激情婷婷 | 国产精品国产三级国产不产一地 | 狠狠色噜噜狠狠狠狠2022 | a视频在线播放 | 午夜视频在线观看一区二区三区 | 黄色av大片 | 日日夜夜人人精品 | www.99热精品 | 久久综合九色综合网站 | 免费毛片一区二区三区久久久 | 久久久免费看片 | 精品女同一区二区三区在线观看 | 激情欧美一区二区免费视频 | 欧美a免费| 亚洲成人精品 | 日韩免费av网址 | 亚洲精品视频中文字幕 | 亚洲视频电影在线 | 麻豆视频免费播放 | 日韩欧美有码在线 | 美女视频久久 | 综合激情伊人 | 亚洲精品玖玖玖av在线看 | 国产精品s色 | www.色婷婷| 国产在线观看,日本 | 国产精品乱码久久久久久1区2区 | 亚洲第一区在线播放 | 狠狠色婷婷丁香六月 | 99 精品 在线 | 色视频在线免费 | 中文字幕在线第一页 | 香蕉精品视频在线观看 | 日本深夜福利视频 | 久久国产免费看 | 亚洲欧美国产精品va在线观看 | 日韩色一区二区三区 | 精品久久久久久久久久久久久久久久 | 久草在线免费新视频 | 亚洲一级电影 | 亚洲精品麻豆视频 | 久久在线免费视频 | 91资源在线观看 | 国产久视频 | 91网址在线 | 天海翼一区二区三区免费 | 四虎影视成人精品 | 99色视频 | 日本中文字幕一二区观 | 亚洲va韩国va欧美va精四季 | 国产亚洲免费的视频看 | 国产精品久久久久久久久久久不卡 | 97碰在线 | www.com久久久 | 九色视频网| 夜夜躁天天躁很躁波 | 免费在线一区二区 | 日韩丝袜视频 | 99久久精品国产欧美主题曲 | 天天天在线综合网 | 在线日韩中文字幕 | av在线播放快速免费阴 | 中文字幕免费国产精品 | 欧美日韩国产免费视频 | 黄色片网站 | 69久久99精品久久久久婷婷 | 国产麻豆精品久久一二三 | 久久精品久久久精品美女 | 韩国三级一区 | 91亚洲国产成人久久精品网站 | 久久精品区 | av中文资源在线 | 国产综合在线视频 | 欧美日韩三级 | 最新色站 | 黄色毛片视频免费观看中文 | 蜜桃av人人夜夜澡人人爽 | 五月激情电影 | 中文字幕色播 | 五月天久久久久久 | 中文字幕永久免费 | 中文字幕频道 | 91大神精品视频在线观看 | 日韩.com| 91成人亚洲| 亚洲成av人片在线观看www | 精品特级毛片 | 国产精品亚州 | 成人天堂网 | 久久免费视频在线观看 | 亚洲欧美日韩一二三区 | 天天操综合 | av免费看看 | 五月天综合网 | 中文字幕 国产专区 | 国产玖玖精品视频 | 五月综合色婷婷 | jizzjizzjizz亚洲 | 精品96久久久久久中文字幕无 | 国产成人一区二区三区久久精品 | 狠狠色噜噜狠狠狠狠2021天天 | 中国老女人日b | 国产三级午夜理伦三级 | 久久99这里只有精品 | 中文字幕一区二区三区视频 | 国内精品久久久久 | 中文字幕在线观看视频一区 | 91资源在线 | 激情伊人五月天 | 91视频大全 | 亚洲视频一区二区三区在线观看 | 国产精品18久久久久久不卡孕妇 | 国产精品综合在线观看 | 日韩欧美视频在线免费观看 | 亚洲一区 影院 | 精品人妖videos欧美人妖 | 久久久久久久久爱 | 夜夜夜| 久久久久婷 | 国产精品久久久久久久久久新婚 | 久久久久一区二区三区 | 三级黄免费看 | 久久久久久久久影院 | 性色av免费在线观看 | 亚洲黄色影院 | 久久综合色一综合色88 | 免费在线观看的av网站 | 久久国产精品久久精品国产演员表 | 欧美污在线观看 | 欧美精品乱码99久久影院 | 97在线观视频免费观看 | 婷婷激情影院 | 激情网站网址 | 久久久亚洲国产精品麻豆综合天堂 | 在线免费看黄网站 | 亚洲视频,欧洲视频 | 久久久www| 久久久久久久久久国产精品 | 国产精品一区二区在线免费观看 | 99成人免费视频 | 97手机电影网| 干干日日| 国产一区二区不卡在线 | 日日夜夜狠狠干 | 国产在线资源 | av电影av在线 | 欧美日韩91| 一区在线观看视频 | 中文字幕久久久精品 | 免费看黄色91 | 免费看十八岁美女 | 日韩在线高清免费视频 | 99精品视频在线免费观看 | 国产精品久免费的黄网站 | 97精品一区二区三区 | 久久久精品福利视频 | 国产精品久久久久999 | 91麻豆免费版 | 九色在线视频 | 亚洲极色 | a天堂一码二码专区 | 超碰97网站| 成人在线免费观看视视频 | 国产 日韩 在线 亚洲 字幕 中文 | 精品国产欧美一区二区 | 精品在线小视频 | 一级性视频 | 国产一区二区不卡视频 | 久久免费高清视频 |