精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

干掉前端!3分鐘純 Java 注解搭個管理系統,我直接好家伙

開發 后端
最近接觸到個新項目,發現它用了一個比較有意思的框架,可以說實現了我剛入行時候的夢想,所以這里馬不停蹄的和大家分享下。

[[389925]]

 本文轉載自微信公眾號「程序員內點事」,作者程序員內點事。轉載本文請聯系程序員內點事公眾號。

大家好,我是小富~

最近接觸到個新項目,發現它用了一個比較有意思的框架,可以說實現了我剛入行時候的夢想,所以這里馬不停蹄的和大家分享下。

我剛開始工作接觸的項目都還沒做前后端分離,經常需要后端來維護頁面,有時候覺得自己好像天生不適合干前端,你要是讓我研究研究后端的技術,看個中間件源碼啊,分析分析什么框架底層原理啊,這都問題不大,偶爾搞一下JS也可以。你要是讓我寫個css樣式,那簡直要命了,一點也提不起興趣,不知道有沒有跟我一樣的。

今天要介紹的框架直接不用寫頁面了,話不多說,下邊咱們直奔主題

Erupt一個通用后臺管理框架,據說有 超低代碼量、 零前端代碼、零 CURD操作、無需建表,純Java注解開發等特色,號稱三分鐘就可以搭建一個完整的后臺管理系統。

額~ 聽著好像還挺流批的,到底是不是有這么魔幻,咱們一起用起來感受下。

首先來搭建一下環境,目前Erupt支持Java版本1.8.0及以上、Spring Boot版本2.0及其以上。

搭建easy

pom.xml引入必要的jar包

  1. <dependencies> 
  2.     <dependency> 
  3.         <groupId>org.springframework.boot</groupId> 
  4.         <artifactId>spring-boot-starter</artifactId> 
  5.     </dependency> 
  6.     <dependency> 
  7.         <groupId>mysql</groupId> 
  8.         <artifactId>mysql-connector-java</artifactId> 
  9.     </dependency> 
  10.     <!--用戶權限管理--> 
  11.     <dependency> 
  12.         <groupId>xyz.erupt</groupId> 
  13.         <artifactId>erupt-upms</artifactId> 
  14.         <version>1.6.7</version> 
  15.     </dependency> 
  16.     <!--接口數據安全--> 
  17.     <dependency> 
  18.         <groupId>xyz.erupt</groupId> 
  19.         <artifactId>erupt-security</artifactId> 
  20.         <version>1.6.7</version> 
  21.     </dependency> 
  22.     <!--后臺WEB界面--> 
  23.     <dependency> 
  24.         <groupId>xyz.erupt</groupId> 
  25.         <artifactId>erupt-web</artifactId> 
  26.         <version>1.6.7</version> 
  27.     </dependency> 
  28.     <dependency> 
  29.         <groupId>org.springframework.boot</groupId> 
  30.         <artifactId>spring-boot-starter-tomcat</artifactId> 
  31.         <scope>compile</scope> 
  32.     </dependency> 
  33. </dependencies> 

 

 

application.yml 文件只要簡單配置數據源就好,提前準備個數據庫,說到數據庫這里我說個小插曲。

