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

歡迎訪問 生活随笔!

生活随笔

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

javascript

SpringBoot基础篇Bean之条件注入之注解使用

發布時間:2023/12/20 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot基础篇Bean之条件注入之注解使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

bean的條件注入,除了前面一篇博文中介紹的通過@Conditional注解配合Condition接口的實現之外,還提供了更多簡化的注解使用方式,省略了自己實現Condtion接口,本篇博文主要介紹下面幾個常用的注解使用方式

  • @ConditionalOnBean
  • @ConditionalOnMissingBean
  • @ConditionalOnClass
  • @ConditionalOnMissingClass
  • @ConditionalOnProperty
  • @ConditionalOnExpression

I. Bean的存在與否作為條件

當Bean不存在時,創建一個默認的Bean,在Spring的生態中可以說比較常見了;接下來看下這種方式可以怎么用

1. @ConditionalOnBean

要求bean存在時,才會創建這個bean;如我提供了一個bean名為RedisOperBean,用于封裝redis相關的操作;但是我這個bean需要依賴restTemplate這個bean,只有當應用引入了redis的相關依賴,并存在RestTemplate這個bean的時候,我這個bean才會生效

假設bean的定義如下

@Component @ConditionalOnBean(name="redisTemplate") public class RedisOperBean {private final RedisTemplate redisTemplate;public RedisOperBean(RedisTemplate redisTemplate) {// ...} } 復制代碼

這樣的好處就是我提供的這個第三方包,如果被用戶A間接依賴(但是A本身不需要操作redis),也不會因為創建RedisOperBean而拋異常

產生異常的原因是因為找不到RestTemplate的bean,因此無法實例化RedisOperBean,從而拋出異常

a. 注解定義

@Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented @Conditional(OnBeanCondition.class) public @interface ConditionalOnBean {// bean類型Class<?>[] value() default {};// bean類型String[] type() default {};// 要求bean上擁有指定的注解Class<? extends Annotation>[] annotation() default {};// bean namesString[] name() default {};SearchStrategy search() default SearchStrategy.ALL; } 復制代碼

b. 測試用例

構建一個簡單的測試用例,先定義一個基礎的bean

public class DependedBean { } 復制代碼

再定義一個依賴只有上面的bean存在時,才會加載的bean

public class LoadIfBeanExist {private String name;public LoadIfBeanExist(String name) {this.name = name;}public String getName() {return "load if bean exists: " + name;} } 復制代碼

接下來就是bean的定義了

@Bean public DependedBean dependedBean() {return new DependedBean(); }/*** 只有當DependedBean 存在時,才會創建bean: `LoadIfBeanExist`** @return*/ @Bean @ConditionalOnBean(name = "dependedBean") public LoadIfBeanExist loadIfBeanExist() {return new LoadIfBeanExist("dependedBean"); } 復制代碼

根據上面的測試用例,LoadIfBeanExist是會被正常加載的; 具體結果看后面的實例演示

2. ConditionalOnMissingBean

和前面一個作用正好相反的,上面是要求存在bean,而這個是要求不存在

a. 接口定義

public @interface ConditionalOnMissingBean {Class<?>[] value() default {};String[] type() default {};/*** The class type of beans that should be ignored when identifying matching beans.*/Class<?>[] ignored() default {};/*** The class type names of beans that should be ignored when identifying matching* beans.*/String[] ignoredType() default {};Class<? extends Annotation>[] annotation() default {};String[] name() default {};SearchStrategy search() default SearchStrategy.ALL; } 復制代碼

b. 測試用例

同樣定義一個bean不存在時,才創建的bean

public class LoadIfBeanNotExists {public String name;public LoadIfBeanNotExists(String name) {this.name = name;}public String getName() {return "load if bean not exists: " + name;} } 復制代碼

對應的bean配置如下

/*** 只有當沒有notExistsBean時,才會創建bean: `LoadIfBeanNotExists`** @return*/ @Bean @ConditionalOnMissingBean(name = "notExistsBean") public LoadIfBeanNotExists loadIfBeanNotExists() {return new LoadIfBeanNotExists("notExistsBean"); } 復制代碼

因為沒有notExistsBean,所以上面這個bean也應該被正常注冊

3. 實例演示

因為bean的是否存在和class的是否存在有較大的相似性,因此實例演示放在下一小節,一起測試

II. Class的存在與否作為條件

從使用來看,和前面基本上沒有太大的區別,無非就是將bean換成了class;這樣就可以避免因為Class Not Found導致的編譯異常了

1. @ConditionalOnClass

要求class存在

a. 注解定義

public @interface ConditionalOnClass {Class<?>[] value() default {};/*** The classes names that must be present.* @return the class names that must be present.*/String[] name() default {};} 復制代碼

b. 測試用例

先定義一個class

public class DependedClz { } 復制代碼

然后依賴class存在的bean

public class LoadIfClzExists {private String name;public LoadIfClzExists(String name) {this.name = name;}public String getName() {return "load if exists clz: " + name;} } 復制代碼

接下來就是Bean的配置

/*** 當引用了 {@link DependedClz} 類之后,才會創建bean: `LoadIfClzExists`** @return*/ @Bean @ConditionalOnClass(DependedClz.class) public LoadIfClzExists loadIfClzExists() {return new LoadIfClzExists("dependedClz"); } 復制代碼

因為類存在,所以測試時,這個bean應該被正常注冊

2. @ConditionalOnMissingClass

class不存在時,才會加載bean

a. 注解定義

public @interface ConditionalOnMissingClass {String[] value() default {}; } 復制代碼

b. 測試用例

定義一個class缺少時才會創建的bean

public class LoadIfClzNotExists {private String name;public LoadIfClzNotExists(String name) {this.name = name;}public String getName() {return "load if not exists clz: " + name;} } 復制代碼

bean的配置如下

/*** 當系統中沒有 com.git.hui.boot.conditionbean.example.depends.clz.DependedClz類時,才會創建這個bean** @return*/ @Bean @ConditionalOnMissingClass("com.git.hui.boot.conditionbean.example.depends.clz.DependedClz") public LoadIfClzNotExists loadIfClzNotExists() {return new LoadIfClzNotExists("com.git.hui.boot.conditionbean.example.depends.clz.DependedClz"); } 復制代碼

因為上面這個類存在,所以這個bean不應該被正常注冊

3. 實例演示

起一個rest服務,測試下上面的四個bean是否正常

@RestController @RequestMapping("depends") public class DependRest {@Autowiredprivate LoadIfBeanExist loadIfBeanExist;@Autowiredprivate LoadIfBeanNotExists loadIfBeanNotExists;@Autowiredprivate LoadIfClzExists loadIfClzExists;@Autowired(required = false)private LoadIfClzNotExists loadIfClzNotExists;@GetMapping(path = "show")public String show() {Map<String, String> result = new HashMap<>(4);// 存在result.put("loadIfBeanExist", loadIfBeanExist == null ? "null ==> false!" : loadIfBeanExist.getName());// 存在result.put("loadIfBeanNotExists",loadIfBeanNotExists == null ? "null ==> false!" : loadIfBeanNotExists.getName());// 存在result.put("loadIfClzExists", loadIfClzExists == null ? "null ==> false!" : loadIfClzExists.getName());// 不存在result.put("loadIfClzNotExists", loadIfClzNotExists == null ? "null ==> true!" : loadIfClzNotExists.getName());return JSONObject.toJSONString(result);} } 復制代碼

根據前面的分析,返回的結果應該是三個存在,一個不存在;下圖執行和我們預期一致

III. 配置屬性作為條件

主要是根據配置參數,來決定是否需要創建這個bean,這樣就給了我們一個根據配置來控制Bean的選擇的手段了,如前面一篇博文中根據配置來選擇是隨機生成boolean還是隨機生成int;只需要更改配置即可

1. @ConditionalOnProperty

@Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented @Conditional(OnPropertyCondition.class) public @interface ConditionalOnProperty {/*** Alias for {@link #name()}.* @return the names*/String[] value() default {};// 配置前綴String prefix() default "";// 配置名String[] name() default {};// 要求配置存在,且包含某個值String havingValue() default "";// 即便沒有配置,也依然創建boolean matchIfMissing() default false; } 復制代碼

2. 實例測試

a. 測試用例

測試幾個常用的姿勢,一是根據配置是否存在,來決定是否創建

public class PropertyExistBean {private String name;public PropertyExistBean(String name) {this.name = name;}public String getName() {return "property : " + name;} }public class PropertyNotExistBean {private String name;public PropertyNotExistBean(String name) {this.name = name;}public String getName() {return "no property" + name;} } 復制代碼

對應的bean配置如下

/*** 配置存在時才會加載這個bean** @return*/ @Bean @ConditionalOnProperty("conditional.property") public PropertyExistBean propertyExistBean() {return new PropertyExistBean(environment.getProperty("conditional.property")); }/*** 即便配置不存在時,也可以加載這個bean** @return*/ @Bean @ConditionalOnProperty(name = "conditional.property.no", matchIfMissing = true) public PropertyNotExistBean propertyNotExistBean() {return new PropertyNotExistBean("conditional.property"); } 復制代碼

當配置存在,且value匹配時

public class PropertyValueExistBean {public String name;public PropertyValueExistBean(String name) {this.name = name;}public String getName() {return "property value exist: " + name;} }public class PropertyValueNotExistBean {public String name;public PropertyValueNotExistBean(String name) {this.name = name;}public String getName() {return "property value not exist: " + name;} } 復制代碼

對應的配置如下

@Bean @ConditionalOnProperty(name = {"conditional.property"}, havingValue = "properExists") public PropertyValueExistBean propertyValueExistBean() {return new PropertyValueExistBean("properExists"); }@Bean @ConditionalOnProperty(name = {"conditional.property"}, havingValue = "properNotExists") public PropertyValueNotExistBean propertyValueNotExistBean() {return new PropertyValueNotExistBean("properNotExists"); } 復制代碼

接下來就是配置的參數

conditional.property=properExists 復制代碼

b. 實例演示

根據前面的分析,上面的四個bean中,PropertyExistBean, PropertyNotExistBean, PropertyValueExistBean 應該存在;而PropertyValueNotExistBean 因為配置值不匹配,不會創建

測試代碼如下

@RestController @RequestMapping(path = "property") public class PropertyRest {@Autowired(required = false)private PropertyExistBean propertyExistBean;@Autowired(required = false)private PropertyNotExistBean propertyNotExistBean;@Autowired(required = false)private PropertyValueExistBean propertyValueExistBean;@Autowired(required = false)private PropertyValueNotExistBean propertyValueNotExistBean;@GetMapping(path = "show")public String show() {Map<String, String> result = new HashMap<>(4);// 存在result.put("propertyExistBean", propertyExistBean == null ? "null ===> false" : propertyExistBean.getName());// 存在result.put("propertyNotExistBean",propertyNotExistBean == null ? "null ===> false" : propertyNotExistBean.getName());// 存在result.put("propertyValueExistBean",propertyValueExistBean == null ? "null ==> false" : propertyValueExistBean.getName());// 不存在result.put("propertyValueNotExistBean",propertyValueNotExistBean == null ? "null ==> true" : propertyValueNotExistBean.getName());return JSONObject.toJSONString(result);} } 復制代碼

執行后結果如下,一如預期

IV. 表達式方式

相比較前面的Bean,Class是否存在,配置參數是否存在或者有某個值而言,這個依賴SPEL表達式的,就顯得更加的高級了;其主要就是執行Spel表達式,根據返回的true/false來判斷是否滿足條件

至于SPEL是什么東西,后面會有專文進行解釋,此處不加以展開。下面以一個簡單的demo進行演示它的使用姿勢

1. @ConditionalOnExpression

接口定義

@Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @Documented @Conditional(OnExpressionCondition.class) public @interface ConditionalOnExpression {/*** The SpEL expression to evaluate. Expression should return {@code true} if the* condition passes or {@code false} if it fails.* @return the SpEL expression*/String value() default "true"; } 復制代碼

2. 實例測試

用一個簡單的例子,當配置參數中,根據是否滿足某個條件來決定是否需要加載bean

a. 測試用例

定義一個滿足條件和一個不滿足的bean

public class ExpressFalseBean {private String name;public ExpressFalseBean(String name) {this.name = name;}public String getName() {return "express bean :" + name;} }public class ExpressTrueBean {private String name;public ExpressTrueBean(String name) {this.name = name;}public String getName() {return "express bean :" + name;} } 復制代碼

重點關注下bean的配置

@Configuration public class ExpressAutoConfig {/*** 當存在配置,且配置為true時才創建這個bean* @return*/@Bean@ConditionalOnExpression("#{'true'.equals(environment['conditional.express'])}")public ExpressTrueBean expressTrueBean() {return new ExpressTrueBean("express true");}/*** 配置不存在,或配置的值不是true時,才創建bean* @return*/@Bean@ConditionalOnExpression("#{!'true'.equals(environment.getProperty('conditional.express'))}")public ExpressFalseBean expressFalseBean() {return new ExpressFalseBean("express != true");} } 復制代碼

對應的配置如下

conditional.express=true 復制代碼

b. 實例演示

@RestController @RequestMapping(path = "express") public class ExpressRest {@Autowired(required = false)private ExpressTrueBean expressTrueBean;@Autowired(required = false)private ExpressFalseBean expressFalseBean;@GetMapping(path = "show")public String show() {Map<String, String> result = new HashMap<>(4);result.put("expressTrueBean", expressTrueBean == null ? "null ==> false" : expressTrueBean.getName());result.put("expressFalseBean", expressFalseBean == null ? "null ==> true": expressFalseBean.getName());return JSONObject.toJSONString(result);} } 復制代碼

上面的執行,expressTrueBean應該存在,另外一個為null,運行結果如下

III. 其他

0. 相關

a. 更多博文

基礎篇

  • 181009-SpringBoot基礎篇Bean之基本定義與使用
  • 181012-SpringBoot基礎篇Bean之自動加載
  • 181013-SpringBoot基礎篇Bean之動態注冊
  • 181018-SpringBoot基礎篇Bean之條件注入@Condition使用姿勢
  • 181019-SpringBoot基礎篇Bean之@ConditionalOnBean與@ConditionalOnClass
  • 181019-SpringBoot基礎篇Bean之條件注入@ConditionalOnProperty
  • 181019-SpringBoot基礎篇Bean之條件注入@ConditionalOnExpression

應用篇

  • 181017-SpringBoot應用篇Bean之注銷與動態注冊實現服務mock

b. 項目源碼

  • 工程:spring-boot-demo
  • module: 007-conditionbean

1. 一灰灰Blog

  • 一灰灰Blog個人博客 blog.hhui.top
  • 一灰灰Blog-Spring專題博客 spring.hhui.top

一灰灰的個人博客,記錄所有學習和工作中的博文,歡迎大家前去逛逛

2. 聲明

盡信書則不如,以上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

3. 掃描關注

一灰灰blog

總結

以上是生活随笔為你收集整理的SpringBoot基础篇Bean之条件注入之注解使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久久精品网站 | 九九九热精品免费视频观看 | 亚洲精品视频网 | 中文字幕在线观看不卡 | 欧美福利视频一区 | 少妇av网 | 天堂av免费看 | 日韩午夜av电影 | 成 人 a v天堂 | 国产小视频在线免费观看 | 免费一级日韩欧美性大片 | 欧美亚洲一区二区在线 | 久久国产亚洲精品 | 中文字幕精品一区 | 精品中文字幕在线 | 中文字幕在线专区 | 日本午夜在线观看 | 91在线中字 | 久久精品视频观看 | 18+视频网站链接 | 一区二区精品久久 | 亚洲人成综合 | 日韩av免费在线看 | 欧美91视频 | 国产精品日韩久久久久 | 91天天操| 黄色免费av | 国产成人av一区二区三区在线观看 | 国产精品久久久久久久久久99 | 精品亚洲免费视频 | 欧美一区三区四区 | 免费在线观看毛片网站 | 97精品国产97久久久久久久久久久久 | 91黄色在线视频 | 右手影院亚洲欧美 | 国产精品一区二区精品视频免费看 | 亚洲最新视频在线 | 亚洲视频播放 | 亚洲国产经典视频 | 欧美精品久久久久 | 欧美成人视| 91cn国产在线| 欧美了一区在线观看 | 激情 亚洲| 欧美一二区视频 | 一区二区三区国产欧美 | 国产精品美 | 中日韩免费视频 | 五月天久久精品 | 国产日韩精品欧美 | 色欧美成人精品a∨在线观看 | 99热最新精品 | 欧美国产在线看 | 欧美性色网站 | 99色99| 日本中文在线 | 国产成人精品一区二区 | 婷婷网五月天 | 手机看片1042 | 999亚洲国产996395 | 久草热视频 | 国产在线不卡视频 | 日韩视频一区二区三区在线播放免费观看 | 色94色欧美 | 久久综合加勒比 | 国产精彩视频 | 色婷婷影视 | 在线超碰av | 91香蕉视频 mp4 | 99免费精品 | 国产精品成人免费一区久久羞羞 | 一级黄色免费网站 | 亚洲高清久久久 | 伊人中文网 | 999久久久免费视频 午夜国产在线观看 | 国偷自产视频一区二区久 | 日韩综合视频在线观看 | 欧美日韩国产mv | 天天草综合 | 国产精品日韩久久久久 | 久久99精品久久久久久久久久久久 | 一级黄色片在线免费看 | 久久久久久高潮国产精品视 | 人人干人人上 | 免费视频一区二区 | 欧美成人中文字幕 | 免费的成人av | 日韩在线视 | 91亚洲欧美 | 日日射天天射 | 激情综合久久 | 一区二区三区在线看 | 日韩.com| 成x99人av在线www | 狠狠色狠狠综合久久 | 亚洲最新在线视频 | 九九在线国产视频 | 91视频麻豆视频 | 香蕉视频色 | 亚洲成年人免费网站 | 久久国产精品免费一区二区三区 | 欧美少妇xxxxxx | 丁香六月欧美 | 99久久精品久久久久久动态片 | 日韩一区在线免费观看 | 日本性久久 | 国产伦理久久精品久久久久_ | 久久精品免费 | 在线播放视频一区 | 国产精品成人久久久 | 992tv在线观看 | 肉色欧美久久久久久久免费看 | 又爽又黄又无遮挡网站动态图 | 开心激情婷婷 | av片在线观看免费 | 国产夫妻自拍av | 国产精品美女久久久久aⅴ 干干夜夜 | 久久欧美综合 | 久久www免费视频 | av大全在线播放 | 国产丝袜美腿在线 | 国产精品原创av片国产免费 | 午夜国产福利在线 | 一区二区三区韩国免费中文网站 | 玖玖视频精品 | 五月婷婷开心中文字幕 | 国内精品久久久久久中文字幕 | 成人av免费电影 | 中国一区二区视频 | 亚洲天堂免费视频 | 久草久草视频 | 一区二区三区国产精品 | 西西4444www大胆视频 | 天天色天天综合 | 视频精品一区二区三区 | 成人免费看电影 | 久草在线观看视频免费 | 日韩资源在线 | www亚洲国产 | 人人精品久久 | 亚洲精品一区二区三区高潮 | 在线免费观看亚洲视频 | 成人在线播放网站 | freejavvideo日本免费 | 国产小视频在线播放 | 国产精品亚洲片在线播放 | 最新中文字幕视频 | 懂色av懂色av粉嫩av分享吧 | 福利视频 | 亚洲成av人片在线观看 | 亚州精品在线视频 | 欧美久久久久久久久久久 | 视频成人免费 | 欧美亚洲三级 | 最新国产一区二区三区 | 成人av资源 | 成人在线黄色 | 极品嫩模被强到高潮呻吟91 | 国产在线观看xxx | 免费日韩高清 | 成人黄色毛片 | 国产亚洲综合在线 | 日韩特级毛片 | 国产精品一区二区免费看 | 夜夜高潮夜夜爽国产伦精品 | 国产精品女主播一区二区三区 | 伊人影院在线观看 | .国产精品成人自产拍在线观看6 | 日本中文字幕在线免费观看 | av中文字幕在线免费观看 | 久久久99久久 | 精品国产一区二区三区不卡 | 日韩精品一区二区在线视频 | 欧美日本国产在线观看 | 欧美日韩一区久久 | 午夜丰满寂寞少妇精品 | 欧美日韩在线看 | 精品美女在线观看 | 人人搞人人爽 | 激情久久久久久久久久久久久久久久 | av高清在线| 天天插日日插 | 久久久国产电影 | 国产成人精品av在线 | 九九热在线视频 | 欧洲精品久久久久毛片完整版 | 日本在线观看一区二区 | 天天操天天舔天天干 | 日韩av三区| 在线观看黄色免费视频 | 99在线视频网站 | 一区二区三区电影 | 国产在线不卡视频 | 久久久资源 | 久久精品久久久久 | 正在播放一区二区 | 国产精品s色 | 日韩av一区在线观看 | 99在线视频精品 | 四虎成人精品在永久免费 | 韩国av免费 | 日韩精品久久中文字幕 | 亚洲涩涩色 | 欧美另类亚洲 | 91av电影在线 | 中文字幕电影一区 | 激情网站五月天 | 91久色蝌蚪| 亚洲精品一区二区三区四区高清 | 五月天欧美精品 | 久久久久久久国产精品影院 | 国产美女在线观看 | 成人av电影免费在线播放 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 日韩久久精品一区二区 | 欧美日韩国产色综合一二三四 | 亚洲精品中文字幕视频 | 人人射人人爱 | 国产亚洲成av人片在线观看桃 | 最新日本中文字幕 | 免费aa大片 | 久久一区二区三区日韩 | 国产精品久久久久亚洲影视 | 久久99网| 亚洲女同videos| 中文字幕在线看片 | 日本精品一区二区三区在线播放视频 | 蜜桃麻豆www久久囤产精品 | 色视频在线免费 | 在线观看网站av | 亚洲高清91 | 日韩一区二区三 | 4438全国亚洲精品观看视频 | 久久久国产一区二区三区 | 中文字幕一区二区三区在线观看 | 国产色在线视频 | 99热最新在线 | 中文字幕 第二区 | 蜜臀av性久久久久av蜜臀三区 | 欧美日韩亚洲精品在线 | 国产自在线观看 | 欧美色综合久久 | 日韩中文在线电影 | 国产系列 在线观看 | 99在线视频免费观看 | 韩国在线视频一区 | 久久中文视频 | 337p日本欧洲亚洲大胆裸体艺术 | 91精品色 | 天天摸天天干天天操天天射 | 精品在线亚洲视频 | 一本一本久久a久久精品综合妖精 | 天堂av在线中文在线 | 一区二区视频在线观看免费 | 久久ww | 91麻豆精品国产91久久久久久 | 亚洲久草网 | 蜜臀av网站 | 视频国产在线观看18 | 在线观看视频免费播放 | 日韩电影中文字幕在线 | 免费午夜视频在线观看 | 国产伦理久久精品久久久久_ | 久久久国产成人 | 欧美性色网站 | 精品国产亚洲在线 | 久久精品系列 | av导航福利 | 久草在线免费在线观看 | 在线a视频 | 久久视频在线观看中文字幕 | 日韩在线免费观看视频 | 国产精品国产三级国产不产一地 | 91亚洲免费 | 夜夜看av | 午夜久久视频 | 成人久久精品视频 | 日韩精品中文字幕av | 国产亚洲精品bv在线观看 | www.久久久.cum | 99精品国产一区二区三区麻豆 | 国产小视频精品 | 91麻豆看国产在线紧急地址 | 奇米影视777影音先锋 | 久久96国产精品久久99漫画 | 日韩高清一二三区 | 久久久五月婷婷 | 久久久久久久网 | 97在线免费观看 | 精品久久精品久久 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲国产影院av久久久久 | 国产精品k频道 | 国内精品久久久久久久久久久 | 高清有码中文字幕 | 天天爱综合 | 日本精品中文字幕在线观看 | 色网av| 久久a免费视频 | 精品免费久久久久 | 中文字幕在线观看2018 | 久久精品一区二区三区四区 | 九九爱免费视频在线观看 | 特片网久久 | 久久国内精品99久久6app | 成人av资源网站 | 午夜a区 | 日韩理论在线 | 日韩欧美一二三 | 成年人精品 | 亚洲最新av网站 | 91亚洲精品久久久 | 天天摸天天舔 | 蜜臀久久99静品久久久久久 | 91久久精品一区 | 亚洲一区二区麻豆 | 日韩午夜av | 久久久免费播放 | 国产一二三精品 | 久久99网 | 中文一二区| 99综合久久 | 激情视频区 | 青青河边草观看完整版高清 | 国产精品日韩久久久久 | 免费久久99精品国产婷婷六月 | 久久爱资源网 | 91精品国自产在线观看 | 天天摸夜夜操 | 久久久久久国产精品久久 | 激情视频一区二区三区 | 国产成人一区在线 | 亚洲天堂网站视频 | 国产91av视频在线观看 | 91精品国产三级a在线观看 | 波多野结衣在线播放视频 | 久久福利 | 美国三级黄色大片 | 亚洲国产大片 | 麻豆91网站 | 国产黄色视 | 国内精品久久久久久久久久久久 | 久久精品韩国 | 97网站| 天天爽夜夜爽人人爽一区二区 | 精品麻豆入口免费 | 少妇高潮冒白浆 | 亚洲色图激情文学 | av福利免费| 中文伊人| 九九视频精品免费 | 色哟哟国产精品 | 黄色www | 国产日韩欧美在线影视 | 久久99视频免费观看 | 黄色资源在线观看 | 亚洲精品国偷自产在线91正片 | 黄污视频网站大全 | 久久爱992xxoo | 99视频这里只有 | 久久久精品欧美一区二区免费 | 97理论电影| 91在线产啪 | 欧美日韩在线播放 | a亚洲视频 | 五月综合色婷婷 | 午夜av片 | 日韩电影在线观看中文字幕 | 欧美精品少妇xxxxx喷水 | 国产成人精品一区二区 | 亚洲六月丁香色婷婷综合久久 | 欧美日韩视频在线观看免费 | 丁香综合av | www日| 国产又粗又猛又黄 | 91精品国产福利 | 亚洲精品66 | 99自拍视频在线观看 | 在线 精品 国产 | 中文字幕日韩一区二区三区不卡 | 免费看亚洲毛片 | 天天射成人 | 成人网在线免费视频 | 亚洲精品网站在线 | 国产亚洲精品久久久久久网站 | 亚洲黄色片 | 黄网站免费大全入口 | 91视频成人免费 | 999成人免费视频 | 91网免费看 | 久久视频免费观看 | 狠狠的操 | av成年人电影 | 探花视频免费观看 | 黄色影院在线免费观看 | 日本中出在线观看 | 久久精品一区 | 免费麻豆网站 | 久久久久免费精品视频 | 涩涩网站在线 | 97天天综合网 | .国产精品成人自产拍在线观看6 | 亚洲另类交 | 色偷偷88888欧美精品久久久 | 成人a视频片观看免费 | 欧美大片在线观看一区 | 男女啪啪免费网站 | 欧美性久久久 | 婷婷色站| 99久久99久久| 成人在线免费看视频 | 在线三级播放 | 久久精品视频免费观看 | 亚洲精品黄网站 | 国产精品久久久久久影院 | 亚洲欧洲中文日韩久久av乱码 | 精品久久精品久久 | 500部大龄熟乱视频使用方法 | 91成人久久 | 香蕉影院在线 | 免费看黄在线观看 | 欧美大香线蕉线伊人久久 | 探花视频免费在线观看 | 欧美黑人性猛交 | 激情五月婷婷综合网 | 天天干,天天射,天天操,天天摸 | 国产理论片在线观看 | 99精品视频一区二区 | 成人97视频一区二区 | 亚洲影视资源 | 中国黄色一级大片 | 国产91免费看 | 欧美日本不卡视频 | 久久电影网站中文字幕 | 亚洲精品视频在线免费播放 | 粉嫩av一区二区三区免费 | 伊人天堂网 | 在线观看av网 | 99免费在线视频观看 | 久久婷婷丁香 | 免费人做人爱www的视 | 99精品久久99久久久久 | 日韩欧美亚洲 | 久久久片| av中文国产 | 久久不射电影网 | 一级黄色片在线 | 欧美日韩国产一区二区三区在线观看 | 六月丁香社区 | 在线免费高清一区二区三区 | 欧美日一级片 | 又黄又爽又无遮挡免费的网站 | 亚洲美女精品区人人人人 | 亚洲成人av一区 | aⅴ视频在线 | 处女av在线 | 国产中文字幕视频在线 | 天天舔天天搞 | 国产精品不卡av | av电影免费在线播放 | 婷婷六月丁香激情 | 久久久久国产一区二区三区 | 麻豆国产电影 | 日日躁夜夜躁aaaaxxxx | 日韩久久精品一区二区 | 2019中文字幕网站 | 国产精品国产亚洲精品看不卡15 | 成人亚洲精品久久久久 | 日韩亚洲精品电影 | 日韩一区二区三区在线观看 | 国产午夜麻豆影院在线观看 | 最近中文字幕高清字幕在线视频 | 2021国产视频 | 午夜精品久久久久久久99无限制 | 一区二区毛片 | 五月亚洲婷婷 | 久草免费在线观看视频 | 激情网站免费观看 | 欧美激情综合网 | 97在线视频免费观看 | 日韩国产精品一区 | 精品亚洲一区二区三区 | 婷婷丁香七月 | 香蕉久久久久久久 | 91视频成人免费 | 久久久96| 少妇bbbb搡bbbb搡bbbb| 亚洲h在线播放在线观看h | 黄色av电影免费观看 | 久久午夜色播影院免费高清 | 欧美精品一区二区免费 | 免费网站看v片在线a | 丁香激情视频 | 91香蕉视频 | 日韩精品免费一区二区在线观看 | 免费国产视频 | 国产精品门事件 | 91麻豆精品国产91久久久使用方法 | 国产精品自产拍在线观看蜜 | 亚洲国产999 | 在线 国产 亚洲 欧美 | 日韩精品一区二区在线观看 | 亚洲精品在线观看不卡 | 草莓视频在线观看免费观看 | 天天干天天操天天做 | 少妇做爰k8经典 | 免费在线精品视频 | 欧美日韩在线观看一区二区三区 | 五月婷影院 | 91视频在线 | 国产视频高清 | 99久久久国产精品免费99 | 97国产在线 | 91中文视频 | 午夜精品视频一区二区三区在线看 | 亚洲乱码精品久久久久 | 国内精品久久久久久久影视麻豆 | 久久av网| 国产成人免费高清 | 久久久久久综合网天天 | 国产在线观看一区 | 精品九九九九 | 久久成人亚洲欧美电影 | 亚洲性xxxx| 国产精品乱码一区二三区 | 天天久久综合 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 日韩精品免费一线在线观看 | 久久精选视频 | 国产麻豆视频网站 | 亚洲精品视频国产 | 西西4444www大胆视频 | 97超碰人人干 | 国产99久久精品一区二区300 | 99欧美| 五月婷婷播播 | 久久论理 | 中文字幕在线久一本久 | 97天天综合网 | aaa亚洲精品一二三区 | 久久网站最新地址 | 91麻豆高清视频 | 国产 亚洲 欧美 在线 | 欧美久草视频 | 美女视频是黄的免费观看 | 91视频免费国产 | 手机av电影在线观看 | 狠狠操狠狠干天天操 | 国产123区在线观看 国产精品麻豆91 | 久久精品视频4 | 国产精品嫩草影院123 | 成人av片免费观看app下载 | 中文字幕中文字幕在线中文字幕三区 | 国产高清视频在线播放一区 | 在线视频电影 | 国产成人三级在线播放 | 成人国产亚洲 | 天堂va在线高清一区 | 黄网站大全 | 久久久久 | 久久avav | 五月婷综合 | 视频一区二区三区视频 | 亚洲精品国产视频 | 国产成人精品电影久久久 | 一区二区三区四区在线 | 国产午夜小视频 | 伊人www22综合色 | 国产精品美女视频 | 久久刺激视频 | 久久天堂精品视频 | 久久99精品久久久久久三级 | 久久av中文字幕片 | 欧美性生活久久 | 午夜精品久久 | 91在线观看高清 | 国产精品99久久久 | 国产黄色观看 | 国产不卡网站 | 中文av网站| 超碰97久久 | 不卡电影免费在线播放一区 | 日韩黄色影院 | 国产剧情一区 | 99在线视频观看 | 午夜精品一二区 | 国产99久久九九精品 | 91视频大全 | 美女性爽视频国产免费app | 日本资源中文字幕在线 | 国产精品一区二区三区久久 | 国产美女被啪进深处喷白浆视频 | 播五月综合 | 久久午夜羞羞影院 | 久久久国产精品麻豆 | 日韩久久精品 | 亚洲va在线va天堂 | 欧美在线观看禁18 | 成人久久免费 | 国产在线国偷精品产拍免费yy | 欧美日韩不卡一区二区三区 | 亚洲成人网在线 | 麻豆成人小视频 | 91丨九色丨国产在线 | av免费网站在线观看 | 精品91久久久久 | 亚洲涩涩一区 | 亚洲国产精品va在线看黑人动漫 | 国产精品女视频 | 在线综合 亚洲 欧美在线视频 | 国产 日韩 欧美 自拍 | 久久久国产精品一区二区三区 | 亚洲成人精品影院 | 国产精品一区在线观看你懂的 | 国产又黄又硬又爽 | 成人免费xxx在线观看 | 色wwww| 国产精品中文字幕在线播放 | 国产精品原创av片国产免费 | 夜夜骑首页 | 91.精品高清在线观看 | 福利视频午夜 | 狠狠干夜夜爽 | 色噜噜日韩精品一区二区三区视频 | 国产精品九九九九九 | 337p西西人体大胆瓣开下部 | 亚洲在线日韩 | 99精品在线看 | 美女黄久久 | 在线播放日韩av | 国产网红在线 | 欧美日韩在线精品一区二区 | 日本激情视频中文字幕 | 国产精品麻豆免费版 | 国产精品99久久免费观看 | 日日精品| 色婷婷www| 国产精品一二三 | 黄色成品视频 | 国产中文字幕在线视频 | 亚洲电影图片小说 | 毛片a级片 | 久久午夜国产精品 | 日本特黄特色aaa大片免费 | 伊色综合久久之综合久久 | 综合久久久久久久 | 欧美亚洲国产一卡 | 免费在线国产精品 | 九九九热精品免费视频观看网站 | 免费高清影视 | 久久精品视频18 | 激情六月婷婷久久 | 91最新在线观看 | 久久成人国产精品入口 | 成年人在线免费视频观看 | 久久精品久久精品久久 | 午夜国产影院 | 伊人热 | 亚洲精品日韩av | 精品美女久久久久 | 国产精品久久久久久久久久免费 | 天天色天天色 | 国产麻豆电影在线观看 | 国产福利91精品一区二区三区 | 四虎成人精品永久免费av九九 | 99免费观看视频 | 国产精品毛片一区二区 | 黄色一集片 | 婷婷六月在线 | 成年人免费看片 | 国产一级在线播放 | 国产精品视频永久免费播放 | 成人一区二区三区中文字幕 | 91亚洲精品久久久蜜桃借种 | 在线观看视频在线观看 | 久久精品99国产精品日本 | 色综合天| 国产小视频91 | 在线视频你懂 | 欧美色婷 | 99视频一区 | 欧美色图狠狠干 | 日日操日日操 | 亚洲国产mv | 91女子私密保健养生少妇 | 四虎在线免费观看视频 | 日韩av中文在线观看 | av视屏在线播放 | 久久久久久久久久网站 | 国产又黄又猛又粗 | 日本最新高清不卡中文字幕 | 在线观看一级 | 2022中文字幕在线观看 | 日韩精品一区二区三区在线播放 | 99视屏 | 久久a v电影 | 久草网在线观看 | 国产丝袜网站 | 欧美国产精品久久久久久免费 | 国产一级免费观看 | 射射射综合网 | 黄色成年网站 | 麻豆传媒视频在线免费观看 | 久香蕉| www.av免费观看 | 香蕉视频免费在线播放 | 天天插天天干天天操 | 久久人人爽爽人人爽人人片av | 日本精品视频在线 | 香蕉视频国产在线 | 日韩综合一区二区三区 | 91精品啪在线观看国产81旧版 | 亚洲高清视频在线观看免费 | 日韩视频在线不卡 | 亚洲高清av在线 | av蜜桃在线 | 成人99免费视频 | 中文字幕国产精品一区二区 | 黄色aaa级片 | 麻豆94tv免费版 | 狠狠88综合久久久久综合网 | 成年人在线观看网站 | 国产在线观看一区 | 免费久久精品视频 | 91av视屏 | 亚洲国产精品成人av | 久久激情小说 | 久久久一本精品99久久精品 | 久久毛片视频 | 91视频免费播放 | 久久国产免费 | 日韩在线免费高清视频 | 国产成人福利在线 | 午夜av免费在线观看 | 国产不卡一区二区视频 | 国产精品视频99 | 91片网 | 婷婷久草| 最新真实国产在线视频 | av成人免费在线看 | 91麻豆精品国产91久久久久久 | 国产精品久久久久久久久久妇女 | 一本一道久久a久久精品蜜桃 | 国产一区二区日本 | 日本福利视频在线 | 在线精品视频免费观看 | 成人免费视频网 | 日韩一级成人av | 久久久久欠精品国产毛片国产毛生 | 在线免费高清一区二区三区 | 最新真实国产在线视频 | 国产综合久久 | 99视频久| 日本视频网 | 亚洲午夜精品电影 | 亚洲一区二区三区毛片 | 日本久久久久久 | 国产精品免费观看在线 | 国产免费久久 | 国产一区视频免费在线观看 | 91九色最新 | 五月视频| 免费看搞黄视频网站 | 人人看人人做人人澡 | 狠狠成人 | 国产精品手机播放 | 国产一级片久久 | 亚洲亚洲精品在线观看 | 久久无码av一区二区三区电影网 | 一区二区三区中文字幕在线观看 | 操操操日日日 | 97免费在线观看视频 | 免费在线观看av网址 | 久久99视频 | 99精品欧美一区二区三区黑人哦 | 日韩理论在线视频 | 欧美精品久久久久久久久久久 | 三级小视频在线观看 | 国产美女永久免费 | 日韩视频一区二区三区 | 国产精品99久久久久 | 在线精品视频在线观看高清 | 精品国产免费观看 | 国产午夜精品久久久久久久久久 | 精品av在线播放 | 99精品免费久久久久久日本 | 婷婷久久精品 | 国产精品久久嫩一区二区免费 | 精品国产伦一区二区三区观看体验 | 日韩精品资源 | 亚洲精品婷婷 | 日韩videos| 国产一级做a | 人人澡超碰碰 | 天天色天天干天天色 | 日本精品久久久一区二区三区 | 成人免费在线电影 | 亚洲综合在线播放 | 国产 一区二区三区 在线 | 中文字幕成人av | av一级免费 | 日韩网站免费观看 | 色欲综合视频天天天 | 国产成人福利在线 | 在线观看国产www | sm免费xx网站 | 97人人澡人人添人人爽超碰 | 久久视频在线观看中文字幕 | 波多野结衣视频一区二区 | 99免费在线观看 | 中文字幕资源站 | 国产精品久久久久久久婷婷 | 99视频| 黄色性av | 精品免费视频. | 成人一区二区三区在线 | 国产一区在线观看视频 | 中文字幕在线观看第一页 | 激情五月六月婷婷 | 欧美日韩不卡在线观看 | 丝袜足交在线 | 99精品国产99久久久久久97 | 欧美激情片在线观看 | 久久久精品 一区二区三区 国产99视频在线观看 | 成人wwwxxx视频 | 亚洲综合视频在线观看 | 激情www| 亚洲影院色 | 国产精品1区2区3区 久久免费视频7 | 少妇精69xxtheporn | 99精品电影| 亚洲精品国产拍在线 | 亚洲日本va在线观看 | 欧美成人aa | 国产视频亚洲精品 | 国产成人精品免高潮在线观看 | av大全免费在线观看 | 最近乱久中文字幕 | 黄色av电影免费观看 | 国产亚洲综合性久久久影院 | 视频在线日韩 | 成人精品999| 亚洲自拍偷拍色图 | 最新中文字幕 | 日本黄色免费在线观看 | 日韩精品一区在线观看 | 最新久久免费视频 | 久久一线 | 中文字幕色在线视频 | 国产在线观看二区 | 亚洲激情五月 | 亚洲女在线 | 亚洲在线资源 | 欧美精品一区二区免费 | 不卡中文字幕在线 | 91九色国产 | 日韩欧美在线综合网 | 香蕉影院在线播放 | 国产亚洲精品久久久久久久久久 | 久久综合爱 | 久久午夜国产精品 | 久久刺激视频 | 国产午夜精品av一区二区 | av免费网站 | 中文字幕av有码 | 丁香影院在线 | 欧美日韩国产亚洲乱码字幕 | 国产成人精品一区二区三区福利 | 色婷婷亚洲 | 国产麻豆精品传媒av国产下载 | 国产视频久久 | 成人午夜精品 | 九九日九九操 | 国产69精品久久久久久久久久 | 一级黄色片在线 | 天天草天天干天天射 | 激情视频一区二区三区 | 久久精品1区 | 成人免费看片98欧美 | 久久另类视频 | 国产精品理论片在线观看 | 久久亚洲综合色 | 夜夜躁天天躁很躁波 | 中文字幕精品www乱入免费视频 | 亚洲成a人片77777kkkk1在线观看 | 在线免费观看国产视频 | 亚洲精品乱码白浆高清久久久久久 | 午夜精品影院 | 亚洲免费视频观看 | 久久综合影音 | 国产精品av免费 | 国内一级片在线观看 | 国产探花视频在线播放 | 午夜在线资源 | 亚洲有 在线 | 久久成人免费视频 | 最新色站 | 成人黄在线观看 | 亚洲成av片人久久久 | 欧美日韩伦理在线 | 欧美精品久久久久a | 在线观看91精品国产网站 | 啪啪激情网| 开心婷婷色 | 欧美在线一级片 | 天天操操操操操操 | 国产精品成人自产拍在线观看 | 国产中文字幕视频在线观看 | www.久久久com | 四虎国产精品永久在线国在线 | 91资源在线免费观看 | 中文字幕一区2区3区 | 久久久久久久99 | 四虎成人在线 | 久久深夜福利免费观看 | 亚洲精品高清一区二区三区四区 | 99精品视频在线 | 97精品视频在线 | 欧美精品在线免费 | 五月天激情综合 | 视频在线观看99 | 色诱亚洲精品久久久久久 | 国产韩国精品一区二区三区 | 久久久免费视频播放 | 日日夜夜精品免费观看 | wwwav视频| 99热999| 亚洲高清视频在线观看免费 | 久久精品亚洲综合专区 | 日本中文字幕在线电影 | 免费成人黄色 | 精品久久久久久久久中文字幕 | 91天天操| 综合黄色网 | 五月天激情视频 | 天天干天天拍天天操天天拍 | 国产视频二区三区 | 中文字幕 国产 一区 | 狠狠躁日日躁 | 亚洲一级性 | 国产精品黄色在线观看 | 国产明星视频三级a三级点| 精品成人a区在线观看 | 性色av免费看 | 色婷婷视频在线观看 | 中文在线字幕观看电影 | 国产99久久久欧美黑人 | 黄色1级毛片| 久久av影视 | 国产日韩一区在线 | 在线色亚洲 | 激情五月婷婷激情 | 婷婷色综 | 国产视频在线观看免费 | 奇米777777| 丁香花五月 | 日韩簧片在线观看 | 在线观看亚洲精品 | 狠狠色噜噜狠狠狠合久 | 黄色看片| avav片| 日本久久视频 | 免费看在线看www777 | www.香蕉| 久久综合五月天 | 在线精品视频在线观看高清 | 国产精品国产毛片 | 国产精品第 | 国产精品你懂的在线观看 | 婷婷综合亚洲 | 特级黄色片免费看 | av在线超碰 | 高清不卡一区二区在线 | 久草网站在线 | 手机在线看片日韩 | 国产成人在线免费观看 | 国产一区精品在线观看 | 天天草夜夜 | 香蕉成人在线视频 | 中文免费观看 | 一区二区三区免费在线观看视频 | 精品久久久久久亚洲综合网 | 久久精品国产一区 | 天堂av免费 | 成人小视频在线观看免费 | 婷婷亚洲综合五月天小说 | 国产高清av免费在线观看 | 国内99视频| 色综合色综合久久综合频道88 | av观看免费在线 | 国产日产精品一区二区三区四区 | 日韩在线免费看 | 91丨九色丨勾搭 | 欧美综合久久 | 亚洲理论视频 | 久久久精品 | 超碰免费av | 中文国产字幕 |