国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

從零讀懂AI智能客服(二):Java 多模塊項目如何協(xié)作:Maven 依賴、Spring 注入與運行時裝配

從零讀懂AI智能客服(二):Java 多模塊項目如何協(xié)作:Maven 依賴、Spring 注入與運行時裝配 本文主題解釋模塊為什么能互相使用以及 Maven、Spring 和公共接口分別承擔什么職責適合讀者剛接觸 Maven 多模塊、Spring 依賴注入和模塊化單體架構的 Java 開發(fā)者代碼基線當前學習分支源碼快照上一篇從零讀懂 AI 智能客服后端架構模塊職責與 SSE 聊天鏈路下一篇AI 智能客服為什么不能照搬傳統(tǒng)三層架構CRUD 與 AI 編排分層對比這里是yurenpai27屆開發(fā)者主要學習 Java 后端與 AI 應用開發(fā)。這里記錄真實項目中的代碼調用鏈、Agent/RAG 工程化、問題排查和開發(fā)復盤。個人理念模塊之間能否協(xié)作不能只看目錄位置必須同時追蹤構建依賴和運行時裝配。寫在前面先說結論兩個模塊放在同一個倉庫里并不代表它們可以直接互相調用。真正決定模塊協(xié)作的是三層機制Maven 負責建立編譯依賴Spring 負責發(fā)現(xiàn)并注入運行時 Bean公共接口負責控制依賴方向、避免業(yè)務模塊形成循環(huán)依賴。本文會以“聊天模塊調用工作流、工作流反向使用聊天能力”為貫穿案例重點講清父子關系、聚合關系和依賴關系有什么區(qū)別admin為什么能夠把多個業(yè)務模塊裝進同一個應用接口放在公共模塊中為什么能避免chat ? aiflow的循環(huán)依賴如何用 POM、import、接口實現(xiàn)和啟動模塊反向驗證一次跨模塊調用。說明本文以當前項目源碼為例重點解釋模塊協(xié)作方法不同項目的模塊名稱可能不同但分析步驟可以復用。代碼說明除明確標注為完整源碼外文中的 POM、Java 代碼和目錄片段均為根據當前源碼整理的簡化示意文中的“已核對”表示完成靜態(tài)源碼核對不等同于啟動或接口測試通過。一、為什么要拆成這么多模塊假設不拆模塊把所有代碼都放在一個項目中src/main/java/com/tst/pharma/ ├─ 用戶管理 ├─ 權限管理 ├─ 聊天 ├─ 知識庫 ├─ 工作流 ├─ AI 流程 ├─ Redis ├─ SSE ├─ 短信 ├─ 文件上傳 ├─ Excel └─ 定時任務時間長了會出現(xiàn)幾個問題1. 所有代碼混在一起不知道屬于哪個業(yè)務 2. 一個聊天模塊也能隨便依賴用戶、短信、工作流內部實現(xiàn) 3. 公共工具被復制多份 4. 修改一個模塊容易影響其他模塊 5. Maven 依賴越來越混亂 6. 新人很難判斷代碼應該放在哪里 7. 無法控制模塊之間的依賴方向。所以項目進行了兩次拆分。第一次按大職責拆分tst-pharma-admin ├─ 應用啟動和組裝 tst-pharma-common ├─ 公共基礎能力 tst-pharma-modules ├─ 具體業(yè)務模塊 tst-pharma-extend └─ 獨立擴展服務第二次在每個大模塊內部繼續(xù)拆分例如公共能力拆成tst-pharma-common-core tst-pharma-common-web tst-pharma-common-redis tst-pharma-common-sse tst-pharma-common-mybatis tst-pharma-common-satoken業(yè)務能力拆成tst-pharma-system tst-pharma-chat tst-pharma-workflow tst-pharma-aiflow tst-pharma-generator這樣就可以做到聊天模塊需要 SSE → 只依賴 common-sse 聊天模塊需要 Web 能力 → 只依賴 common-web 聊天模塊不需要短信 → 就不必直接依賴 common-sms這就是“模塊化”的主要意義不是為了把目錄弄多而是為了劃分職責、復用能力并控制依賴。二、先區(qū)分三個容易混淆的概念項目中有三種關系一定要區(qū)分。1. 父子關系例如子模塊的pom.xml中parentgroupIdcom.tst.pharma/groupIdartifactIdtst-pharma-main-backend/artifactIdversion${revision}/version/parent它表示子模塊繼承父工程的版本號 依賴版本管理 Maven 插件 Java 版本 構建配置但是繼承父 POM不代表父模塊能夠直接使用子模塊的 Java 類。2. 聚合關系根pom.xml中modulesmoduletst-pharma-admin/modulemoduletst-pharma-common/modulemoduletst-pharma-extend/modulemoduletst-pharma-modules/module/modules它表示在根目錄執(zhí)行 Maven 構建時 → Maven 會一起構建這些模塊但是被根 POM 聚合也不等于模塊之間能夠互相調用。例如tst-pharma-chat tst-pharma-workflow雖然都被根項目聚合但如果chat/pom.xml沒有依賴workflow那么chat不能直接隨意導入workflow的類。3. 依賴關系真正決定一個模塊能否使用另一個模塊 Java 類的是dependencygroupIdcom.tst.pharma/groupIdartifactId被依賴模塊/artifactId/dependency例如tst-pharma-chat/pom.xml中有dependencygroupIdcom.tst.pharma/groupIdartifactIdtst-pharma-common-chat/artifactId/dependencydependencygroupIdcom.tst.pharma/groupIdartifactIdtst-pharma-common-sse/artifactId/dependency所以聊天模塊才能使用importcom.tst.pharma.common.chat.domain.dto.request.ChatRequest;importcom.tst.pharma.common.sse.core.SseEmitterManager;可以記成聚合關系 └─ 決定一起構建 父子關系 └─ 決定繼承統(tǒng)一配置 依賴關系 └─ 決定是否能使用另一個模塊的代碼小魚點睛父子關系統(tǒng)一配置聚合關系決定一起構建依賴關系決定能否使用對方的 Java 類。兩個目錄即使緊挨在一起也不會自動產生代碼依賴。三、項目真實的模塊依賴方向整個項目可以簡化成tst-pharma-admin 主應用啟動和組裝 │ ┌───────────────────┼────────────────────┐ │ │ │ ▼ ▼ ▼ tst-pharma-system tst-pharma-chat tst-pharma-workflow 系統(tǒng)管理業(yè)務 AI聊天與知識庫 傳統(tǒng)業(yè)務流程 │ ▼ tst-pharma-aiflow AI流程編排 上述業(yè)務模塊繼續(xù)依賴 tst-pharma-common-* 公共基礎組件更準確地說admin直接依賴tst-pharma-system tst-pharma-generator tst-pharma-chat tst-pharma-workflow tst-pharma-aiflow因此最終啟動admin時這些業(yè)務模塊都會進入主應用。四、admin是怎么把所有業(yè)務模塊裝進來的文件D:\Tools\java\aiwork\tst-pharma-main-backend\tst-pharma-admin\pom.xml它聲明了admin ├─ 依賴 system ├─ 依賴 generator ├─ 依賴 chat ├─ 依賴 workflow └─ 依賴 aiflow構建主應用時Maven 會把這些模塊的編譯產物和依賴一起放進最終應用??梢詫⒆罱K運行的應用理解成tst-pharma-admin.jar ├─ admin 自己的類 ├─ system 模塊的類 ├─ chat 模塊的類 ├─ workflow 模塊的類 ├─ aiflow 模塊的類 ├─ generator 模塊的類 └─ 它們所依賴的 common 類因此運行時主要是一個 JVM 進程 一個 Spring 容器 一個后端端口 6039而不是system 啟一個端口 chat 啟一個端口 workflow 啟一個端口 aiflow 再啟一個端口所以當前主體架構屬于模塊化單體應用不是微服務架構。五、公共模塊是怎么被業(yè)務模塊使用的例子一聊天模塊使用 SSEChatServiceFacade中privatefinalSseEmitterManagersseEmitterManager;SseEmitterManager不在聊天模塊而在tst-pharma-common-sse聊天模塊的pom.xml聲明了dependencygroupIdcom.tst.pharma/groupIdartifactIdtst-pharma-common-sse/artifactId/dependency完整關系是tst-pharma-chat │ │ Maven 依賴 ▼ tst-pharma-common-sse │ ├─ SseEmitterManager ├─ SseMessageUtils ├─ SseEventDto └─ SSE 自動配置于是聊天模塊才能建立 SSE 發(fā)送 content 發(fā)送 done 發(fā)送 error 關閉 SSE例子二聊天模塊使用登錄認證聊天代碼中使用LoginHelper.getUserId(); StpUtil.getTokenValue();這涉及common-satoken common-redis Sa-Token依賴鏈不一定都由聊天模塊直接聲明也可以通過依賴傳遞獲得。簡化理解tst-pharma-chat ↓ common-chat / common-sse / common-web ↓ common-satoken ↓ common-redis ↓ Redis所以一個模塊不一定需要把所有底層依賴都重新聲明一遍。例子三系統(tǒng)模塊使用 MyBatisSysConfigMapperpublicinterfaceSysConfigMapperextendsBaseMapperPlusSysConfig,SysConfigVo{}其中BaseMapperPlus位于tst-pharma-common-mybatis關系為tst-pharma-system │ ▼ tst-pharma-common-mybatis │ ▼ MyBatis-Plus │ ▼ MySQL因此system模塊不需要自己再實現(xiàn)一套分頁、Mapper 基類和數(shù)據庫配置。六、模塊之間不僅靠 Maven還靠 Spring 連接Maven 解決的是編譯時能不能看到另一個模塊的類Spring 解決的是程序啟動后具體使用哪個實現(xiàn)對象啟動類D:\Tools\java\aiwork\tst-pharma-main-backend\tst-pharma-admin\src\main\java\com\tst\pharma\TstPharmaApplication.java位于根包packagecom.tst.pharma;并且有SpringBootApplicationSpring 默認會從啟動類所在包向下掃描com.tst.pharma ├─ controller ├─ service ├─ config ├─ factory ├─ workflow └─ ...即使類分別位于不同 Maven 模塊中只要最后都被admin引入并且包名屬于com.tst.pharma...Spring 就能發(fā)現(xiàn)它們。例如chat 模塊 └─ ChatController └─ Controller chat 模塊 └─ ChatServiceFacade └─ Service aiflow 模塊 └─ WorkflowStarter └─ Spring Bean common-sse 模塊 └─ SSE 自動配置 └─ 注冊 SseEmitterManager它們最后都在同一個 Spring 容器中。七、Spring 依賴注入是怎么跨模塊工作的例如ChatController中privatefinalChatServiceFacadechatService;因為類上有RequiredArgsConstructorLombok 會生成類似構造器publicChatController(ChatServiceFacadechatService){this.chatServicechatService;}Spring 啟動時發(fā)現(xiàn)ChatController 需要 ChatServiceFacade然后又發(fā)現(xiàn)ServicepublicclassChatServiceFacade{}于是完成注入Spring 容器 ├─ 創(chuàng)建 ChatServiceFacade ├─ 創(chuàng)建 ChatController └─ 把 ChatServiceFacade 放進 ChatController雖然它們處在不同目錄甚至不同 Maven 模塊也不影響運行時注入只要滿足1. admin 的 Maven 依賴把兩個模塊裝進來了 2. Spring 掃描到了對應類 3. 類注冊成了 Bean 4. 依賴類型能夠匹配。小魚點睛Maven 只解決“編譯時能不能看見接口和類”真正把接口字段連接到實現(xiàn)對象的是 Spring 容器。只有編譯依賴、Bean 掃描和類型匹配同時成立跨模塊注入才會成功。八、項目中最典型的跨模塊設計common-chat接口橋梁這一部分很重要因為它解釋了chat和aiflow為什么可以互相協(xié)作但沒有在 POM 中直接互相依賴。先看結構tst-pharma-common-chat ├─ IChatService ├─ IChatModelService └─ IWorkFlowStarterService它們只是接口和公共協(xié)議不包含具體業(yè)務實現(xiàn)。聊天服務接口位于tst-pharma-common-chat └─ IChatService具體實現(xiàn)位于聊天模塊ServicepublicclassChatServiceFacadeimplementsIChatService{}關系common-chat └─ 定義 IChatService chat └─ ChatServiceFacade 實現(xiàn) IChatService工作流啟動接口位于tst-pharma-common-chat └─ IWorkFlowStarterService具體實現(xiàn)位于 AI 流程模塊publicclassWorkflowStarterimplementsIWorkFlowStarterService{}關系common-chat └─ 定義 IWorkFlowStarterService aiflow └─ WorkflowStarter 實現(xiàn) IWorkFlowStarterServicechat 調用 aiflowChatServiceFacade中不是直接依賴某個aiflow內部類而是privatefinalIWorkFlowStarterServiceworkFlowStarterService;流程是ChatServiceFacade │ │ 只認識公共接口 ▼ IWorkFlowStarterService ▲ │ 由 Spring 在運行時尋找實現(xiàn) │ WorkflowStarter這樣chat模塊在編譯時不需要直接依賴aiflow。aiflow 調用 chataiflow的WorkflowUtil中使用privateIChatServicechatService;privateIChatModelServicechatModelService;流程WorkflowUtil │ │ 只依賴公共接口 ▼ IChatService ▲ │ Spring 注入實現(xiàn) │ ChatServiceFacade所以整體是common-chat 公共接口和公共請求對象 ▲ ▲ │ │ chat aiflow 實現(xiàn)聊天接口 實現(xiàn)流程接口這叫通過公共契約解耦業(yè)務模塊。小魚點睛把接口下沉到雙方都能依賴的公共模塊目的不只是“集中存放公共類”而是反轉依賴方向業(yè)務模塊面向穩(wěn)定契約協(xié)作避免chat和aiflow在 POM 中相互咬住。九、為什么接口要放在common-chat而不是直接放在chat如果IChatService放在tst-pharma-chat那么aiflow為了調用它就必須aiflow → 依賴 chat同時聊天模塊為了啟動 AI 工作流可能又需要chat → 依賴 aiflow最后形成chat → aiflow ↑ ↓ └───────┘這就是 Maven 循環(huán)依賴。Maven 無法正常處理這樣的模塊關系。當前項目把接口放進公共模塊后變成chat ──────→ common-chat aiflow ────→ common-chat然后由admin同時引入admin ├─ chat └─ aiflow運行時再由 Spring 把實現(xiàn)連接起來。這個設計可以理解為插座common-chat └─ 規(guī)定插座形狀 chat └─ 提供一種插頭 aiflow └─ 提供或使用另一種插頭 Spring └─ 啟動時把兼容的插頭插到插座上十、admin是最終的組裝者這個項目中真正知道“我要同時加載哪些業(yè)務模塊”的是tst-pharma-admin它的pom.xml相當于組裝清單主應用需要 ├─ system ├─ generator ├─ chat ├─ workflow └─ aiflow因此可以這樣理解common └─ 制造公共零件 modules ├─ 制造用戶系統(tǒng) ├─ 制造聊天系統(tǒng) ├─ 制造業(yè)務工作流 └─ 制造 AI 工作流 admin └─ 把所有零件和業(yè)務模塊裝成完整應用十一、數(shù)據庫 Mapper 又是怎么跨模塊加載的配置位于D:\Tools\java\aiwork\tst-pharma-main-backend\tst-pharma-admin\src\main\resources\application.yml其中配置了mybatis-plus:mapperPackage:com.tst.pharma.**.mappermapperLocations:classpath*:mapper/**/*Mapper.xmltypeAliasesPackage:com.tst.pharma.**.domainMyBatis 配置類使用MapperScan(${mybatis-plus.mapperPackage})意思是掃描所有模塊中符合下面規(guī)則的 Mappercom.tst.pharma.任意內容.mapper例如system 模塊 └─ com.tst.pharma.system.mapper.SysConfigMapper chat 模塊 └─ com.tst.pharma.mapper.ChatMessageMapper workflow 模塊 └─ 對應的 mapperclasspath*:也表示不只查當前模塊還會查依賴 JAR 中的 Mapper XML。所以啟動一個admin能夠把多個業(yè)務模塊中的 Mapper 全部注冊到同一個 MyBatis/Spring 容器。十二、配置文件如何影響所有模塊主要運行配置集中在tst-pharma-admin\src\main\resources\application.yml tst-pharma-admin\src\main\resources\application-dev.yml這里配置端口 數(shù)據庫 Redis MyBatis Sa-Token 多租戶 日志 SSE 上傳目錄雖然配置文件在admin但 Spring 啟動后創(chuàng)建的是一個統(tǒng)一環(huán)境。因此system 模塊可以使用數(shù)據源 chat 模塊可以使用數(shù)據源 workflow 模塊可以使用 Redis common-sse 可以讀取 SSE 配置 common-satoken 可以讀取認證配置它們不需要各自維護一套application.yml??梢岳斫獬蒩dmin application.yml │ ▼ Spring Environment ├─ system 使用 ├─ chat 使用 ├─ workflow 使用 ├─ aiflow 使用 └─ common 組件使用十三、數(shù)據庫和 Redis 也是模塊之間的公共基礎設施當前主要業(yè)務模塊運行在同一個應用中并共享MySQL Redis 登錄狀態(tài) 租戶上下文 事務管理器 SSE 連接管理例如一次聊天請求可能發(fā)生chat 模塊 ├─ 從 chat_model 表查詢模型配置 ├─ 從 chat_message 表查詢歷史消息 ├─ 從 knowledge_info 表查詢知識庫配置 ├─ 使用 Redis/登錄上下文獲取認證信息 └─ 使用 SSE 向當前用戶發(fā)送結果但要注意共享同一個數(shù)據庫不代表模塊應該隨意直接修改其他模塊的表。正常情況下應優(yōu)先模塊 A → 調用公共接口 → 模塊 B 的 Service → 模塊 B 的 Mapper → 模塊 B 負責自己的表而不是模塊 A → 直接拿模塊 B 的 Mapper → 隨意修改模塊 B 的表否則模塊邊界會再次被破壞。十四、用聊天請求看模塊之間如何真正協(xié)作一次POST /chat/send背后會經過很多模塊??蛻舳苏埱?│ ▼ common-web / common-satoken ├─ Web 請求處理 ├─ 登錄認證 └─ 用戶上下文 │ ▼ tst-pharma-chat ├─ ChatController ├─ ChatServiceFacade ├─ 場景分類 └─ 模型調用 │ ├──────────────┐ ▼ ▼ common-sse common-chat SSE連接和事件 公共請求對象和接口 │ │ │ ├─────────────┐ │ ▼ ▼ │ aiflow chat實現(xiàn) │ AI流程啟動 模型聊天實現(xiàn) │ ▼ 瀏覽器逐段接收回復如果是普通聊天ChatController → ChatServiceFacade → ChatModelService → ChatServiceFactory → 模型供應商實現(xiàn) → LangChain4j → 外部模型接口 → common-sse → 前端如果是 AI 工作流ChatController → ChatServiceFacade → IWorkFlowStarterService → aiflow 中的 WorkflowStarter → AI 工作流節(jié)點執(zhí)行 → 需要模型時調用 IChatService → chat 中的 ChatServiceFacade → 模型這就是多個模塊之間的真實協(xié)作。十五、extend為什么沒有被直接裝進admin根 POM 聚合了tst-pharma-extend所以執(zhí)行根 Maven 構建時會一起構建monitor-admin snailjob-server但是admin/pom.xml沒有把它們作為主業(yè)務依賴引入。這說明根 POM 聚合它們 ≠ admin 運行時包含它們它們更可能是獨立啟動的擴展服務主后端 └─ tst-pharma-admin 監(jiān)控服務 └─ tst-pharma-monitor-admin 任務調度服務 └─ tst-pharma-snailjob-server所以再次強調聚合 └─ 一起構建 依賴 └─ 編譯和運行時使用十六、當前項目的核心模塊關系圖可以先保存這張圖tst-pharma-main-backend │ ├─ tst-pharma-common │ ├─ common-core │ │ └─ 最底層公共對象、異常、工具 │ │ │ ├─ common-redis │ │ └─ 依賴 common-core │ │ │ ├─ common-satoken │ │ └─ 依賴 common-core、common-redis │ │ │ ├─ common-mybatis │ │ └─ 依賴 common-core、common-satoken │ │ │ ├─ common-sse │ │ └─ 依賴 core、redis、satoken、json │ │ │ ├─ common-web │ │ └─ Web 公共能力 │ │ │ └─ common-chat │ ├─ 依賴 core │ ├─ 依賴 sse │ ├─ 依賴 mybatis │ └─ 定義聊天、模型、工作流公共接口 │ ├─ tst-pharma-modules │ ├─ system │ │ └─ 依賴 MyBatis、Web、認證、租戶等公共模塊 │ │ │ ├─ chat │ │ ├─ 依賴 common-chat │ │ ├─ 依賴 common-sse │ │ ├─ 依賴 common-web │ │ └─ 實現(xiàn) IChatService、IChatModelService │ │ │ ├─ aiflow │ │ ├─ 依賴 common-chat │ │ ├─ 使用 IChatService │ │ └─ 實現(xiàn) IWorkFlowStarterService │ │ │ ├─ workflow │ │ └─ 依賴 MyBatis、Web、租戶、認證等公共模塊 │ │ │ └─ generator │ └─ 依賴 MyBatis、Web、文檔、日志等公共模塊 │ ├─ tst-pharma-admin │ ├─ 引入 system │ ├─ 引入 chat │ ├─ 引入 workflow │ ├─ 引入 aiflow │ ├─ 引入 generator │ └─ 啟動一個完整 Spring Boot 應用 │ └─ tst-pharma-extend ├─ monitor-admin └─ snailjob-server十七、判斷“兩個模塊怎么關聯(lián)”的固定方法以后看到兩個模塊不要憑目錄名猜可以按下面五步確認。第一步看調用模塊的pom.xml例如想知道chat能不能使用common-sse打開 tst-pharma-chat/pom.xml 搜索 tst-pharma-common-sse如果有依賴說明編譯時可見。第二步看 Javaimport例如importcom.tst.pharma.common.sse.core.SseEmitterManager;說明代碼確實使用了該模塊的類。第三步看字段注入類型例如privatefinalIWorkFlowStarterServiceworkFlowStarterService;說明當前類依賴的是接口。第四步查誰實現(xiàn)接口搜索implements IWorkFlowStarterService找到aiflow → WorkflowStarter第五步確認最終啟動模塊是否同時引入雙方查看tst-pharma-admin/pom.xml確認同時依賴chat aiflow這樣 Spring 運行時才有機會把它們連接起來。十八、核心結論結論一目錄相鄰 ≠ 有依賴關系真正的編譯依賴看pom.xml 中的 dependency結論二根 POM 中有 module ≠ 該模塊被裝進主應用它可能只是一起構建。結論三admin 是主應用組裝者它把system、chat、workflow、aiflow、generator放進同一個 Spring Boot 應用。結論四common 提供公共能力和公共接口 modules 提供具體業(yè)務實現(xiàn)結論五模塊之間推薦通過公共接口 Spring 依賴注入進行協(xié)作而不是互相直接依賴內部實現(xiàn)。結論六當前主體不是微服務而是模塊化單體 ├─ 編譯時分模塊 ├─ 代碼職責分模塊 └─ 運行時主要在同一個 Spring Boot 進程最典型的真實關系就是ChatServiceFacade │ │ 實現(xiàn) ▼ IChatServicecommon-chat ▲ │ 使用 │ WorkflowUtilaiflow以及反方向WorkflowStarteraiflow │ │ 實現(xiàn) ▼ IWorkFlowStarterServicecommon-chat ▲ │ 使用 │ ChatServiceFacadechat它們由admin同時組裝再由 Spring 在運行時連接。這個例子基本涵蓋了整個項目模塊化設計的核心??偨Y本文圍繞“解釋模塊為什么能互相使用以及 Maven、Spring 和公共接口分別承擔什么職責”主要分析了父子、聚合和依賴三種 Maven 關系的邊界啟動模塊如何完成業(yè)務模塊的最終組裝Spring 如何跨 JAR 掃描 Bean 并按接口注入實現(xiàn)公共接口橋梁如何控制依賴方向并避免循環(huán)依賴整個過程可以概括為根 POM 聚合 → 子模塊聲明依賴 → Java 使用公共接口 → Spring 掃描實現(xiàn)類 → admin 統(tǒng)一裝配 → 運行時完成調用Maven 解決“編譯時能不能看見”Spring 解決“運行時由誰來實現(xiàn)”公共接口解決“依賴應該朝哪個方向”。三者缺一不可。當前進度[OK] 已經完成已完成主要模塊 POM 依賴方向的靜態(tài)核對已通過接口定義、實現(xiàn)類和啟動模塊還原聊天模塊與工作流模塊的協(xié)作關系[TODO] 后續(xù)繼續(xù)下一篇對比普通 CRUD 分層與 AI 對話編排分層繼續(xù)結合真實請求理解模塊協(xié)作在運行時如何落到方法調用小魚點睛Maven 解決“編譯時能不能看見”Spring 解決“運行時由誰來實現(xiàn)”公共接口解決“依賴應該朝哪個方向”。三者缺一不可。下一篇下一篇將繼續(xù)分析“AI 智能客服為什么不能照搬傳統(tǒng)三層架構CRUD 與 AI 編排分層對比”把本文建立的結構認知繼續(xù)落到具體代碼和對象流上。這篇文章是我在真實項目學習過程中的階段性記錄。不同項目的命名和目錄可能不同但判斷職責邊界、依賴方向和數(shù)據生命周期的方法可以復用。如果內容中還有遺漏歡迎一起交流。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
粉嫩av在线一区二区| 亚洲区限制级| 精品妇操一区二区三区| 欧美传媒| 亚洲无码99| 另类av综合久久| 亚洲一区二区三区春色| 人人摸人人干人人拍97| 99久久综合| 男人干美女| 欧美综合综合| AA级电影三区| 久久久久久性爱视频| 熟女高潮合集-永久久久-成人AV | 乱性AV| 久久无码一区二区二三区性色| 亚洲欧美日韩二区视频| 人妻一区二区三区| 精品九九九九| 91超碰人人| 免费视频一二三区| 国产一级αv免费看片| 色九九九九| 国产成人无码a| 青娱乐 成人娱乐在线| 天天日天天干少妇日| 免费黄色片子| 久9久9精品| 日韩免费大片一级播放| 欧美论理片| 天天插夜夜操| 欧美亚洲系列| 欧美性爱一区| 无色无码| 国产精品日日摸天天碰| 亚洲午夜免费狠狠干| 99re99在线视频| 日本精品高清一二区一本到| 亚洲欧美另类图片| 老熟女91av| 91色婷婷综合久久中文字幕二区| 色妹子A V| 丝袜美腿亚洲| 中出后入| 人人天天欧洲| 东亚亚洲无码高清| 亚洲超碰97| 天色综合网| 2020中文在线一区二区三区| 日韩天天综合| 超碰久热| 日韩av免费一级电影| 97精品97| 天天操天天射天天日| 超碰97首页| 九九AV| 日本一级特级毛片视频| 欧美青青视频| 国产亚洲99久久精品| 九九九热| 97视频一区| 欧美综合骚| 天天日天天搞天天干| 麻豆a'v电影| 深爱激情五月天| 黄色免费网| 综合视频91| 九九香蕉网| 熟女乱3伦999| 97这里只精品| 91欧美成人色站| 日韩欧美aⅴ综合网站发布| 国产视频一区二区在线观看| 老司机深夜18禁污污网站| 日本欧美不卡| 自拍视频大全亚洲专媒视频/一区二区三区 | 亚洲第一综合| 熟妇操花| 久久亚洲天天做| 亚洲成?V人片在线观看福利| 精品国产国产AV| 岛国网址国产| 欧美日韩中文视频播放| 日本超碰97日韩精品人妻| 思思性爱| 久久久亚洲高清不打码| 日韩熟女三十乱伦| 少妇久久久久久久| 色香综合| 日本中文字幕熟妇| 青青草日本中文字幕| 99性视频| 美日韩成人| 超碰成人公开| 97欧美视频| 97精品一区二区视频在线观看| 中文字幕123| 中日韩免费看男女操逼大全| 香港澳门日本三级网站| 中文字幕第页| 国产18精品亚洲精品| 国产自产自拍| A一区片| 9丨久久九九九| 天天草AV| 久久熟女精品不卡一区| 国产精品午夜精品| 日韩精品人妻中文字有码在线| Av色五月| 中文字幕加勒比海高清无码免费视频| 久久久久精| 午夜福利一区二区影院| 黄视频免费| 熟妇熟女一区二区三区| 国产强上视频在线观看| 牛牛久久国产精品视频一二三| 五月天激情视频| 亚洲日韩人妻中文字幕一区| av网站在线观看了| 国产av又色又爽又黄| 欧美色www亚洲国产阿娇要播| 舔足天天操天天射| av亚欧| 亚州国产成人精品女人久久| 综合一区二区影视| 97在线播放 | 9丨久久九九九| 妇女乱色二区| 久久啊啊啊| 久久一区二区三区四区五区| 无码人妻丰满熟妇奶水区毛片| 国产激情av女片自拍| 91丝袜美腿片| 天天舔天天日天天射| 欧美Ⅴ性爱| 国产精品高潮久久久无码| 99热伊人| 中文字幕精品免费一区二区| 天天操夜夜嗨| 国产精选三级在线观看| 91AV老熟女视频| 日夜久久久九九九久| 久干网| 欧美色图人妻| 91欧美大片| AV乱伦国产| 女同亚洲欧美一二三区久久电影| 五月天色色网站| 免费视频a级毛片免费视频| 丁香六月婷| 东京热男人的天堂网| 日韩紧密久久| 中文字幕乱妇免费视频| 国产乱色国产精品免费视| 北约熟女超碰| 丁香啪啪| 久久久久久久一级黄色打同平台| 91爱看| 亚州,欧美在线| 女性91网站| 被窝影院午夜看片无码| 婷婷丁香九月| ?亚洲伊人伊成久久人综合网| 人妻熟女一区在| 中文字幕日韩精品一区二区三区| 婷婷10月天青娱乐| 久草国产在线视频| 婷婷国产精品九区| 热久久九九热| 久久区| 丝袜剧情| 99蜜桃臀久久久欧美精品网站| 夜夜爽妓女| 亚洲色图 综合| 久久综合97| 欧美一级黄片视频在线| 国产60区。| 南澳成人一级片在线播放| 超碰精品国产无码| 野狼激情网| 狠狠干妹子| 亚洲日韩人妻中文字幕一区| 久都青青视频 | 国产乱不卡| yw尤物av无码点击进入麻豆| 欧美乱色| 超碰色综合| 午夜男女爽爽爽在线视频| 亚洲情色一区三区| 91久久免费视频互動交流| 久久九九网| 精品九九九九九九九| 欧美亚洲丝袜人妻制服中文99| 男女性感激情网站| 99操| 国产精品久久天天干| 亚洲夜夜欢无码一区二区| 亚洲情色一区综合| 欧美一级久久久久久久大片动画| 五月丁香婷婷啪啪| 日韩精品国模| 成全在线观看免费观看| 日韩精品人妻一| 翔田千里AⅤHD无码| 91高跟美女在线播放| 天堂蜜桃无码视频一区二区| 97超碰中文字幕| 吻戏激情性巴克| AV乱伦专区| 亚洲日本激情| 亚欧成人综合影院| yiqicaoav| 亚洲第一页第二页激情| 玖玖在线视频| 一本久道久久综合狠狠爱一密臀精| 日本欧美一区二区三区免费| 天天做天天爱天天爽AV| 91大神精品长腿在线观看网站| 加勒比在线视频| 久久九九视频九九视频| 超碰97最新人妻| 日韩综合无码色欲vv| 色哟哟-国产专区| 综合网亚洲| 天天精品| 熟妇色99| 九九精品美女高溯喷水| 酒色综合网| 首页亚洲国产高跟丝袜诱惑视频 | 91久久18禁| 欧美AB在线| 99中出在线| 97免费在线观看| 国产动漫操逼视频| 九九久久玖玖| 国产盗摄美女如厕大神作品在线观看| 日韩免费在线视频观看| 国产99999| 97国产精品国| 国产AV激情无码久久无码| 啊啊啊不要啊啊受不了了视频在线 | 97伦综合| 日韩钢筋无码高清啾啾啾| 岛国激情视频在线观看| 亚洲中文字幕日产无码久久| 91爽啪| 亚州熟女乱伦| 亚洲中字慕不卡| 欧美成人都市人妻| 日本不卡一区二区| 最新av在线| 午夜精品视频777| x97av| 日韩一性一交一A片俄罗斯 | 国产精品成人AV片免费看网站| 日本人妻最新在线中| 四虎免费看黄| 天天综合91在线| 亚洲欧洲自拍图片专区满春格| 91在线/欧洲| 91狠狠色丁香婷婷综合久久| 久久久无码av精| 香蕉精品二区二区 | 中文字幕天天天天天| 亚洲人妻中文高清| 欧美亚洲情色| 91制服丝袜| 91中文精品日韩欧美在线| 成人性爱电影一区二区| 超碰国产精品无码| 日本一区二区三区四区五区六区七区八区九区| 久久神马影院| 欧美色66| 人妻少妇色综合| 人人操人人摸人人看人人干| 白丝AV| 久久一二三四五六七八九区区| 90后性网国产欧美| 另类TS人妖一区二区三区 | 色五月激情网| 成人性爱全视频观看| 国产真乱mangent| 国产精品97超碰| 日本999精品视频| 欧美论理片| 熟妇乱伦一区二区| 十八禁电影伊人网| 免费在线观看AV无码网站| 性爱欧美五月| 免费超碰97久久| 天综合网| 亚洲性高潮| 亚洲精品久| 另类图片五月天| 蜜桃av色偷偷av老熟女| 久久久久久波多野吉衣高潮| 91精品国| 国产热av| 亚洲drav色图| 插入粉嫩少妇视频| 97精品国产97久久久久久户外免费| 十八禁的黄污污免费网站| 男人女人18禁片免费看网站| 国产精品午夜AV完会免费 | 久操在97| 中出后入| 操死我了啊啊啊| 在线一区| 超碰天天操你比| 久操大香蕉手机视频在线看| 偷拍精品一区二区三区| 中文字幕国产在线天堂| 97超碰人人模人人拍人人| 欧美色院| 玖玖爱在线视频免费观看| 日韩综合97p| 肥臀熟女一区二区三区视频| 伊人欧美大香蕉视频| 国产精品3| 激情综合网一盗摄| 超碰97久| a片在线播放| 日本一区二区亚洲综合| 夜夜草我| 久久久久久久久成人av解说| 无遮挡h肉动漫在线观看| 国产无码一二三区| 国产精品熟女乱伦| 欧美黑人XXXⅩ高潮交| 日本一区二区三区欧美日韩中文字幕| 九九热免费国产视频婷婷伊人| 日韩AV片| 久久111| 97超碰免费人人性爱| 躁躁日曰躁2020| 亚洲无限观看| 加勒比综合a∨| 亚洲.欧美.丝袜.中文.综合| 加勒比无码一区二区三区| 五月丁香综合啪啪| 国精品一区二区三| 啊嗯嗯啊好大好爽| 欧美日韩精品久久久久久久久东北老熟妇 | 91精品国产91熟女| 999久久久免费精品国产牛牛| 97精品一区二区视频| 国产一级特黄大片处女| 一本一道vs波多野结衣| 欧苏综合色综合| 少妇一区二区三区在线观看| 久久999久| 操淫穴亚洲五月丁香| 99蜜月精品久久| 97欧美日韩| 亚洲天堂五月天国产| 操B在线观看| caorenqi shipin| 91爱看| 97视频在线观看免费高清| 一区AV| www成人啪啪18秘 免费| 久久亚洲骚逼综合| 亚洲欧美激情小说| 小视频玖玖| 区日韩亚洲乱码av电影| 超碰97在线中文| 久久精品国产亚洲AV先锋| 成人八戒网站| 宗合情欲网| 国产精品欧美在线观看| 人妻中文字幕日韩电影| 97超碰亚洲| 久久久97| 97 亚洲 日韩 欧美 在线| 加勒比av网| A一区片| 床上啊啊啊一区二区三区| 亚洲色91C| 男人的天堂网页| 日少妇亚洲版| 啊啊啊操死我了| 嗯嗯啊啊啊好爽| 中文字幕一区二区日韩网| 综合五月天| 熟女精品一区二区在线观看| 亚洲中文字幕在线视频一区二区| 18禁在线视频| 肉丝网站91| 天久久久噜噜噜久久国产精品爽爽| 欧美黑人精品一区二区| 蜜桃精品视频一区| 另类TS人妖一区二区三区| 超碰97起碰| 欧美劲爆第一页| 精品毛片久久久精品毛片| 国精综合一二三区影视| 国产白丝AV| 婷婷亚洲综合| 97免费视频在线| 91干熟女| 少妇99成人麻豆| 国产精品经典一卡久久久| 亚洲色资源| 久草精品国产99| 青青草在线视频人人想人人上 | 久久久九97| 国产AV天美| A片大香蕉在线| 91男女啊啊啊| 美女久久久| 91精品国产综合久久久蜜臀| 大香蕉78| 看日韩美女二区三区免费操逼视频 | 精品日韩中文在线| 色天堂综合| 精品高清一区二区三区三州| 91激情综合| 操我无码| 亚洲人天堂| 天天色悠悠激情| 日韩极品无码B| 国产精品视频播放| 亚洲国产精品成人无码久久久| 国产精品粉嫩福利在线| 久久99综合| 久久九色| 97丝袜亚洲在线播放| 精品无码一区二区三区色欲| 综合激情一一91| 久久久九九网站| 超碰97中文| 色婷婷综合久久中文字幕雪峰| 麻花豆传媒剧国产MV出差| 超碰社区97| 亚洲欧美精品一区天堂久久| 欧美日韩激情无码专区| 青青草依人大香蕉| 91成人在线| 欧美黄片视频在线观看免费 | 精品人妻一区二区三区视频| 99色热| 91在线免费精品视频| 久久超碰大香蕉| av资源在线播放天堂| 欧美色图综合网| 国产成人天堂| 中文字幕老熟妇黄色视频| 亚洲AV无码秘 蜜桃臀国精产品| 动漫区日韩区欧美区| 久久婷婷伊人| 欧美不卡二区| 精品一级毛片在线观看| 91l欧美在线| 天天流夜夜操| 日本一区二区不卡精品| 亚洲无码电影久久久| 91 国产丝袜在线播放-百度| 欧美色图亚洲特色| 91美女丝袜诱惑视频| 国产操逼视频在线观看| 狠狠干91| 99热精品在线观看| 99久在线精品99re8| 日本三级人妻a人妻一在线| 2017人人操,人人摸| 先锋女优在线观看视频| 亚洲久久东京热一二三四五区视频| 欧美18禁91| www.99视频| 日逼国产| 久久久久久日韩| 神马午夜久久| 骚女天天综合网| 久久精品99久久久久久| 青青欧洲黑| 按摩中文字幕| 国产精品免费美女视频| 亚洲无吗在线视频| 人妻干天天| 插入逼91| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 日韩在线观看AV| 中国小夫妻勾搭露脸淫荡对白| 人妻熟女一区在| 99操| 天天综合精品| 志村玲子视频一区二区| 日韩国产中文字幕| 婷婷激情啪啪| 激情网五月天| 欧美性天天影视| 人妻激情偷乱视频一区二区三区 | HEYZO高无码国产精品227| 伊人国产成人av网站| 亚洲久久久| 97ai亚洲| 国产精品剧情| 亚洲高清自拍| 亚洲一级黄色毛片| 日韩AV无码网站| 一级人妻性爱视频| 中文字幕五月婷婷免费| 呦呦一区| av三级电影在线播放| 亚洲女人毛茸茸91| 高潮9999外国| 嗯嗯啊啊操我| 桃花色综合影院| 人人干黄色| 强奸乱伦大香蕉| 成人aⅴ一区二区三区| 另类 日韩 熟女| 91强热人妻| 色色色999| 男人的天堂2010| 欧美一区二区日韩传媒搭讪精品| SS久久| 国内外毛片在线观看| 超碰97资源网亚洲| 超碰97中文| 久久性爱视频99| 久干9操| 秋霞免费AV| 这里只有精品视频| 欧美大香蕉在线观看| 日韩丝袜高跟制服在线观看| 久久久性少妇| 日日夜夜免费| 国产精品点击进入在线影院高清| 一级黄色性爱裸体视频| 日韩性爱小视频在线观看| 99天堂网| 国产精品电影推荐| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚洲春色欧美激情自拍| 久久久久亚洲av综合波多野制衣| 精品一区二区综合熟妇| 国产精品午夜高潮呻吟久久av| 少妇干B| 日韩人妻一区二区精品| 色老汉色| 蜜桃午夜视频一区二区 | 精品少妇人妻| 九九综合九九综合| 日本护士高潮| www.99热在线只有精品| av天堂加勒比| 精品高清一区二区三区三州| 色综合99| 天天日熟妇| 欧美国产精品久久九九| 欧美色色色| 天操老女人| 9超碰免费| 国产精品99久久久www| 超碰在线日韩一区| 看大黄色大片原件| 一本一道人妻久久一区二区三区| 亚洲天堂资源| 人人人干干人人干| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久亚洲不卡一区二区三区 | 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美系列在线一区二区| 国产欧美一区二区| 亚洲色图欧美| 激情久久久| 亚洲的天堂网| 久久性爱视频99| www.狠狠干.coom| 天天综合网入口~91| 麻豆三极片| 色av中文字| 亚洲综合色图欧美| 日本 欧美 国产一区| 好看的久久不射无码影视影院| 97精品久久| 激情小说五月天| 超碰97综合网| 久久久久国产精品喷潮免费观看臀 | 思思热国产在线视频| 蜜桃久久久久久| 激情文学88| 国产成人网| 亚洲深夜福利| 亚洲黄色影视| 久久啊啊| 2020中文字幕| 亚洲天堂男人| 日韩一区二区精品视频| 中欧人妻丝袜中文字幕| 久久亚洲不卡| 18禁止看精品中文字幕| 草蕉影视亚洲无码| 加勒比在线观看一区二区| 男人天堂站| 日韩黄色片子| 亚洲美女 晚间男人天堂| 欧美一区二区日韩三区| 午夜啊啊啊| 亚洲系列第一页| 日本久久999| 插欧洲美女欧美精品| 欧美日韩妖精91com| 亚洲午夜AV| 亚州性色| 色五月69夫妻| 操逼片国产| 久热精品在线| 精品少妇后入一区二区三区四区人妻巨乳| 97视频在线| 佐山爱中文字幕| 中文字幕中文字幕一区二区| wuyechaopeng| 中文字幕啊啊啊在线观看视频| 啊啊啊啊好多水| 色婷五月| 在线日韩精品一区二区三区| 九一综合精品视品av| 日韩在线一区高清在线| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 日韩欧美中文字幕搭讪巨乳美人妻视频| 99re国产中文字幕| 2023天天操夜夜操| 男啪女色黄无遮挡免费观看| 国产精品欧美日韩久久| 91激情国产| 天天摸,夜夜摸| 国产无码精品成人| 国产欧美日产一区二区三区 - 国产欧美日| 最近2019中文字幕国语免费版| 91美女片在线| 躁躁日曰躁2020| 一区二区三区精品视频| 日韩欧美日韩| 96精品一区| 欧美性特| 国产一级黄色片在线观看| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| av大香蕉网站| 国产欧美一区激情交| 亚洲中文字幕精品一区| 欧美色图小说综合| 欧洲乱码视频| 久草国产在线视频| 91无码西班牙视频在线| 婷婷探花久久精品一区| 欧美黄色图片| 亚洲另类综合欧美| 午夜爽爽爽在线观看永久入口姬片| 91亚洲情色| 久久99草| 精品97精品97| 狠狠狠狠狠干| 蜜桃av综合网发布| 日韩激情毛片一级久久久| 综合第一页| 98超碰日本| 蜜奶av| 免费A V在线| 天天干人人干天天日97| 中文久久久| 97欧美资源| 大香蕉琪琪日本女优不卡| 美女超碰978| 国产精品久久久久久久毛片1| 亚洲综合首页| 五月天九九日国产精品一区二区三区| 日韩紧密久久| 啊啊啊啊嗯嗯嗯用力好爽 | 国产伊人精品在线| 龙兴卡官方查询| 三上制服丝AV| 亚洲国产综合久久天堂| 99精品在线播放| 亚洲暴力强奸AV| 日产欧美电影一区二区三区| 日日夜夜精品视频| 日韩人妻无码不卡网站| 国产91美女视频| 欧洲精品欧洲精品| 大香蕉一人在线| 观看免费区二区三区二| 亚洲综合小说另类图欧美视频激情小说色五月天| 国产一区二区精品久久99| www熟女乱伦com| 99精品国产户外露出| 特色a在线上| 无码粉嫩白虎一线天b区| 97超色| 91欧美巨乳| 天天草AV| 亚洲天天精品| 91欧美www| 一卡二卡三卡| 欧美熟妇色| 一本色道熟妇| 天天cao在线| 友优传媒精品在线一区二区| 91网站18禁| 91丝袜在线播放| 啊啊啊啊好多水| 天天综合-91入口| 久久加勒比| 国产精品香蕉| 91爱剪切久久| 亚洲āv网址在线观看| 丝袜人妻av一区二区| 2025年A片视频精品| 亚洲一卡二卡在线免费| 国产女人和拘做爰视频| 日韩在线观看字幕精品| 丁香激情五月天| 国产天美欧美| 亚洲大色堂| 97超视频在线观看| 蜜桃一区二区三区| 爱丝福利| 操逼操逼操| 亚洲精品尤物yw在线影院| 超碰在线香蕉| 国产麻豆一级精品视频| 欧美综合自拍成人自拍第二十页| 久热伊人99re| 久久久久精| 久久99草| 99在线观看视频在线高清| 97在线免费视频观看| 国产h小视频在线观看免费| 久久久久久久免费A片国产成a人亚洲精∨品无码| 黄片免费日韩| 不卡av免费在线网址| 久久久亚洲欧美综合| 超碰99在线| 国产精品成人无码av| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲少妇激情一区二区三区| 女上位精品在线| 亚洲人妻爽爽爽| 亚洲欧美国产中文视频| 十八禁成人网站在线观看| 91丨九色丨东北熟女| 99久久com免费视频′| 青女在线| V A在线| 欧美黄片欧美黄片xxx| 国产女人高潮视频| 99热18这里只有精品| 60秒不遮不挡| 波多野结衣先锋影音| 丁香成人五月天| 艳尻美人妻| 国产精品丝袜在线| 中国乱伦一区二区| 97视频观看| 91综合天天看| 91人妻做a观看视频| 97九色人妻| 欧美淫乱视频| 中文字幕一区二区日韩网| 婷婷久草一区二区三区| 欧美玖玖爱免费玖玖| 欧美国产精品久久九九| 婷婷导航| 人妻熟女一区二区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 色哟哟精品1精品2| 无码137片内射在线影院| www久久久| 激情五月天校园春色网| 免费无码婬片AAAA片直播色戒| 去干网最新版| 丰满人妻一区二区三区四| 亚洲丨在线| 欧美操逼熟女| 久久国产精品熟女人妻| 欧美人妻少妇| 日韩人妻精品久久久久| 亚洲精品电影| 欧美成人黄网色网站| 日韩欧美被操黄免费观看| 国产精品人妻无码久久久互動交流| 国产在线精品偷| 校园春色亚洲无码| 日韩操逼性鲍| 天美一二三在线观看Av| 免费操逼91| 怡红院视频在线| 久久在肏| 天天做天天爽| 中文久久久| 大香蕉碰碰| 91综合网在线| 亚洲性爱高潮影院| 亚州性色| 高凊专区人人操| 好属操| 素人播放一区| 呦呦一区| 欧美中文字幕一区 | 欧美黑人91| 蜜乳AV网址| 国产人妻精品一区二区三区秋霞 | 久久久久亚洲精品| 激情文学88| 日韩精品三区四区| 91久久免费视频互動交流 | 秋霞免费AV| 亚洲国产亚洲天堂| 女人爽到高潮潮喷18禁网站| 天天干人妻视频| 玖玖玖玖精品国产剧情| 日韩精品一区二区人人人| 色婷婷电影网| 神马久久午夜| 日日干夜夜操视频h| 午夜精品久久久久久久久久蜜桃 | 国产99 中文字幕日韩小视频| 91久久国产精品| 午夜免费视频1000| 免费成人自拍视频在线| 精彩国产视频播放1区2区| wwwxxx日本爽| 亚欧操逼片在线观看 | 国产精品制服丝袜清纯唯美| 91网站在线播放| 色婷视频| 亚洲A曰本VA欧美VA视频| 天天综合麻豆视频| 丁香五月激情婷婷| 人人操人人色网| 国产精品视频| 中文字幕在线高清男人的天堂| 中文字幕免费在线观看| 夜夜嗨AV一区天天| 亚洲国产成人7777| 伊人午夜福利视频| 六月婷激情福利天堂69| 国产一区二区三区免费视频在性观看| 97中文字幕一区| 亚洲国产综合久久天堂| 日韩A优精品在线观看| 天天久久久久久| 亚洲精品国产AV天美传媒| 一区二区三区视频在线观看免费| 超碰九区| 亚洲男人的天堂网| 亚洲 日本 一 二 三| 日韩欧美午夜一区二区| 在线啊啊啊| 亚州中文字幕超碰97| 婷婷激情五月综合| 九九九久久久| 精品欧美日韩在线观看| 丝袜六区| 色欲日韩欧美在线一区| 国产1024在线播放| 狠久久| 亚洲综合在线高清| 国产精品美女在线一区| 欧美天天性| 欧美激情久久久久| ′ !γ}丶。。久久精品欧美一区二区三区| 在线播放免费av福利片| 97久久国产精品女不卡| 综合网~91综合网| 欧美色偷拍 | 国产成人超碰在线| 欧美日韩小说| 加勒比AV天堂| 嗯……啊…嗯嗯…啊…好舒服| 婷婷五月成人| 婷婷中文网| 人妻献身系列第54部| 天天噜| 日日干日日摸| 青青三级视频| 超碰资源亚洲97| 色五月婷婷网| 99精品久久久久久久婷婷蜜桃| 国产乱伦亚洲| 日本韩国国产精品一区| 麻豆成人影音在线| 天天综合欧美黑人| 九九九九精品一区| 色爱欲亚洲| 三级片大波波| julia在线观看久久| 婷婷成人五月天| 久久九九网| 色噜噜人妻丝袜a∨先锋影| av在线播放国产一区| 九九碰九九爱97超| 色九久| 操久久久久| 亚春色色| 俞拍久久国应视频| 久久久涩| 60秒不遮不挡| 91欧美经典| 久久久久九九九九九| K8久久久久| 97超碰这里只有精品| 亚洲精品一区二区免费在线观看| 国产性刺激| 中文字幕少妇色| 欧美激情 日韩精品| 高清不卡一二三区视频......| 久99视频| 天天舔天天| 人妻天天夜夜爽一区二区| 色丁香五月婷婷| 9/A片| 午夜精品久久久久久久99热影院| 欧美 综合| 亚洲色资源| 九九九九97| 国产精品一区二区三区免费视频| 国产免费内射视频| 91亚洲情色| 翔田千里无码一区| 久久国产免费激情视频| 不卡一区二区日本视频| 亚洲成a人在线观看久| 亚洲欧美日韩夜夜| 超碰99在线| 午夜激情床戏激情| 60秒试看最爽10分钟网站| 欧美91精彩| 欧美综合色图片| 9Ⅰ老熟女| 欧美激情视频在线一区| 高清无码一区二区三区| 污污汅18禁网站在线永久免费观看| 蜜乳AV色欲AVAV无码| av中文在线| 夜夜夜久久| 综合91网| 欧美综合网在线| 亚洲一区操| 国产 日韩 另类 视频一区爱| 网页导航五月天免费一二三区| 国产一区二区三区免费视频在性观看| 日韩丰满熟妇| 日韩精品一二三四| 日日夜夜青青草母狗| 97超碰总站| 酒色综合网| 国产女人高潮嗷嗷嗷叫小说 | 国产亚洲日韩欧| 国产黄色av大片网站| 淫淫总合网| 成人在线午夜视频一区| 97精品网| 欧美日韩国内不卡| 午夜天天碰综合视频| 欧美少妇性乱| 亚洲色天| 亚洲无码久久久久久久| 另类综合另类| 激情综合av| 久久这里只有精品9| 日韩 欧美 视频 在线 一区| 亚洲色吧网| 极品后入免费视频| 欧美日韩另类激情图片| 在线观看成人性爱免费小视频| 婷婷综合五月| 91久久久视| 亚洲一区二区AV| 老司机老司机午夜影院| 800zy一区二区| 人妻熟女一区二区三区视频| 亚洲性爱乱操x| 日本三级韩三级99久久| 日韩特一级久久| 亚洲阿v天堂无码z2018| 情侣开房子拍 日韩无码 女的很漂亮| 手机av亚洲丝袜美腿日韩第一页二页| 思思热一热婷婷热一热| 在线无码操| 18精品一区| 一区二区三区一亚洲中文字幕、综合区灬 | 天天综合香 ld视频| 亚洲精品97久久| 91黑人无码激情在线| 日韩97超碰中文字幕| 国产白丝网站| 精品一区二区人妖| 青青草色情网站视频| 东京热天堂网| 久99热| 97久久超碰日韩精品| 成年人性爱日韩| 99色婷婷中文字幕乱色| 草草草草视频| 依人大香蕉| 黄站在线免费观看| 国产麻豆福利av在线播放| 国产精品视频在线播放| 免费家庭乱伦视频| 看黑人AV不卡| 99在线观看视频在线高清| 日韩欧美字幕亚洲一区二区 | 亚洲色图久久成人| 久久二| 久操黄色视频| 欧美性爱一区二区 | 国产人伦a片信息免费片| 国产盗摄美女如厕大神作品在线观看| 无码精品久久久久久亚洲| 91狠婷| 日日噜噜夜夜狠狠视频无| 天天日天天舔东京热| www久久国产精品| 夜夜操天天肏| 国产在线综合福利网站| 久草视频制服诱惑| 精品免费视频国产一区| 亚射在线| 国产一区二区三三视频| 婷婷色香| 日逼逼免费看| 青青草国产亚洲精品久久| 色欲Av人妻精品一区二| 欧美精品双插| 久操网无码在线| 可乐操亚洲蜜911| 五月婷婷色| 97爱爱爱| 又大又白奶子| 欧美真人抽搐一进一出gif| 丝袜天堂| 欧美精品久久久久久久久88| 欧美色图99| 日本一级二级三级网站| 中文字幕一区二区无码成人| 欧美性猛交美女自慰91| 女欧美一区二三区| 亚洲诱惑天堂| 爱射综合| 精品一级毛片在线观看| 欧美 熟女 日韩| 黄网色一区二区三区四区精品| 精品国产99999| 中出91| 99在线免费公开视频| 在线电影亚洲色图| 久久尹人大香焦视| 免费精品中文字幕| 国产蜜臀在线| 亚洲18禁| 亚洲欧美国产va在线播放频| 欧美色色人| 99视频内射三四| 91精品人妻| 91av天美性媒精品视频| 午夜福利视频在线一区| 久久九九热| 91人人爽人人爽| 韩国黄片aaaa| 超碰99re| 精品无码久久久久| 狠狠干综合| 伊人五月天婷婷| 九九九国产精品| 美女的肌被草喷水视频| 日本日皮视频逼| 国产精品白丝| AV色五月| 欧美日韩人人精品| 一区二区三区机械有限公司| 亚洲伊人久久综合97| 欧美日韩系列| 精品久久九| 久久久久久久一级黄色打同平台| 中国一级特黄大片护士| 少妇综合网| 97欧美色| a人欧美综合天堂麻豆| 国产精品色色| 精品国产乱码久久久久久口爆网站| 97在线免费观看| 日韩精品啪啪啪| 高清肉丝中文无码| 东北夫妻性偷拍| 欧美亚洲日韩人妻在线观看| 欧美经典一区二区三区| 国产黄色剧情影片麻豆免费播放| 欧美色97| 综合激情一一91| 亚洲AV高潮| 丝袜综合色图| 六六久久日韩不卡| 留下AⅤ黄色片| 国产精品露脸在线观看| 成人怡红院| 久久春色| 国内一级精品| 夜夜嗨免费视频| 天天插天天操天天摸天天射天天看| 亚洲欧洲美腿丝袜| 天天干一干| 丁香六月激情综合| 黄片直播三级黄片两女一男| 襙一襙| 午夜小电影在线插入淫高潮| 久久久精选| 日韩中文字幕宗合在线| 久久超碰亚洲人| 国产欧美日韩女同性恋ww喷水精品 | 熟女91网| 亚洲综合情色| 欧美论理片| 精品无码人妻一区二区免费蜜桃| 欧美白嫩女HD| 97色97好| 天天综合欧美综合| 一区二区三区四区五区高清无码永久视频| 91操操| 丁香六月啪啪| www.久久爱| 国产精品一二三区福利| 五月婷婷六月天| 天天日少妇逼AV| 亚洲日韩肥臀视频在线观看| 日韩三级一区| 黄色二级片网站| 日本天堂网| 久久久久国产亚洲一区欧美色图日韩| 国产suv精品一区二区四| www.狠狠干.coom | 色色97爱| 色噜噜狠狠色综无码久久合欧美| 国产精品天堂| 夜草网站| 亚洲啪啪视频免费| 性爱乱伦视频免费| 国产91精品福利在线| 人人摸人人摸人人干| 亚洲高清无码在线桃色| 嫩草影院在线观看精品| 欧美,日韩,亚洲视频| 操碰91| 98一区二区精品| 亚洲综合有玛| 狠狠做深爱婷婷久久二区| wuyechaopeng| 精品999一区二区| 三上悠亚在线毛片91| 91精品久久久| 国产精品国产亚洲区艳妇糸列| 91九色网| 日本三级韩三级99久久| 99热aaa| 久久久九九九九| 性欧美91| 自拍偷拍 日韩欧美| 亚洲国产尤物yw在线观看| 深田咏美亚洲精品福利社|