我之前在Github 提交案例代碼的時候(https://github.com/chengxy-nds/Springboot-Notebook ),由于沒太注意沒屏蔽敏感信息,導致云數據庫賬號泄露了,最近我發現已經有小伙伴在數據庫上跑項目了,仔細看了看里邊的數據結構,發現像是個畢設項目。

本身這個庫就是我跑demo案例的一個測試庫,為的就是讓小伙伴能把更多時間放在研究案例的技術點上,減少搭建環境這種沒技術含量的瑣碎事。

發現歸發現,這里我沒改密碼,也沒刪他們的庫,如果你要用就繼續用著,但玩歸玩,鬧歸鬧,你不能亂動不是你的數據!影響其他人學習就不好了。

  1. spring: 
  2.   datasource: 
  3.     url: jdbc:mysql://47.93.6.5:3306/erupt2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai 
  4.     username: root 
  5.     password: 123456 
  6.   jpa: 
  7.     show-sql: true 
  8.     generate-ddl: true 
  9.     database-platform: org.hibernate.dialect.MySQL5InnoDBDialect 
  10.     database: mysql 
  11.   profiles: 
  12.     active: dev 
  13.   mail: 
  14.     username: xxxx@qq.com 
  15.     password: xxxxxxx 
  16.     host: smtp.qq.com 
  17.     properties: 
  18.       mail.smtp.ssl.auth: true 
  19.       mail.smtp.ssl.enable: true 
  20.       mail.smtp.ssl.required: true 
  21. server: 
  22.   port: 8888 

說了點題外話,我們繼續搞起~

其實到這Erupt的環境就搭建完了,額~ ,這就完了?

咱們什么也沒干,項目是個空殼子,一行代碼也沒寫,好像連個表也沒建啊!

別著急咱們先啟動下項目,看到控制臺打印出很多建表語句和插入語句,這是因為Erupt框架底層應用JPA持久化,預置創建了一些系統表和數據。

注意:Erupt預置表只會隨項目第一次啟動構建一次,如果想重新創建,需刪除.Erupt文件(一般在項目的工作空間內),獲取文件位置方式

  1. System.getProperty("user.dir"

再看數據庫里創建了16張系統表,其中e_upms_user表是用戶表,默認只有一個管理員賬號,用戶名、密碼都是erupt。

緊接著我們訪問http://127.0.0.1:8888/,看一下是個什么效果,竟然有個完整的登錄頁面。

用上邊的用戶名、密碼直接登錄,erupt已經預先實現了完整的權限控等功能,而到這我們幾乎是沒寫過什么代碼的,都是框架封裝好了的,菜單類數據全部從數據庫動態獲取,一個基礎的后臺管理系統就搭建完了,有點哇塞。

有趣的頁面

那么問題來了?想要自定義頁面怎么辦?

開篇我們就說過erupt是零前端代碼,全部基于Java注解開發的,接下來用Java注解寫個簡單頁面體驗下。

  • erupt有兩個核心注解@Erupt,@EruptField
  • @Erupt注解修飾類,代表定義一個頁面
  • @EruptField注解修飾字段,代表頁面上顯示的字段名
  • @Power注解控制是否操作按鈕,增、刪、改、查、導入、導出等
  • @Search注解表示字段為搜索條件
  • @Table注解表示頁面取數據對應的表,如果不設置,頁面第一次初始化的時候,會根據類字段值自動創建一張和類名一致的表名。

注解類型比較多,不一一列舉了,更多的自己到官網瞅:https://www.erupt.xyz

下邊我們定義一個Student類,加上@Erupt,@EruptField注解,這樣頁面和元素就算寫完了,是不是有點顛覆認知。

  1. /* 
  2.  *  @Erupt注解修飾在類上,@EruptField注解修飾在字段上 
  3.  *  其他注解均為Jpa注解 
  4.  */ 
  5. @Getter 
  6. @Setter 
  7. @Erupt(name = "學生表"
  8.         power = @Power(importable = true, export = true
  9. @Entity 
  10. //@Table(name = "t_student"
  11. public class Student extends BaseModel { 
  12.  
  13.     @EruptField( 
  14.             views = @View(title = "學生姓名"), 
  15.             edit = @Edit(title = "學生姓名", notNull = true, search = @Search(vague = true)) 
  16.     ) 
  17.     private String studentName; 
  18.  
  19.     @EruptField( 
  20.             views = @View(title = "所屬班級"), 
  21.             edit = @Edit(title = "所屬班級", notNull = true
  22.     ) 
  23.     private String studentClass; 
  24.  
  25.     @EruptField( 
  26.             views = @View(title = "學生年齡"), 
  27.             edit = @Edit(title = "學生年齡", notNull = true
  28.     ) 
  29.     private String studentAge; 
  30.  
  31.     @Lob 
  32.     @EruptField( 
  33.             views = @View(title = "學生性別"), 
  34.             edit = @Edit(title = "學生性別", notNull = true
  35.     ) 
  36.     private String studentSex; 
  37.  
  38.     @EruptField( 
  39.             views = @View(title = "考核狀態"), 
  40.             edit = @Edit(title = "考核狀態", notNull = true, boolType = @BoolType(trueText = "通過", falseText = "掛科"), search = @Search) 
  41.     ) 
  42.     private Boolean status; 

但此時新創建的頁面不會顯示出來,還需要我們手動做一個映射關系,在菜單維護中自定義個菜單,類型值一定要為新建的 類名 Student。

保存刷新后會看到我們的新頁面出現了,而且頁面的功能很完整,基礎操作、查詢、導入、導出功能都自動實現了。

頁面新增一個學生信息,對應的Student表也多了條記錄,而這個持久化的過程完全由框架來做。

盡管Erupt 框架對前后端代碼做了深度封裝,但它提供了豐富靈活的自定義接口,來滿足我們的個性化需求。

比如我們在錄入新學生信息時,希望屏蔽名字為張三的同學,可以對頁面按鈕功能做代理dataProxy,實現自定義的邏輯,對哪個按鈕代理就實現對應方法即可,如beforeAdd、afterAdd是對新增按鈕的代理。

  1. @Getter 
  2. @Setter 
  3. @Erupt(name = "學生表",dataProxy = {StudentDataProxy.class}, 
  4.         power = @Power(importable = true, export = true
  5. @Entity 
  6. //@Table(name = "t_student"
  7. public class Student extends BaseModel { 
  8.  
  9. public class StudentDataProxy implements DataProxy<Student> { 
  10.  
  11.     @Override 
  12.     public void beforeAdd(Student student) { 
  13.         //后臺字段校驗 
  14.         if ("張三".equals(student.getStudentName())) { 
  15.             throw new EruptApiErrorTip("名稱禁止為張三!"); 
  16.         } 
  17.     } 
  18.  
  19.     @Override 
  20.     public void afterAdd(Student student) { 
  21.  
  22.     } 
  23.     @Override 
  24.     public void afterUpdate(Student student) { 
  25.  
  26.     } 
  27.  
  28.     @Override 
  29.     public void afterDelete(Student student) { 
  30.     } 
  31.  } 

當我們在頁面錄入名字為張三的同學時,成功屏蔽。其他類似的功能還有很多,這里就不一一舉例了,看文檔看文檔~

如果我們想要按傳統的方式開發接口,不用擔心會和Erupt的頁面生成規則有沖突,絲毫不會受影響。而且Erupt內部集成了JPA,提供了現成的dao接口,只要調用對應API即可上手開發。

如果你不想手寫Java代碼也沒關系,Erupt還提供了代碼生成器,自定義Java類名和字段名,可以生成代碼,直接copy就行了。

說到這我只介紹了Erupt一丟丟的基礎特性,主要是想讓小伙伴知道有這么個敏捷利器。

不僅如此它還支持豐富的數據類型,內置了像定時任務管理、多表聯合查詢、前后端分離部署、接口權限、操作記錄、多數據源、郵件系統、黑白名單等等很多實用功能,都直接調用API就可以用。

說在后邊

Erupt 框架的優點是顯而易見的,快捷、高效、上手容易,對新手相當的友好,但在實際生產環境中我只是用它來做一些配置字典類的數據管理。

因為它的深度封裝雖然讓開發變的簡單高效,可對于業務相對復雜、高度定制的系統來說,Erupt 框架顯得力不從心,更關鍵的一點,它的社區并不算特別活躍,畢竟是個小眾框架。

不過,技術從來都是服務于業務的,如果你的業務與Erupt的氣質相匹配,別猶豫,用它!

責任編輯:武曉燕 來源: 程序員內點事
相關推薦

2025-01-10 14:20:29

2021-01-18 07:52:08

Dom節點Element

2018-05-06 16:26:03

關聯規則數據分析關聯規則推薦

2021-06-18 07:34:12

Kafka中間件微服務

2020-09-14 11:30:26

HTTP3運維互聯網

2023-04-15 20:25:23

微前端

2023-09-07 23:52:50

Flink代碼

2011-05-26 09:03:17

JSONjavascript

2009-11-25 09:02:12

2019-06-14 09:34:59

Linux 系統 數據

2010-03-05 17:28:08

2023-04-12 11:18:51

甘特圖前端

2023-11-30 10:21:48

虛擬列表虛擬列表工具庫

2023-07-26 07:11:50

LVM底層抽象

2012-06-28 10:26:51

Silverlight

2013-06-24 15:32:41

JPush極光推送Android Pus移動開發

2018-08-30 14:31:28

Linux磁盤LVM

2020-12-18 07:33:20

SpringSchedule組件

2023-12-08 13:19:00

前端Reactour流行庫

2010-09-26 16:44:13

點贊
收藏

51CTO技術棧公眾號

91国产精品电影| 在线观看亚洲一区| 国产一区二区免费在线观看| 米仓穗香在线观看| 午夜精品久久久久久久99| 极品日韩av| 亚洲色图18p| 91性高潮久久久久久久| 天堂网在线最新版www中文网| 国产亚洲精品aa午夜观看| 91深夜福利视频| 丁香六月婷婷综合| 亚洲国产精品日韩专区av有中文| 亚洲国产精品久久| 一起操在线视频| 欧美aa在线观看| 亚洲婷婷在线视频| 久久综合给合久久狠狠色| 伊人网av在线| 鲁大师影院一区二区三区| 久久手机免费视频| 人妻少妇无码精品视频区| 视频成人永久免费视频| 在线精品视频一区二区三四| 韩日视频在线观看| 欧美96在线| 91蝌蚪porny| 成人影片在线播放| 91丨porny丨在线中文 | 久久久国产高清| 亚州av乱码久久精品蜜桃| 亚洲欧美www| 国产伦精品一区二区三区精品| 高清av在线| 成人黄色综合网站| 亚洲淫片在线视频| 一区二区视频网站| 日韩电影在线免费| 2019亚洲男人天堂| 日韩成人免费在线视频| 欧美亚洲不卡| 欧美成人免费播放| 91 在线视频| 水蜜桃精品av一区二区| 国产亚洲精品日韩| 色哟哟精品观看| 亚洲成在人线免费观看| 亚洲激情电影中文字幕| 不许穿内裤随时挨c调教h苏绵| 国产色99精品9i| 91麻豆精品国产自产在线观看一区 | 免费影院在线观看一区| 日本精品久久久久| 成人va在线观看| 国产精品一区二区三区观看| 亚洲第一色网站| 丁香婷婷深情五月亚洲| 成人午夜电影免费在线观看| 国产黄a三级三级看三级| 国产一区欧美一区| av日韩中文字幕| 亚洲精品久久久久久动漫器材一区| 国产大陆a不卡| 国产99午夜精品一区二区三区| www.激情五月.com| 成人午夜看片网址| 久久99精品国产一区二区三区| 三级视频网站在线| 国产天堂亚洲国产碰碰| 一区二区三区的久久的视频| 免费黄网站在线| 一区二区三区免费网站| 少妇人妻大乳在线视频| 一区二区三区四区日本视频| 欧美综合欧美视频| 亚洲网中文字幕| 国产精品久久久久久久久久白浆| 亚洲精品不卡在线| 人人人妻人人澡人人爽欧美一区| 久久一区91| 久久6免费高清热精品| 精品国产av色一区二区深夜久久| 麻豆精品少妇| 在线视频精品一| 欧美一区二区三区爽爽爽| 好看不卡的中文字幕| 88国产精品欧美一区二区三区| 中文字幕在线看人| 狠狠色综合播放一区二区| 99热国产免费| 国产高清在线| 亚洲一区二区三区影院| 欧美韩国日本在线| 国产精品777777在线播放| 亚洲第一免费播放区| 微拍福利一区二区| 欧美高清日韩| 国产精品777| 国产高清免费在线观看| 久久久国产精品麻豆| 免费观看中文字幕| 亚洲精品88| 欧美一区二区三区视频在线观看 | 久久久视频精品| 久久精品99北条麻妃| 国产激情一区二区三区桃花岛亚洲| 精品卡一卡二| a篇片在线观看网站| 一本一道波多野结衣一区二区| 超碰在线超碰在线| 国产一区国产二区国产三区| 欧美大片在线影院| 影音先锋国产资源| 337p粉嫩大胆色噜噜噜噜亚洲| 自拍偷拍视频在线| 女生影院久久| 精品国产一区久久| 国产一区二区三区在线视频观看| 亚洲中字在线| 超碰97国产在线| 日本成人网址| 欧美性大战久久| www.色天使| 99国产精品久久久久久久| 亚洲一区久久久| 日日夜夜精品一区| 色婷婷精品大视频在线蜜桃视频| 性活交片大全免费看| 亚洲电影影音先锋| 国产中文字幕日韩| eeuss影院在线播放| 日韩欧美国产一区二区| 国产真实乱人偷精品| 欧美日本在线| 亚洲一区二区三区四区视频| 午夜不卡视频| 精品视频一区三区九区| 亚洲精品国产一区黑色丝袜| 国产精品日韩久久久| 国产精品制服诱惑| 麻豆av在线播放| 日韩一级免费观看| 一区二区在线观看免费视频| 国产在线观看一区二区| 中文字幕一区二区三区5566| 欧美伊人亚洲伊人色综合动图| 亚洲丝袜在线视频| 日韩欧美一区在线| 天天爽天天爽天天爽| 日本伊人色综合网| 日韩一区二区电影在线观看| 裤袜国产欧美精品一区| 亚洲码在线观看| 亚洲熟妇无码乱子av电影| 97久久精品人人做人人爽50路| heyzo亚洲| 亚洲精品亚洲人成在线| 青青a在线精品免费观看| 日本福利在线观看| 在线精品视频一区二区| 夫妇露脸对白88av| 狠狠色狠狠色综合| 欧美日韩午夜爽爽| 国产精品极品在线观看| 欧美性在线视频| 国产在线观看网站| 欧美日本在线播放| 青青草激情视频| 成人黄色小视频在线观看| 欧美变态口味重另类| 国产一级在线视频| 99精品热视频| 日韩无套无码精品| 欧美激情国产在线| 成人自拍爱视频| 桃色一区二区| 久久精品国产亚洲一区二区| 亚洲av无码乱码国产精品| 午夜久久久影院| 国产123在线| 国产麻豆精品在线| 久久久999免费视频| 日韩久久视频| 国产成人精品福利一区二区三区| 最新欧美色图| 免费成人高清视频| 日韩一二三四| 欧美一区二区观看视频| 免费在线观看黄网站| 中文字幕成人av| 俄罗斯黄色录像| 久久久久久久尹人综合网亚洲| 色多多国产成人永久免费网站 | 欧美午夜激情影院| 国产在线麻豆精品观看| 国产www免费| av中文一区| 国产精品yjizz| 狠狠久久综合| 538国产精品一区二区免费视频 | 污色网站在线观看| 国内综合精品午夜久久资源| 欧美一区少妇| 999久久久精品一区二区| 国产91久久婷婷一区二区| 中国av在线播放| 99热精品一区二区| 欧美色视频一区| 午夜69成人做爰视频| 白白色 亚洲乱淫| www.久久av.com| 国产农村妇女毛片精品久久莱园子| 制服国产精品| 国产欧美日韩免费观看| 国产激情美女久久久久久吹潮| 亚洲精品粉嫩美女一区| 久久频这里精品99香蕉| 久草免费在线| 一道本无吗dⅴd在线播放一区 | 日日碰狠狠添天天爽| av一本久道久久综合久久鬼色| 午夜久久久精品| 国产精品亚洲综合久久| 麻豆传媒网站在线观看| 成人免费电影网址| 欧美精品一区三区在线观看| 粉嫩精品导航导航| 91在线视频精品| 色综合久久久| 国产欧美日韩中文字幕| 亚洲精品555| 国产ts人妖一区二区三区| 欧美极品videos大乳护士| 欧美黑人性视频| 日本小视频在线免费观看| 久久成人综合视频| 国产精品va在线观看视色| www国产精品com| 秋霞成人影院| 久久影视电视剧免费网站清宫辞电视 | 欧洲猛交xxxx乱大交3| 中文字幕亚洲一区二区va在线| 五月激情四射婷婷| 欧美国产1区2区| 久久久久久成人网| 国产精品视频一二| 一级二级黄色片| 中文字幕在线观看不卡| 成人黄色短视频| 亚洲色图.com| 日韩av高清在线看片| 亚洲国产成人一区二区| 色婷婷一区二区三区四区| 欧美精品一二三四区| 色综合一区二区| 国产suv精品一区二区33| 日韩欧美精品在线观看| 一级片在线观看免费| 色婷婷av一区二区| 五月天中文字幕| 欧美精品一卡二卡| a在线观看视频| 精品粉嫩超白一线天av| 人人妻人人澡人人爽久久av| 亚洲精品国产美女| 黄色片在线播放| xxxxx91麻豆| 日本高清在线观看| …久久精品99久久香蕉国产| 成人线上视频| 国产一区二区在线播放| 欧美激情三级| 欧美精品人人做人人爱视频| 日韩1区2区| 91传媒免费视频| 免费在线亚洲| www.99r| 成人激情av网| 貂蝉被到爽流白浆在线观看 | 精品剧情v国产在线观看在线| 黄色av一区二区三区| 亚洲美女视频网站| 欧洲不卡视频| 亚洲 日韩 国产第一| av在线日韩| 99电影在线观看| 国产综合久久久| 欧美 日韩 国产精品| 蜜桃视频一区| 两性午夜免费视频| 2023国产精品自拍| 91香蕉一区二区三区在线观看| 午夜一区二区三区在线观看| 中文字幕一区二区久久人妻| 精品国产一区二区三区久久影院 | 美女网站免费观看视频| 国产麻豆精品久久一二三| 第四色在线视频| 国产精品国产精品国产专区不片| 日本熟女一区二区| 欧美久久久久久久久久| 性高潮久久久久久久久久| 俺也去精品视频在线观看| 黄视频网站在线观看| 成人精品福利视频| 国产精品自拍区| 国产 日韩 亚洲 欧美| 激情小说亚洲一区| 微拍福利一区二区| 欧美日韩亚洲视频一区| 国产后入清纯学生妹| 色伦专区97中文字幕| 欧洲亚洲两性| 国产一区在线观| 欧美福利专区| 色网站在线视频| 国产精品视频一二三区| 特级毛片www| 亚洲国语精品自产拍在线观看| 亚洲婷婷噜噜| 91久久精品国产| 久久国产亚洲精品| 在线免费视频a| 久久久青草青青国产亚洲免观| 午夜偷拍福利视频| 日韩久久精品一区| 国产精品剧情| 成人午夜在线观看| 欧美国产一级| 色播五月综合网| 中文一区二区完整视频在线观看| 人人爽人人爽人人片av| 国产婷婷色综合av蜜臀av| www555久久| 国产精品 日韩| 亚洲性视频h| japanese在线观看| 亚洲成人一区在线| 欧美 日韩 人妻 高清 中文| 欧美高清电影在线看| 视频二区欧美| 成人网站免费观看入口| 成人免费视频视频| 国产精品suv一区二区69| 亚洲精品一区二区三区99| av伦理在线| 精品国产乱码久久久久久蜜柚 | 欧美中文在线视频| 亚洲最好看的视频| 成人在线观看黄| 日本一区二区三级电影在线观看| 波多野结衣在线观看一区| 一区二区三区日韩在线| 成人看片毛片免费播放器| 在线不卡日本| 粉嫩av一区二区三区粉嫩| 国产午夜精品无码| 日韩精品在线影院| 日本不卡一二三| 一级做a爰片久久| 国产精品自产自拍| 欧美福利视频一区二区| 亚洲欧洲xxxx| 亚洲欧洲专区| av女优在线播放| 26uuu国产在线精品一区二区| 老熟妇一区二区三区啪啪| 成人444kkkk在线观看| av日韩精品| 粉嫩虎白女毛片人体| 成人免费一区二区三区视频| 精品人妻午夜一区二区三区四区| 久久免费视频网| 欧美日韩国产一区二区三区不卡| 国产探花在线看| 亚洲国产精品久久人人爱蜜臀| 日本大臀精品| 91色精品视频在线| 国产一区二区三区久久| 5566中文字幕| 亚洲国产精彩中文乱码av| 欧洲精品一区二区三区| 麻豆md0077饥渴少妇| av色综合久久天堂av综合| 中文字幕av片| 久久久久久91香蕉国产| 欧美精品乱码| 一级全黄裸体片| 色综合天天综合狠狠| av网站在线看| 欧美日韩一区二区视频在线观看 | 亚洲综合日本| 五月天av网站| 亚洲图片欧美日产| gogo久久日韩裸体艺术| 一级片视频免费观看| 精品久久久久久久久中文字幕| а天堂中文在线官网| 欧美精品七区| 成人av在线电影|