色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
性色高清..……| 97爱啪| 精品无人区麻豆乱码1区2区图片 | 97人肏| 亚洲精品黑丝| 激情专区综合| 精品无av| 国产高潮AA片免费看| 性爱视频无打码在线观看| 欧美夜夜狠| 久久久久96| 无码WWW免费视频网站| 国产精品天干天干综合网麻豆| 超碰97欧美日韩| 欧美男人亚洲天堂| 操屄不卡视频| 91精品老女人| 色av中文字幕| 日韩一区二区三区四区五区| 亚洲一区二区三区欧美日韩| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 国产黑白丝在线| 色香欲综合| 五月丁香激情综合| 色妺妺AⅤ| 色九月婷婷| 欧美美女视频| 久久日本熟女精品一区| 98色网| 国产91影院| 日本精品性生活久久久| 日韩精品99999| 精品无吗m| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 蜜桃色院一区久久| 91黑丝少妇| 日韩精品资源专区二区| 囯产精品久久久久久久久久二区三区| 欧美大色交| 嗯嗯,啊啊,国产精品| 久热91| 人妻少妇精品久久久| 亚洲成人av色网| 日本三级网页| 久久青青草原免费视频| 综合色欧美| 成人热久久精品| 人妻夜夜爽天天爽麻豆三区网站| 超碰97最新人妻| 欧美Aⅴ| 啪啪91| 精品日韩中文在线| 亚洲国产ⅴ高清在线观看| 超碰在线欧美性爱激情| 一区二区三区 丝袜 高跟 美腿| 亚洲国产另类在线中文| 秋霞午夜成人福利片片| 乱人乱色一区二区三区免费| 超清中文乱码字幕| 波多野结衣被操50分钟免费视频| 青青草吊丝| 99久久九九| 婷婷爱五月| 激情看片网站| 天天肏美女| 91 国产丝袜在线放观看| 国产三级在线现体验区| 国产精品久久久久久久AV大片| 懂色中文一区二区三区| 99综合网| 精品日韩| 大香蕉日韩欧美| 亚洲人在线成线成人| 中文不卡视频| 好爽免费视频,| 国内一区二区三区| 日韩偷拍色图| 超碰 国产熟女精品一区| 久草精品一区 | 亚洲综合一| 伦理第一页| 中文字幕视频在线观看| 九九视品黄色| 亚洲 自拍偷拍 欧美| 国产精品一区二区手机看片| 制度丝袜99| 免费视频无码| 亚州,欧美在线| 91蜜臀在线久久久久| 青青草视频这里只有精品| 成人一级性爱| 亚洲欧美日韩精品久| 韩国女主播青草福利视频| 天天操天天插| 一级婬片120分钟试看| 黄片www.| 五月丁香色色网| 性生活无遮挡纯毛片在线看| 神马久久久久久久久久久久| 一区二区三区精品黑丝白丝酒店对鸡 | 日本黄 R色 成 人网站| 欧美欧美啪啪视频| 天天做日日做| 国产乱不卡| 久久久久久久久久久精| 粉嫩av平台| 超碰av人人人| 久久性爱视频99| 天天综合影院91| 亚洲,日韩,欧美,成人播放 | 国产成人无码网站在线视频| 色香91| 亚洲 欧美 小说| 在线观看综合精品亚洲| 色踪合AV| 女人的久久久| 精品一区二区成人| 欧美人妻少妇| 91人人| 欧洲与亚洲欧美精品中文字幕| 另类图片天天影视| 亚州图片第一页| 91久久精品蜜臀| 一中国女人毛片水真多| 国产精品另类一区大香蕉| 性爱视频免费网址| 国产一级不卡在线观看| 可以在线观看AV的网站| 婷婷色婷婷| 日韩人妻一二三区视频| 第45页一区二区| 青青草一区二区高清无码视频 | 黑人精品欧美一区二区蜜桃| 国产中文字幕曰本毛片| 亚洲狠狠入| 99热综合| 青娱乐999| 99精品网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 五月丁香啪啪| 久久久精品,3| 男人的天堂啪啪| 思思热在线视频免费| 亚洲爱爱视频一区二区| 成人自拍三级在线观看| 人妻精品综合中文字幕在线 | 333kkkk·亚洲com久久| 91美女小视频| 天堂国产AV| 狠狠操夜夜| 日本天天干天天操一区| 热久久这里只有精品| 97丝袜亚洲在线播放| 精品v日韩欧美国产| 日夜精品| 97网址97| 五月天伊人| 亚洲一本大道中文字幕无码在线| 日本三级韩国三级美三级91| 亚洲精品一区二区三区新线路| 日韩黄片视频试看| 九九九精品| 久久爽爽精品| 欧美色图天堂在线| 欧美麻豆成人同性GⅤ在线| 亚州色综合| 吉川爱美98堂在线| 日韩精品一二三四| 日韩操啪| 视频二区熟女人妻| 精品一区二区啪啪啪| 亚洲毛片基地专区| 探花精品 一区二区| 美女黄站| 丝袜美腿91| 欧美韩国你懂得在线 | 日日摸天天爽夜夜欢| 欧美热图99| 久插不卡| 久久中出在线| 日本有码久久| 插欧洲美女欧美精品| 欧美经典一区二区三区| 青娱乐亚洲自拍| 无码精品人妻一区二区三区妖精 | 欧美在线91| 天天摸夜夜摸| 亚洲AV操| 国产精品网址| 亚洲熟女综合| 天天综合网久久ww| 久久久久久九九九九-美女久久久久久久-成人AV | 强奸乱伦αv片| 嫩呦国产一区二区三区AV| 蜜臀久久99精品久久久久久-DVD原版全| 亚洲 欧美 第一页| 丰满人妻一区二区三区四区| 国产精品网址| 91熟女丨老女人| 后入国产| 日韩性爱1级片视频| 精品久久久久久中文字幕三区| 欧美v日韩v亚洲v最新在线| 99久热精品99re6热| 韩国一区二区精品亚洲| 国产白领连续中出在线观看| 欧美熟妇亚洲版| 精品传媒在线一区| 欧美十八禁在线看| 免费视频在线观看啊啊啊啊啊| 日本人妻中文字幕精品| 国产精品免费日韩| 四虎永久在线精品免费网址| 色九月综合| 超碰久草| 久久精品店| 九九人人操| 一区二区三区无卡视频在线观看| 蜜臀无码一区二区| 亚洲春色一区二区三区| 国产青一二三| www.黄色在线| 狠狠操狠狠操操| 成人精品一区二区91毛片不卡| 日韩性爱高清免费视频| 精彩国产视频播放1区2区| 国产乱人妻精品入口| 色噜噜人妻av中文字幕| 欧美性爱91| 久久久久一本一区二区青青蜜月| 加勒比伊人综合| 亚洲AV麻豆Aⅴ无码电影一| 日本乱人伦片中文三区| 五月天激情视频| 一级A啪啪啪啪| 欧美日韩国产电影| com 首页 18岁 禁区 女优 免费 精选 同城 | 亚洲高清91| 在线播放免费av福利片| 99久久精品无码一区二区| 亚洲资源网| 麻豆国产视频精品观看| 亚洲国产精品久久久久婷婷青年| 美女诱惑久久| 婷婷AV一区二区三区| 日韩精品作爱导航| 试看60秒| 午夜色婷婷| 欧美日本天堂| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 精品国产一区二区久久| AVE乱伦| 国产美女口爆吞精| 高跟丝袜AV专区国产| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 精品国产肉丝袜在线拍国语| 偷拍片久久| 亚洲黄片免费在线播放| 久久久久久久久国产| 色色色五月婷婷| 日韩有码免费视频| 色欧洲| 一区二区三区蜜桃成人撸久久东京热| 全球成人中文在线| 亚洲AV成人无码一二三久久| 四虎884a| 色九九综合| 国产欧美一级在线观看| 97精品中文字幕| 综合熟女| 浓厚中出中文字幕在线| 使劲用力艹少妇视频一区二区| 久久综合激情| 欧美成人黄网色网站| 岛国在线免费视频| 亚洲九九视频| 日韩精品-原创伙伴| 女人久久久| 俞拍自拍| 97国产精品久久久久 | 亚洲91在线播放影院| 国产精品久久久久久久久久久久| 久久久草草精品| 91丝袜激情在线| 人妻激情偷乱视频一区二区三区| 免费看一级a性色生活片久久无| 狠狠操使劲操| 久久久久久久久久久999| 一区在线观看中文字幕| 97超碰人人模人人拍人人| 97欧美色| 肉丝网站91| 婷婷久久综合久| 日韩成人性爱电影在线播放| 黄色视频高清无码网站| 久久精品日韩专区免费观看| 97干综合网| 日产123区精品免费观看| 美国三级日本三级久久99| 亚洲高清在线se| 搡老女人老91二区| 日韩AV色图| 又大又白奶子| 日韩伦理视频| 哑洲在线| 又大又大又大又粗爽高潮观看 | 日本免费一级AAA大片器| 偷拍欧美激情| 欲香欲色综合天天伊人| 欧美婷婷五月天| 99久久com免费视频′| 97草草| 少妇3P性爱自拍| 亚州色站 日韩电影| 午夜传煤十二区精品| 婷婷久久五月| 麻豆成人影音在线| 东京热男人的天堂网| 亚洲男人在线观看天堂| 91在线色综合| 国产一区二区三区视频在线看| 97 九色| 亚洲欧洲综合av在线| 成人五月天色网| 一区操逼日比视频| 欧美欧美少妇| 2001天天操| 亚洲美女AV无码| 久久欧美按摩999| 超碰在线人妻中文字幕| 涩爱AV在线| 91欧美偷拍| 高清无码一区二区三区| 日日夜夜骚| 97在线观看| 一区| 激情六月婷婷| 1769一区| 欧美男人亚洲天堂| 欧美大香蕉专区网| 天天操天天舔| 亚洲人码13| 操99| 老司机福利青青草| 熟女91网| 69综合网| 黄色视频60分钟| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲情色1区| 国产传媒操逼视频| 人妻夜夜爽天天爽三区麻豆AV网站| 日韩人妻有码免费视频| 人妻少妇久久中文| 亚 欧 美 综合| 一区不卡在线观看av| 伊人网在线视频| 久久久一区二区三区四曲免费听| 中文字幕人妻资源在线| 日1区2区3区2020| 一区=区三区视频| 亚洲av淫乱| 加勒比aⅴ| 美腿丝袜高跟网免费视频免费视频| 久久久久亚洲Aⅴ无码| 久久精品电影在线| 欧美一区二区三区黄色影视| 性站| 人妻无码久久一区二区三区免费| 色逼综合| 超碰在线免费一区二区三区| 亚洲一二三精品久久网| 亚洲天堂日本| 日日夜夜干| 国产精品网址| 超碰95| 国产美女高潮视频| 91九色精品熟女内射| 一级毛片电影免费看| 久久九九精品一区二区 | 4141514逼喷水三级片| 精品一区二区三区四区外站 | 97精品在线| 免費黃色視頻觀看一| 色欧洲| 啊啊啊啊啊好多水| 五十路六十路素人熟女| 精品在线观看视频在线| 香一区二区三区| 四虎免费在线播放| 操碰97| 天天夜夜rb| 欧美婷婷| 久久6热精品99视频| 九九热精品| 激情干在线| 亚洲小电影免费涩涩成人在线高清 | 欧美AB在线| 97超级欧美| 思思热影视| 国产亚洲美日韩Aⅴ中文字幕无码成人| 有码专区最新中文字幕有码| av天堂加勒比| 性感美女啊啊啊在线| 蜜臀一二三| 亚洲污污网站| 欧亚日本情色| 欧洲精品一二三在线| 99re在线视频国产| 国产自偷| 96精品久久久| 老司机香蕉久久久久| 少妇天堂| 色欲Av人妻精品一区二| 国语对白露脸XXXXXX| 97在线免费公开视频| 四虎影视国产精品| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 第二页中文字幕| 热天堂一区二区| 99热这里都是精品| 色丁香五月婷婷| 五月丁香婷婷色| 久久精品一区二区三区不卡| 69精品在线| 男插女青青影院| 成人情色一区二区| 青青草色插素人| 国产三级中文字幕粉嫩| 91亚洲欧美激情| 精品一区二区三区国产| 嫖老熟女A片一二三区| 超碰在线国产| 久久久久久久久九九久孕交| 情色五月天久久久| 天天操av懂色| 插B在线观看| 日韩无码极品| 国产精品女aA片爽爽视频| 嗯啊视频免费在线观看| 亚洲色欲天天天堂色欲网女| 无码137片内射在线影院| 免费看黄视频亚洲网站| 五月激情小说| 91网亚洲| 春色综合网| 波多野42部无码喷潮在线观看| www久| 美女在线H91| 尤物视频网 刘玥| 2003天天干夜夜操| 无码精品久久| 亚洲nv男人的天堂网| 神马久久网| 78m成人视线| 日韩性爱一级片| 干婷婷综合网| 欧美激情久久久久| 日韩精品中文字幕人妻| 婷婷色综合| 欧美性爱视频免费一区一A| 韩国三级理论在线| 97五月天| 久久爱超碰网| 精品999999| 日韩黄色成人性爱| 九一性生活免费视频| 五月激情影院| 夜夜嗨老熟女AV一区二区三区| 电家庭影院午夜69久久夜色精品国产69乱| 亚洲天堂一区二区久久| 久久久久久91香蕉国产| 成人国产二区三区在线,男女精品。| 日本黄色大片一级视频免费麻豆| 夜夜嗨AV一区天天| 一区二区视频在看| 伊人五月天| 日韩av色图综合| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 殴美色网| 人人操人人操人人操人人操人人操人人人11.CM | 东京热,男人的天堂| 狠狠操狠狠操操| 久热超碰| 中文字幕视频二区| 日韩Va亚洲va欧美Ⅴa久久| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 久久少妇| 色噜噜国产在线| 91插B网站| www欧美性爱| 一二三四日本视频高清| 香伊人在线| 色哟哟511老熟女| 九九九九免费高| 99精品丰满人妻无码| 岛国大片在线观看网站入口| 久久人妇| 日本无码1| 国产精品在线一区二区| 欧州一区二区三区四区| www久久久| 四虎免费视频| av大香蕉| 超碰久超碰久| 91在线欧色| 国产精品人妻无码久久久老鸭窝| 大香蕉色网| 91丝袜| 后入美女国产| 日韩在线性爱免费视频| 激情视频图片| 啊啊啊用力在线观看| 91亚洲丝袜熟女| 久久婷婷亚洲| 操国产逼| 97爱碰| 正在播放国产精品一区| 99re9在线| 4tube欧美女厕所| 午夜福利在线合集| 久热91| 很狠操| 亚洲免费成人在线高清无码视频 | 少妇高潮喷水无套久久久久久| 成人羞羞视频国产| 色老牛| www.色五月| 亚洲码在线中文在线观看| 亚洲黄色| 天天天天天天天天综合| 天天精品| 久久成年片色大黄全免费网站| 亚洲日韩少妇一道本视频| 国产欧美日本亚洲精品| 久久久久久无码人妻中文字幕| 国产99 中文字幕日韩小视频| 激情五月天中文字幕色| 欧美综合传媒| 在线综合 亚洲 欧美中文字幕 | 久久97视频| 亚洲欧美日韩有码| 亚洲中文字幕av| 亚洲性综合| 97超碰jingpin| 殴美在线AⅤ| 亚洲国内精品成人不卡| 精品久久久无码| 久久超碰网| 老鸭窝成人| 黄色av片三级三级三级免费看| 久久久久九九九| 国产精品午夜福利| 久久久专区| 国产精品午夜成人福利| 一牛影视成人片免费| 欧美同性恋 的搜索结果 - 91n| 好吊妞转入那个网| 精品免费一区| 东北女人高潮视频| 蜜汁欧美| 9久9久| 天天综合麻豆视频| 欧美 亚洲 综合 制服 另类| 97 国产一区| 亚洲精品97在线| 日韩免费性爱视频在线观看| 97在线视频观看| 国产丝袜高跟美女av免费观看| 97爱b| 大香蕉宅男伊人| 99热色这里只有精品| 欧美激情综合| 国产一区二区三区影片| 美女黄频a美女大全免费皮| AV和黑人在线播放| 国产一级不卡在线观看| 久久精品国产亚洲AV高清演员表 | 国产97色在线| 凹凸 69堂 在线播放| 一本正道久久熟女| 日韩欧美tv一区二区在线观看| 精品在线78| a在线观看| 精品999999| 婷婷中文网| 中出后入| 熟妇熟女一区二三区| 四月丁香婷婷| 欧美激情五月天| 我爱大香蕉| 艹比视频国产精品| 免费精品福利在线观看| 亚洲图片欧洲图片aⅴ| 欧美精品日韩久久久九| 99久久精品无码一区二区毛片免费| 亚洲男人天堂2| 色天使亚洲综合在线观看| 日本孕妇孕交| 国产精品直播在线观看直播| 自拍偷拍2025在线观看| 91在线丝袜视频| 超碰午夜在线| 国产免费久久久久| 久久,精品一二三| 亚州再线| 中文字幕无码不卡啪啪| 老色鬼成人精品视频下载大在线观看| 99热欧美| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 天天日美女的B| 久久久久久免费电影| 蜜臀久久久99久久久久 | 久草老司机| 九九热三级片| 青青草玖玖爱| 国产绿奴视频在线观看| 夜夜夜夜久久久久| 国产色图乱伦| 精品人体无圣光凹凸| 69精品久久久久中文字幕| caopeng97人妻| 天天综合网~91综合网| 很黄很污的免费网站| 激情四射五月天| 熟女91网| 神马久久久久久伦理片| 亚洲av总站| 久久国产精品,久久国产| 天天爽入口| 亚欧毛片基地国产毛片基地| 色色综合网站| 日本精品无码三级网站| 激情综合网五月婷婷五月天| 四虎免费视频| 久草免费福利在线播放| 午夜呻吟欧美| 91在线美女| 国产一区二区视频在线播放| 97av在线观看| 亚洲有薄码区日本系列中文字幕| 91综合在线| 狠狠干妹子| 嗯嗯嗯啊啊啊操的我好爽| 校园春色宗合网| 秋霞怕怕片| 日本三级日本三级99| 亚洲色图美腿丝袜| 精品无码一区二区三区色欲| www五月| 日本精品一区二区三| 久久精品国产亚洲妲己影视| 蜜桃色色网站视频三区| 国产欧美日韩女同性恋ww喷水精品| 东北操逼| 成人五月天丁香激情综合| 婷婷五月天激情网| 免費人妻夜夜爽天天爽爽一区| 国产后入式在线观看| 国产男女无套视频免费观看| 超碰天天操| 天天欧美欧美亚洲网| 无码九九| 女同女同恋久久级三级| 99re在线视频这里只有精品| 色欲天天综合久久久无码网中文| 成人精品久久| 成人一二三区| 亚洲 自拍偷拍 欧美| 九九成人精品| 色婷婷丁香| 超碰资源亚洲97| 翘臀vidoes| 热热色综合网| 日本97久久久精品| 亚洲码和欧洲精品激情系列| 亚洲一区二区AV| 中文字幕人乱码中文字的预防方法| 国产传媒av天美传媒在线| 久久这里都是精品| 国产精品小视频一区二区三区| 操b网站亚洲无码| 超碰色老头| 色婷婷香蕉| 亚洲国产欧美日韩人妻日中文| 精品丰满熟妇人妻一区| 91操人| 大香网站| 欧美激情一| 黄色免费网页无码| 久久国99999| 免费人成在线观看网站品爱网| 一级黄色牲爱A级片| 91精品在线播放| 亚洲999综合| 亚洲无码 国产无码| 九九精品无码专区免费| 色五月婷婷五月天| 日韩精品人妻| 亚洲精品色| 天天做日日爱夜夜爽| 日本99视频| 久久这里只有精品9| 欧美亚洲尤物久久| 激情综合网一盗摄| 男人的天堂久久狠| 精品久久9| 国产极品粉嫩馒头一线天av| 日韩三级一区| 国产精品乱码久久| 97无码视频在线播放| 天天流夜夜操| 蜜臀AV秘一区翔田千里| 一区AV| 欧美少妇高潮视频| 操逼网站视频漫画国产| 国产久久男人天堂| 亚洲熟女乱色一区二区三区| 亚洲欧美综合区自拍另类| 丰满人妻av一区二区三区| 一区| 能看的AV| 国产高清成人mv在线观看| 天天看片麻豆| 精品少妇人妻av久久免费| 国产精品夜夜| 亚洲三级网址久久最新| 日本三级中国三级99人妇网站| 高清在线不卡一区二区 视频| 日韩精品免费高清视频在线| 道久久五香丁月婷婷激情综合| 日韩成人私密一级精品av| 四虎在线免费视频| 蜜桃久久久久久| 五月丁香久久| 国产精品成人蜜臀AV在线| 精品国产Av无码久久久亚洲| 91麻豆天美传媒在线| 亚洲精品 欧美精品| 91在线综合网| 熟妇人妻精品一区二区视频色欲| 97国产高清视频在线观看| 91搞逼视频| 日韩熟女无码| 无码人妻1727| 精品人妻视频一区二区在线播放 | 97视频620| 超碰久久中文| 大香交伊人网| 五月天啪啪| 色情五月丁香| 伊人久久艹| 久综合网| 久热无码| 亚洲无码色| 日美免费黄片| 操逼视频色| 欧美自拍偷拍综合图片| 大香蕉乱级| 国产多人在线观看视频| 翔田千里爆乳巨臀无码| 亚洲性天堂| 天天干嫩逼网| 精品9999| 乱老熟女一区二区三区| 欧亚日韩三区| 人妻美腿丝袜制服诱惑综合天堂-| 久热伊人99re| 国产精品制服丝袜中文字幕日韩一区二区三区 | 97超碰磁| 成人a级高清视频在线观看| 家庭乱伦国产精品| 一级片在线观看高清无码| 日韩免费大片一级播放| 911av网站免费观看| 美中日韩无码| 2017人人操,人人摸| 日韩精品在线观看观看| 亚洲成A∨人影院在线欢看| 在线v中文字幕一区二区三区| 爱做久久久久久| 91操人| 欧美成人9797| 欧美97在线观看| 狠色婷婷久久一区二区三区_| 青青草无码视频| 伊人午夜福利视频| 少妇丝袜在线观看AV| 五月天精品| 欧美日韩人妻婷婷一区| 91插B网站| 精品美女少妇一区二区| 曰韩中文人妻视频| 操高情无码| a网站免费观看| 艾草av| 91亚洲欧美综合高清在线| 婷婷亚洲综合| 欧美熟女妇同| 亚洲 欧美 日本 国内 首页| 五月丁香激情四射| 国产传媒操逼视频| 婷婷激情四射| 国产亚洲 中文欧美久久| 99色色网| 亚洲情色91| 91暧暧| 中文一区在线日| 熟女露脸激情自拍视频| 国产农村妇女精品| 亚洲日韩在线a不卡99精品 | 超碰在线香蕉| 亚洲图片偷拍视频区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 天天碰操中国年青熟妇| 大乔未久88一区| 中出91视频| 色九久| 国产三级多多影院2022国产AA一级毛片无码| 91精品丝袜在线观看| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲AV不卡在线观看| 综合熟妇一区二区三区| 五码视频在线观看| av爱爱爱| 色伊人91| 大香蕉天天看妹子| 亚洲欧美情色| 久操热| 五月天社区| 欧美精品欧美精品系列| 免费少妇一区二区| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 中文字幕一区av| 国产乱子伦一区二区三区免看| 国产日本顶级一区二区三区| 精品人妻一区二区视频| 久久久9视频| 激情一区二区| 婷婷激情四射| 极品美女嘿咻| 国产一区二区av综合| 久久久久密臀视频| 亚洲日韩精品久久久久一区壹牛| 人人天天干干| 91男女| 18禁免费视频| 97一区二压| J?P?NESEHD熟女熟妇伦| 精品一区二区啪啪啪| 亚洲同性aV综合| 国产a级午夜毛片| 日韩人妻精品| 日韩欧美成人午夜福利| 美女久久久久久久| 88xx成人精品视频| 国产性刺激| 俺去啦俺来也久久综合| 国产大片精久久久久久| 久久综合精品一区二区三区| 亚洲欧美伦综合| 国产精品麻豆成人AV艾秋| 国产精品久久久久9999小说| 思思热免费在线视频| 亚洲资源网| 国产精品一二三在线看| 国产后入清纯| a在线观看| 97亚洲精品超碰| 91原创在线观看| 日韩 国产 欧美自拍| www.一本大99| 日韩人妻制服丝袜av| 日本精品久久久久久久| 日韩欧美字幕亚洲一区二区| 亚洲风情综合网| 二级久久网| 成在线人在线观看视频| 久久久111| 国产精品久久久久久久电影渣男| 天天操天天谢| 国产精品亚洲免费| 91五十路| 97日视频| 尤物黄色在线观看网站| 欧美日韩亚洲国产中文永久天天看| 久久肏大逼| 久久风骚城市| 欧美淫穴| 日本影视久久免费| 黑人与人妻| 综合久久中文字幕综合日韩精品| 亚洲在线a| 在线a v| JuliaAnnXXX888| 91视频观看网站| 久久成人国产精品| 夜夜国产一区| av无线看| 91国产丝袜白虎| 欧美一区二区三区大综合| 免费在线黄片视频| 天天色欧美| 色九九九综合| 亚洲精品97p| 久草色在线观看| 亚洲熟妇自偷自拍另欧美| 99999这里都精品| 成人综合色网| 中国国产精品一区视频| 乱码熟妇人妻久久久| 桃花色涩综合影院| 就去色综合| 欧美日韩香蕉| 中国人高清www色视频免费| 东北操逼| 久草视频制服诱惑| 桃色五月天| 狠狠色噜噜狠狠狠狠狠色综合久久 | 国产人伦精品一区二区三区| 91操人| 日本在线观看网址| 四虎影视国产精品| 一本一首道人妻少妇免费久久| 日本国产高清色www视频在线| 熟妇色99| 国产夫妻性生活视频| 美腿丝袜高跟网免费视频免费视频| 国产成人+综合亚洲+天堂| 国产传媒日韩| 综合亚洲欧美| 天天肏美女| 色优久久| 人妻99p| 亚洲欧美国产成人综合不卡| 欧美精品久久久久久久丰满| 九久9精品| 亚洲性天堂| 日本ZZ高免费A级视频| 曰本特级特黄特色黄色A级网站高清在线免费看| 亚洲中文人妻色| 丰满人妻大屁一区二区| 五月综合婷婷久久网站| 狠狠色综合网| 91色黑人少妇| 96久久科窝| 99热欧美| 啪啪91| 婷婷久久综合久| 九九人人操| 亚洲操人| 中文字幕精品一区二区精| 自拍内地三级在线观看| 97无码视频在线播放| 麻豆一区在线| 另类综合另类| www.久久99| 精品伊人久久久大香线蕉小说| 久久精品国产99精品亚洲蜜... | 超碰 国产熟女精品一区| 青青草色插素人| 欧美综合 站| 97 亚洲 日韩 欧美 在线| 欧美不卡在线美女| 99精品网| 极品白嫩福利在线| 欧美 亚洲 偷拍自拍| 无码高清操逼网址| 一级特黄aaa大片在线观看成人一级片在线观看| 亚洲精品一区二区免费在线观看| 91天天爱| 99这里只有精品| 校园春色五月天| 日韩精品字幕| 午夜男女爽爽爽影院视频| 亚洲日韩美国人妻| 欧美亚洲中文字幕| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 欧美精品四区| 老师充足的奶水小说| 都市激情人妻一区二区青青操视频| 欧美精品欧美精品系列 | 操逼片中文| 久久综合资源一区二区| 怡红院一区二区熟女人妻| 亚洲成a人在线观看久| 九九色影院| 嗯阿好爽好紧| 女人天堂网| 国产中文字幕在线观看| 91色欧美| 国产兽交视频在线播放| 久这精品中文在线观看视频| 一级特黄aaa大片在线观看成人一级片在线观看| 女人被男人桶爽视频网站| 无码国产精品午夜不卡(| 欧亚综合一卡二卡中文字幕| 5252色欧美在线| 蜜桃精品一区二区三区久在线| 欧美91久久久久| 91丝袜在线播放| 国产无码精品高清| 五月婷婷色色| 久久亚洲影院一区二区| 人妻激情在线视频| 青青草毛片| 97干97色| 伦伦成年午夜免费视频| 亚洲精品日韩国产欧美| 97免费视频网| 欧美中字不卡| 亚洲好看强奸乱伦| 艹我哪美一区无码| 97人人色| 日韩精品在线视频在线观看| 91欧美高清| 蜜桃臀一区二区aV| 欧美日韩亚洲少妇寂寞影院正在播放 | 久操免费在线| 99久久精品无码一区二区| 亚洲激情欧美色图| 殴美牲| 亚洲日韩久久精品一区| 中文?日韩?免费?精品| 国产激情在线观看| 手机av天堂久久久久| 清纯唯美激情| 多乙久久久久久| 国产天天看| 亚洲在线欧美| 夜夜操2028| 亚洲日韩资源| 综合一区中亚洲国产成人综合精品| 亚洲综合有玛| 久久精品国产亚洲粉嫩| 日韩欧美午夜视频在线| 日本东京热大香蕉a片| 中文字幕蜜乳av| 丁香色婷婷| 亚洲深夜福利| 欧美精品自慰系列寂寞少妇 | 亚洲天堂人妻熟妇视频| 最新亚洲风情电影| 女色综合| 极品色社| 亚洲成人精品久久久| 久久 精品| 婷婷五月天福利| 91 丝袜在线播放| 婷婷综合久久| 91老妇女| 亚洲欧美精品福利在线| 丰满人妻一区| 午夜视频久久久久一区| 人妻久久久| 揉揉日日日日| 亚洲最大网站av| 中文字幕精品亚洲熟女| 欧美亚洲日本视频久久久| 一二区在线观看视频| 欧美Aⅴ| 欧美精品成人亚洲| 日本操逼视频在线| 夜夜福利| 国产操操日韩三级黄| 色阁阁AV综合网| aaaa少妇高潮大片| 少妇的嫩逼图片| 久久午夜伦| 91精品亚洲内射孕妇| 久噜噜| 亚洲在钱| 桃色五月天| 国产精选视频| 国产有码一区| 欧差乱伦二三| 日本黄色天堂| 丁香五月性| 亚洲久久久| 日本不卡码黄色 | 美女淫穴| 久久久精品视频免费观看| 欧美色图亚洲色,麻豆| 欧美久久草熟女| 无码高清国产AV| 美女天天干| 欧美日日网| 青娱乐国产剧情av一区| 91高跟美女在线播放| 91干熟女| 国产福利合集| 成人在线永久| 麻豆这里只有精品| 精品十八在线观看| 97精彩视频网站| 亚洲成人无码影院| 欧美综合中文| 色777999综合| 97 亚洲 日韩 欧美 在线| 精品国产一区二区三区在线播出| 人妻蜜桃臀| 亚洲成人一二三区| 久久婷婷亚洲| 极品综合| 亚洲色图 91| 一区二区三区蜜桃成人撸久久东京热 | 清纯唯美综合亚洲| 伊人激情五月天一区二区| 日本媚薬中文字幕在线| 中文字幕97色| 9/A片 | 操逼操网| 亚洲国产综合图区中文字幕| 秋霞午夜视频一区二区| 99这里只有精品国产| 丰满人妻一区二区三区| 亚洲电影91| 97视频在线观看播放与子乱对白在线……| 国产欧美精选激情视频| 亚洲中文字幕熟女| 欧洲色综合| 麻豆天美传媒在线视频天堂| 日本 欧美 国产一区| 国产亚洲精品av一区| 熟妇乱伦一区二区| 欧美色图片色哟哟| 狠狠夜色午夜久久综合在线| 亚洲精品一区二区三区新线路| 明星性猛交ⅹxxx乱大交| 国产精品伦理| 亚州国产成人精品女人久久| av麻豆啪啪| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 六月婷婷五月丁香| WWW操逼| 亚洲爽图| 亚洲欧美清纯| 久久9免费视频| 色天使AV天堂| 亚洲Av噜噜一区二区三区妖精| 欧美黑人猛交春色影视大全| 探花激情视频| 久操热| 国产自偷自拍一区| 黄色小视频日本txt| 久久久久久电影| 国产精品嫩草久久久久| 中文AV制服乱伦| 亚洲无992tv| 99999精品| 91精品人| 男人的天堂2018.| 桃花色涩综合影院| 韩国手机不卡无码三级视频| 美女裸体无遮挡永久免费观看网站 | 青青草在线成人视频| 日韩欧美操逼xxx| 自拍偷拍草一草| 淫荡少妇免费| 中文字幕奈奈美被公侵犯| 97超碰香蕉|