色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
色婷婷色99国产综合精品| 九九综合久久| 歐美性天天| 日本Xx性爱| 超碰97伊人| 精品女人999| 一本色道综合久久欧美| 国产精品一区二区密臀| 偷拍片久久| 翔田千里无码一区| 欧美亚州综合图片| 天色综合网| 在线观看精品国产免费| 秋霞免费无码视频日韩A片| 久热这里| 久草新免费| 久久xxxx| 精品v日韩欧美国产| 另类欧美色| 亚热日本熟女| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 岛园激情| 国产 v乱码一区二| 一区二区三区亚洲| 久久产精品一区二区三区电影| 欧美亚洲宗合色性图| 美女露胸露屁股| 免费观看啪视频| 91激情网| 97超碰资源网| 天美麻豆精品视频99| 十八禁成人网站在线观看| 69国产对白刺激| 男人天堂东京热| 欧美第一页| 岛国人妻少妇av在线观看| 亚洲天天艹| 五月天伊人| 黄色av一区二区在线| 日韩免费高清大片在线| 亚洲春色欧美激情自拍| 国产精品永久免费10000| 国产熟女无套内射| 国产色产精品在线观看| 超碰97色| 色在线视频导航| 夜夜中出国产| 9热9热综合网| 影音先锋一区二区在线资源| 国产情色第一第二页在线观看| 欲色影视综合吧| 女同亚洲欧美一二三区久久电影| 青青草吊丝| 天天欧美色| 一区二区久久天天干狠狠| 亚洲欧美激情另类色图| www.色婷婷| 爱爱动态120秒| 99热成人| 美女高潮视频91| 亚洲av总站| 国产婷婷一区| 欧美精品丝袜久久久中文字幕| 青青草自拍视频在线播放| 91网站18在线观看| 中国的操老妇女| 日本高清一本二本免费不卡| 日韩综合第八区国产精品| 亚洲丝袜色| 高清不卡一二三区视频......| 亚洲一区二区三区久久 亚洲一区二区| 91九色在线| 久久国产精品一级二级三级| 玖玖蜜臀资源网| 亚州色站 日韩电影| 久久最新视频免费观看| 蜜汁欧美| 午夜寂寞欧美| 偷拍超碰| 肥佬影院91| 91这里只有精品| 亚洲婷婷丁香在线| 久久综合激情| 亚洲Av噜噜一区二区三区妖精| 亚州色图片在线色| 熟妇熟女一区二区三区| 久久成人国产精品| 五月婷婷六月激情| 无毛精品| 亚洲欧美精品国产一区二区| 婷婷色影院| 7月婷婷综合| 日韩中文字幕宗合在线| 精品视频久久| 日本色色色视频| 婷婷四五区| 动漫片子网站3黄| 欧洲精品人妻| 少妇丝袜在线观看AV| 大香蕉日韩| 农村妇女精品一二区| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 超碰在线97国产| 久久精品老司| 亚洲精品91| 97在线视频观看网站| 日本久久网| 欧美成人精品一区二区男人蜜臀| 国内偷自视频区视频综合| 69人妻精品一区二区绯色| 97色欧州| 天天天肏屄肏屄肏屄欧美欧美| 人人手机欧洲亚洲国产人妻| 亚洲视频精选| 超碰成人免费| 草B在线| 久久五十路熟女人妻| 综合色图区| 久久9免费视频| 91av一区二区在线观看| 国产一级久久久| 国产路线专区| 五月天婷婷成人网| 操逼操逼操| 激情99| 殴美色网| 九九九九久久久| 精品一区二区三区蜜桃| 色综合99999| 国产精品爱欲| 欲射影视| 青草av在线| 亚洲在线观看| 丁香婷婷久久 | 成年女人黄网站| 中文字幕乱在线伦视频中文字幕乱码在线| 久久精品熟妇丰满人妻99| 成人怡红院| 人妻AV 中文字幕的| 96超碰网| 视频在线观看一二三区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | av中亚| 丁香五月天啪啪| 天天综合91入口| 五月丁香六月婷| 青青草玖玖爱| 色婷婷导航| 97天天| 久久熟女人| 日本αv| 97视频在| 国产成人免费观看在线视频| 日韩大香蕉AV影片| 国产精品久久发布| 大香蕉伊人久久| 电家庭影院午夜69久久夜色精品国产69乱| 青青五月天| 日韩一级片| 免费97视频| 丁香啪啪| 亚洲av无码国产精品字幕| 久久精品72| 国产欧美日韩精品中文| 国产内射爽爽大片| 91精品网站| 久久久av爱| 久久欧美性爱视频| 视频一区二区免费在线| 一区二区三区色综合| 强奸乱伦麻豆| 人人操人人93| 天天插夜夜爽| 九九人妻| 日本淫色网| 少妇xx精品| 欧美熟女激情| 人妻熟女午夜精品在线| 日本熟女免费視颖| 亚洲美女精品九九视频| 91日产欧美| 久热大香蕉| 无码久久国产| 校园春色 欧美| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 人妻在线中出视频| 操逼逼福利视频| 亚洲国产综合图区中文字幕 | 久久久久国产精品片区无码直播| 日韩特级毛片免费观看全集| 任你干在线视频| 中文字幕日本久久| 成人 日本A片无码8888| 精品九九九| 亚洲人人夜夜澡人人爽| 久久中文色图| 成人无码专区精品视频| 老色69| 国产亚洲精品玖玖玖在线观看| 精品视频在线观看| 淫荡网址| 久久久久九九九| 视频国产精品未满十八禁止在线观看| 国产中文字幕在线点播| 色香天天| 快灬快灬 一下爽蜜桃在线观看| 91路www| 精品国产91久久久久久一区黄无| 玖色AV| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 户外裸露刺激视频第一区| 999久久久| 久久久久白虎| 日韩欧视频| 操操吧亚洲乱伦视频| 少妇国产不卡| 97在线国产精品| 久久有碼| 中文字幕人妻丝袜乱一区三区| 亚洲日本成人动漫| 亚洲熟妇自偷自拍另欧美| 无码日韩网站| 操狠狠| 嗯嗯啊中文字幕| 啊视频在线| 色青青久久影视| 国产AV高清AV无码| 久久九九99| 婷婷伊人綜合中文字幕| 五月婷婷综合网| 黄污污污污| 人妻少妇蜜桃视频欧美一区| 亚洲各类熟们中文字幕| 亚洲精品影视老司机| 新久久AV| A一区片| 亚洲操操| 岛国天天午夜影院传媒网| 精品久久久av无码免费| 天天香香欲综合| 97操综合| 韩国一级婬片A片AAAAA| 欧色综合| 日本一区二区三区免费观看| 夜夜高潮夜夜爽| 九热中文字幕| 精品精品精品| 东京热视频网| 蜜桃视频啊啊啊啊| 91人妻爽爽人人做人人澡| 精精品人妻一区二区三区| 色婷婷基地| 久久嫩草| xxx亚洲午夜天堂| 欧洲综合无码| 抽插爽| 香蕉综合网| 久操网址| 影音先锋日本乱伦| 色欧美色交综合| 日本裸体久久色噜噜| 91丨九色丨熟女高潮| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | www色色com| 清纯唯美综合亚洲| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 国模无码一区二区三区在线| 欧美日韩大黄片| 美女久久久久久久| AV九九| 人人操人人摸人| 黄视频免费| 亚洲 欧美 第一页| 91人人看| 青青草日韩无码| 天天操天天射天天日| 欧洲精品一级二级精品综合视频综合| 男人天堂无码| 97精品一二区| 啊啊啊97视频| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 内射卯月麻衣| julia ann久久| 欧美青青视频| 亚洲天堂日本| 天天舔九色婷婷| 国产熟女| 精品无码产区一区二| 97超碰国产亚洲精品| 国产区在线| 亚洲情色综合| 秋霞网—男女啪啪亚洲免费体验区 | 亚洲精品 大香蕉| 久久久久久久人妻| 旡码电影特区| AV99热18这里只有精品| 91高清欧美| 天天澡天天爽日日av| 欧美第一页| 久久午夜色播影院免费高清| 伊人黄色片| 日韩精品一区的| 操99| 久久精品电影| 日韩猛交| 98色网| 亚洲天堂人妻一区二区| 日逼五月天| 欧美成人精品一区二区男人蜜臀 | 久久久精品国产亚洲伊人| 国产自产91区13区| 青青操在线视频| 久久国产性爱| 亚洲色图久久成人| 死我十八禁| jazzjazz国产精品麻豆| 免费的黄片wwwwww| 97人妻人人躁人人玩人人| 边做饭边操逼逼| 婷婷五月成人| 亚洲欧美洲综合| 无码人妻一区二区三区色欲aⅴ| 五月婷婷无码| 天天干夜夜鈤| 高潮的A片激情扒开一区| 青娱乐大香蕉| 伊人久久大香线蕉无码| 成人A片男人的天堂| 91天天爽| 国产精品999zyz| 久久蜜色情在线视频xxx免费观看| 超碰美女97| 3d成人精品一区二区| 亚洲色图欧美另类在线| 伦伦成年午夜免费视频| 九九九九一区| 国产成人一级av88| 欧美草草| 日日日日日| 亚洲丝袜少妇在线| 亚洲区限制级| 色久桃花影院在线观看| 综合色欧美| 淫乱图区| 天天综合网国产| 狠狠干妹子| 欧美成人黄网色网站| 果冻传媒A片一二三区| 无码人妻一区二区三区色欲aⅴ| 亚 欧 美 综合| 亚洲欧美色图小说| 日本免费一区二区不卡| 欧美一级色| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 人妻少妇被猛烈进入中| 九九AV| 亚洲欧美另类小说| 长长久久88视频| 特级毛片特黄久久免费看| 97久久国产亚洲精品超碰热| 色婷婷网| 国产性爱乱伦AV| 久久久久久久强迫| 91在线国产后入风骚翘臀美女素人| www.色婷婷| 逼操网站| 377p欧洲日本亚洲大胆| 免费观看性欧美一级| 四虎免费看黄| 夜夜青青无码影院| 亚洲最大AV网| 熟妇无码视频三区| 日日噜噜夜夜久久亚洲一区二区| 丝袜综合| 日韩精品人妻中文字幕久久久| 亚州国产精品乱| 97K超碰在线| 麻豆成人av| 日韩人妻无码精品系列| 蜜臀AV成人精品蜜臀| 四虎AV在线观看| 九九热视频在线观看| 五月天婷精品激情| 国产欧美亚洲精品a第2页| 人人天天欧洲| 99热综合| 97精品国产97久久久久久户外免费| 国产精品宅男免费| 天天日天天干天天整| 欧美综合站| 欧美刺激色黄片免费看| 九九热在线精品视频| 国产精品91一样| 岛国不卡超碰护士AV在线播放| 天操老女人| 啊啊啊爽爽| 八戒无码国产午夜福利| 国产午夜无码片在线观看影视| 日韩中文字幕精品一区在线| 操高情无码| 九九热视频在线观看| 99999精品成人| 国产精品禁久久久精品| 日婷婷| 五月婷在线| 日本精品一区二区三| 俞拍久久国应视频| 91精品操美女| 亚洲日韩天堂| 在线性黄高清免费视频| 福利一级版子| 免费操逼视频下载| 97内射偷拍| 狠狠2050在线观看| 青青草久草| 999精品女人| 探花一区在线| 骚女高跟AV在线| 美女久久久久久久久久久| 国产精品久久久无码aV去| 免费操逼视频下载| 情色五月天网| 伊人久久综合影院| 欲射影视| 怡红院一区二区熟女人妻| 污啪啪啪视频| 一区二区乱码福利| 精品超碰中文在线| 蜜乳成人AV| 蜜臀国产AV中文字幕| 欧美亚男人的天堂| 青青青青青手机视频| 日韩人妻一二三区视频| 欧美爆操91| 午夜舔阴达高潮视频免费看| 精品91摸| 国产 日韩 欧美高清| 人妻丝袜肏逼| 亚洲情色91| 日本在线观看网址| 精品国产久久乱码| 亚洲成人网站在线观看| 成年人三级黄色片视频| 久久97| 日本性爱不卡视频| 欧美亚洲小说| 茄子社区国产精品| 婷婷亚洲综合| 黄片免费视频2019| 97伊人超碰| 毛片视频白嫩| 五月天偷拍| 日本性爱欧美性爱| 久久风骚城市| 欧美久久人妻少妇一区二区| 五月天综合网| 日本久操视频| 最新国产亚洲精品精品国产亚洲综合| 美女爽到高潮91| 老女人日韩美91| 精品99999| 白嫩妹子国产骚| 精品九九九九九| 99日精品欧美国产| a片亚洲一本通视频| 91在线/欧洲| 94色色电影网| 人妻-91porn| 九一综合网| www.av家庭乱伦| 九九99精品视频在线观看| 日本蜜桃| 超碰国产精品久| 看黑丝美女操逼青青网站| 精品国产乱码久久久| 永久免费观看的毛片的网站| www.夜夜| 欧美九九九| AV综合中文字幕干| 少妇三P| 亚洲无码电影久久久| 丁香六月婷婷久久综合| 久久久999国产| 欧美v亚洲v日韩v最新在线二区| 淫乱图区| 一线黄色免费性爱片| 欧美在线官网| 成人国产视频在线观看| 韩日男人的天堂| 国产91美女视频| 欧美性爱三区二区| 日本不卡二三区| 78久久| 日本午夜精品理论片A级APP发布| 九久久九精品视频| 在线播放成人高清免费视频| 高树玛利亚无码流出| 夜草网站| 国产乱人妻精品入口| 免费1级a做爰片观看| 91丝袜激情在线| 久草网站免费在线观看| 男人的天堂kva| 六月丁香婷| 偷拍盗拍亚洲色图图片| 国内黄色精品| 三级激情网站| 91熟女视频网| 亚洲人精| 精品九九国产无码| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲va综合va国产va中文| 婷婷精品国产欧美精品亚洲人人爽| 黄色av网站在线播放| 情色五月天就去干| 久久精品国产99精品亚洲蜜... | 亚洲天堂精品日韩电影| 91狠狠色丁香婷婷综合久久精品| 97超碰碰| 九99久久| 日韩精品人妻系列无码天堂| 精品人妻av在线播放| 欧美色图99| 丁香五月天激情| av三级电影在线播放| 美女黑人91神马| 蜜乳av首页| 蜜臀无码视频在线观看| 国产精品一二三| 六月丁香啪啪啪| 亚洲春色欧美激情自拍| 啊啊啊啊嗯嗯在线久久久| 97综合在线观看| WWW黄片COM| 欧美人人操人人插| 狠狠亚洲| av一区二区三区 中文| 亚洲精品一二牛牛| 插B在线观看| 97超碰天天爱天天爱| 狠狠色综合网| 精品成人动漫一区二区| 狠狠婷婷亚洲中文综合久久| 欧美日韩亚洲少妇寂寞影院正在播放 | 久久久久亚洲Aⅴ无码| 91亚洲情色| 九九九九九九九九九九九蜜桃| 少妇免费视频| av大香蕉| 欧美日韩午夜精品一区二区三区 | 亚洲 日本 国产 综合| 亚州综合色| 人妻无码久久一区二区三区免费| 精品国产乱码久久久久久影片| 亚州操逼网| 蜜臀久久99精品久久久久久-DVD原版全| 色香伊人| 欧美 亚洲 另类 综合| 五月天色图| 竹菊影视国产一区二区| 久久精品中文字幕无码l| 欧美日韩国产一区二区小黄片大全| 久久久久久久久久久久97| 色阁阁AV综合网| 青女在线| 污污污8888| 国产盗摄美女如厕大神作品在线观看| 在线国产一区二区av| 岛国大片国产| 人人人人插| 一区二区三区黄色片a| 99色网| 亚洲精品国语在线播放| 欧美色999| 五月婷亚洲精品天堂| 人人妻人人爽| 九九九九热| 亚洲欧美综合| 玖玖爱在线视频免费观看| 综合伊人激情| 国产欧美精选自拍一区| 国产不卡免费在线视频| 日本一级性爱| 婷婷丁香五月综合| 国产自产91区13区| 蜜桃成人1区2区3区| 爱爱60秒免费视频| 五月丁香激情综合网| 99精品久久久久久久婷婷蜜桃| 天天色天天干天天射| 久久国内| 啊啊啊不要啊啊受不了了视频在线| 精品少妇一区二区三区免费观看| 欧美人妻精品| 91激情网| 亚洲欧洲无码一区夜| 亚洲一二三四区在线免费看视频| 亚洲黄a三级三级三级看三级| 亚洲高清在线se| 午夜噜噜噜| 四虎AV在线播放| 人人妻人人爽一区二区三区| av网站免费看| 久久三| 天天干天天拍| 97视频900| 91美女精品| 97欧美日韩综合| 亚洲91色| 国产曰批免费观看久久久| 乱伦系列一区二区| 午夜情侣自拍网站| 色69大色97香蕉| 国产激情视频一区区三区| 岛国视频一二三区| 99热这里都是精品| 污污污8888| 色综合大香蕉| 天天搞在线综合网| 色婷五月天| 国产精品久久久久久夜夜夜| 日本孕妇孕交| 91精品人妻一品二品三品| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 日韩性爱啪啪视频| 人妻熟女av国产网站| 97玖玖人妻| 久草毛片| 日本狂喷奶水在线播放212| 午夜精品视频777| 嗯嗯啊啊好大好爽| 欧美夜夜草视频| 色噜噜狠狠色综无码久久合欧美| 亚洲乱色视频一区、二区在线| AV在线播放网址| 国产一区自拍欧美日韩| 嗯啊不要啊在线| 玖日综合网| 国产精品麻豆免费视频| 色综合久| 久久亚洲日韩国产欧| 国产一级137片内射麻豆| 不卡在线一区,精品一区二区三区中| a片亚洲一本通视频| 26uuu最新| 天天天天操| 亚洲狠狠入| 精品人妻视频入口| 久久这里精品国产99丫e6| 亚州欧美在线| 中文字幕日本久久| 国产自产22区| 人人操人人摸人| 99啪啪视频| 欧美色图综合| 岛国成人av在线播放网址| 老女人老91妇女老热女| 6080YYY午夜理论片在线观看| 亚洲男人天堂网久久| 啊啊啊啊啊好多水| 激情四射婷婷四五月天| 精品人妻一区二区三区日产| 亚洲有薄码区日本系列中文字幕| 日韩有码专区| 91色艳| 日本国产欧美一区三区二区 | 欧美夜夜狠| 九九九九九九综合| 婷婷中文字幕| 亚洲色人| 激情图片亚洲色图| 大香蕉黄色一级片免费看| 亚洲色图久久成人| 午夜舔阴达高潮视频免费看| 免费农村成人少妇人妻Aa一区二区视频 | 欧美色图下一页| 日韩人妻一二三区视频| 人妻天天爽夜夜爽精品2| 高清视频一区| 四虎永久在线精品免费网址 | 神马久久久久久久久| 丁香五月天堂| 国产品精品自在在线午夜免费| 日日夜夜骚| 中国国产精品一区视频| 97久久久久久久久久| 婷婷激情五月| 高清无码久操视频| 欧美在线中M| 日本污ww视频网站| 精品免费视频国产一区| 欧美亚洲成人在线一区二区三区| 91干熟女| 久久产精品一区二区三区电影| 夜夜操狠狠操| 欧美偷拍区| 成人草草视频| 男人兔费天堂| 亚州免费啪啪视频| 91美| 1二区9| 激情综合久久| PMv在线观看| 欧美色图小说综合| 厕所偷拍在线| 欧美日韩国产色图在线| 啊啊啊啊好疼| 91国产美女丝袜足交精品视频 | 国产91 丝袜在线播放 | 一级毛片久久久久久久女人18| 国产精品色| 超碰日本97美女人妻人人玩人人爱| 亚洲A曰本VA欧美VA视频| 神马九九九| 嗯阿好爽好紧| 99视频内射三四| 在线观看高清AV| 青青草中日韩在线| 亚洲丝袜二区| 户外裸露刺激视频第一区| 揉揉揉夜夜| 欧美一级专区免费大片| 3D污黄视频在线观看| 中日高清无码操逼视频| 国产成人91一区二区三区| 综合色图亚洲欧美| 天天草夜夜草高潮片| 女同性恋中文字幕| 国产伦精品免编号公布| 手机看片1025| 久久受www免费人成| 亚洲风情在线观看| 日韩精品第3页| 1024亚洲中文字幕久在线看片你懂的 | 日韩欧美大片免费高清啪啪| 97美日韩视频| 欧洲射精91| 日韩AV一区二区三区四四| 91在线精品| 嗯啊视频免费在线观看| 欧美成人性爱视频在线播放| 超碰欧美97| 水滴偷拍| 久久久啊啊啊| 又黄又硬又粗又长国产视频| 啊啊啊啊啊舒服| 中文字幕女同在线| julia在线观看久久| 综合熟女| 六月丁香啪啪| av中文在线| 色婷婷香蕉| 国产免费永久精品无码| 日韩人妻一区二区精品| 美女黄频a美女大全免费皮| 国内毛片无遮挡国产| 亚洲欧美黄| 国产精品乱码久久| 好爽视频在线观看视频 | 人妻一区二区三区视频| 91欧美大片| 91福利网在线观看| 人人人摸人人| 日本性爰一道本| 操逼国产免费| 久久精品国产亚洲AV高级北京| 久草免费福利在线播放| 成人乱人伦一区二区| 免费一级性爱久久| 欧美黄色大片在线观看| 秋霞网无码| 国产婷婷综合在线观看| 久久久久久亚洲Av无码| 国产女人和拘做爰视频| 欧美夜夜草视频| 久艹日日日| 外国免费性情大片| 91在线免费精品视频| 国产亚洲精品久久久久小| 欧美 日韩 亚洲 春色| 日韩欧美一级特黄大片| 狠狠色综合网| 欧美亚洲第1页| 久久伊人网视频一区二区三区 | 人妻精品一区二区三区| 伊人九九九| 久操操AV电影| 簧片免费看视频| 久久精品欧美一区蜜桃| 超碰碰97| 91精品婷婷国产综合久久竹菊| 亚洲高清色综合| 麻豆色99999| 久久超碰网| 国产欧美日韩一区二区三区| 久久曰曰| 亚洲国成人情色好看电影| 日产成人久久| 超碰在线人人射| 欧美经典一区二区三区| 亚洲天堂区| 天堂精品小草| 中文字幕福利视频一区二区三区在线观看| 久久久中文| AV网站高清无码在线观看| 蜜桃久久一区二区三区| 熟女视频久久| 丝袜美腿欧美| 99热线麻豆| 国产精品粉嫩福利在线| 乱伦熟女论坛| 中文字幕av乱伦| 99九九久久| 揉揉日日日日| 熟女六十路| 情色五月天网| 天天干天天操天天操夜夜操天天操| 久久直播国产| 人妻啊啊人妻啊啊| 国内一区二区免费| 五月丁香六月激情综合| 亚洲春色欧美| 97干在线视频| 九九五月天| 国产99 中文字幕日韩小视频| 久久精品视频在线观看| 欧美日韩另类在线播放| 1204金沙人妻懂旧版免费| 天天日天天搞天天干| 啊啊啊啊啊啊啊好爽不要| 91黄射| 波多野结衣一级视频| 亚洲图片视频小说| 啊视频在线| 操逼操2| 亚洲 欧美 另类 综合 偷拍| 亚洲欧美首页| 天色综合网| 国产一区二区三区久久久精品| 天天夜夜久久| av在线资源| 日本最新1区2区3区| 干婷婷综合网| 综合久久97| 午夜精品人妻二区三区| 激情五月天色播| 亚欧免费| 天天综合中文字幕 91| 伊人一区二区三区| heyZO天然素人无码AⅤ专区| 任我爽在线视频免费观看| 色婷婷五月综合激情中文字幕| 亚州欧美色图| 欧美色图亚州激情| 99热这里只有精品地址| 日本一区二区中文字幕久久| 久久精品男人的天堂| 麻豆精品久久久久久久| 免费αV在线视频| 亚洲做性| 不卡码视频| 蜜臀久久99精品久久综合| 牛黄色久午久| ..日韩av毛片精品久久久| 91骚熟女| 日韩97P| 亚洲国产婷婷在线播放| 一本大道青青| 亚殴在线| 欧美日韩国第一区| 精品视频久久久久九九九九9999| 思思视频免费看网站| 婷婷另类小说| 欧美午夜视频| 亚洲五月天激情| 高清国产av无码| 国产高清成人mv在线观看| 91天天综合在线| 国产乱青青草久久| 精品人妻久久久久一区二区三区| 九九av| 午夜福利合集| 加勒比色99999| 久男人久久| 97伊人网| 国产中文字幕在线点播| 欧美十八禁导航成人| 一区二区不卡视| 伊人操| 三级特黄60分钟播放| 两性综合网| 太久视频| 在线观看成人性爱免费小视频| 国模私拍一区二区三区神乳| 另类一区| 91视频成人福利网站在线一区 | 亚洲欧美性生活| 91爱看| 久草资源欧美在线视频| 色婷婷一区二区三区久久午夜成人不| 精品欧美老熟女一二区| 久操视频资源站公开| 一道本东京热加勒比一区二区三区| 精品一久久久| 另类欧美色| 男人的天堂1024| 素人一区二区三区日韩| 伊人影院中文字幕| 欧美日韩一二三| 逼操网站| 欧洲综合视频| 夜夜夜夜爽| 中国一级操逼视频| 日韩伦理视频| 亚洲男人的天堂va亚洲男人社| 午夜福利1区2区3区| 亚洲无吗在线视频| 青青操在线亚洲视频观看欧美在线 | 色情乱伦AV| 大香蕉十区| 欧美性爱中文字幕无线码| 精品久久久久久久久久久久 | 少妇被玩视频二三区| av线电影| 国产精品久久久久久片| 色性荡荡荡荡视频| 啊啊啊啊啊啊在线| 天天综合有色网| 天天做天天爱| 久热99| 日本不卡一二区| 高清不卡视频| 蜜臀久久久久久999| 骚女高跟AV在线| 国产精品久久久久久久毛片1| 精品国产72| 午夜啊啊| 麻豆2区1区天美| 人妻色偷色噜| 亚州男人的天堂| 黄色大香焦1级‘′‘| 亚洲永久永久永久永久一级一级一级精品 | 熟妇的味道HD中文字幕| 亚洲综人网| 无码免费一区二区三区啪啪| 亚洲无码一区成人免费午夜| 9+1视频网址| 囯戸精品高潮呻吟旡码| 久久综合久色欧美综合狠狠| 久久久精品国产亚洲AV无码| 啊啊啊啊啊啊啊啊视频| 亚洲高清在线| 老司机午夜精品视频| 欲射影视| 日本中文熟女视频| 久草婷婷| 亚洲情色91| 天天操福利视频综合网站| 精品一区二区啪啪啪| 狠狠爱综合网| 久久久18禁| 欧美色五月| 极品销魂美女一区二区 | AV天黑人| 国厂麻豆77q4| 骚鸭AV| 日韩中文9| 午夜国产综合视频在线观看| 国产网站在线播放| 91快色色色色色| 国产精品自拍欧美在线| 中文字幕av乱伦| 欧美性爱五月天| 99热综合| 亚洲中文字幕乱码无码一区二区| 国内精品不卡无毒99999| 后入人妻一区| 9精品久久| 成人资源中文字幕在线观看| 天天情欲宗合网| 欧美黑人与女人91| 亚州综合色| 欧美A片中文字幕| aaaa少妇高潮大片| 亚洲天堂女优在线| 亚洲18禁| 人妻少妇精品久久久| 美女上床网站| 老熟女阿 国产91| 成人无码欧美一级A片狼牙直播| 91人妻熟女| 久久受www免费人成| 欧美黄色片在线播放| 日韩av在线播放不卡| 婷婷五月天色色| 欧美性暴力猛交XXXX| 免费97视频| 九月伊人中文字幕| 天天视频网站黄| 日本日皮视频逼| 久久五月视频| 国产天天看| 操91| 日日骚AV| 亚洲色图殴美色图激情乱伦| 天天添天天干电影| 欧美色图人妻| 老熟女综合网 | 亚洲熟妇图片| 欧美激情一| 亚洲国产精品V?在线播放| 国产精品蜜臀久久久久无码AV| 欧美一区二区三区日韩| 一区二区三区日韩欧美| 黑人粗大V S日韩女优视频| 日本一区二区不卡| 操逼网站视频漫画国产| 嗯嗯嗯啊啊啊操的我好爽| 精品人妻视频一区二区在线播放| 一区二区三区国产在线播放| 亚洲国产麻豆一区二区三区| 按摩中文字幕| 久草线上视频免费看| 九九九九国产| 综合色啪| 麻豆精品久久久久久久| 91无摭挡| 一起草三级AV电影在线观看| 午夜福利成人免费视频| 亚洲第一二区另类图| 蜜臀久久精品久久久久视频| 亚洲一区中文精品| 91无码中出人妻视频| 亚洲欧美另类少妇精品| 色九九九九九九| 人人操人人摸avav| 精品人人| 男人的天堂va| 中文字幕一区二区三区视频播放| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 99欧美| 亚洲少妇激情一区二区三区| 国产精品麻豆免费视频| 国产精品经典一卡久久久| 九九九九精品视频| 四虎影院成年人片| AV男人天堂网| 把腿张开老子CAO烂你| 和协影院中文字幕三区| 性色av大全| 99九九久久| 美女久久久| 欧美激情总合网| 熟女人妻精品一区二区视频| 99久久99久久综合| 狠狠亚洲| 91碰超| 免费亚洲国产精品久久一区| 欧美一级特黄淫片在线观看| 一级黄碟在线观看| 国产精品福利视频播放| 96AV久久久| 亚州综合网| 视频在线观看一二三区| 精品91| 久插综合| 高清一区AV无码| 2017超碰| 黄在线| 97操97色| 操逼日批| 亚洲性少妇| 亚洲砖码砖专无区2023| 一区二区三区男女操逼黄色小电影| 黑人免费福利视频| 久久久久久久久久久999| 人人操人人干xxx| 成人十八禁日韩欧美一二三| 97人人操人人摸| 欧美肥臀在线| 日韩天美| 青草草免费网站av| 亚洲图片在线| 国产激情久久| 人妻少妇久久中文字幕一区二区 麻豆 | 另类欧美综合| 户外裸露刺激视频第一区| 毛片99-全集电影手机免费观看完整-B029AV| 亚洲精品人妻吞精av| 大香蕉狠狠爱| 亚洲精品色| 中文字幕日韩人妻视频一区二区三区 | 天美一区在线| 中文字幕 国产 精品| 日日骚一区二区三区| 国产一区二区欧美日本| 99久在线精品99re8| 99色热| 欧美性爱无码一区二区三区| 天天干夜夜| 操九九九九九九| 国产自产自拍| 欧美性夜| 欧美国产有色电影| 久久精彩免费视频| 国产美女销魂在线观看不卡| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 人妻一区二区三区| 在线欧美69V免费观看视频| 黑人性暴力毛片| 天天欧美欧美亚洲网| 成人免费福利在线观看| 久久久啊啊啊| 精品97精品97| 台欧久久精品视频| 欧美一级做a爰片免费视频| 99无码狠狠久久| 亚洲色图欧美色18直播在线| 青青国产在线拍揄自揄拍| 99久热| 美女黄频a美女大全免费皮| 激情五月天中文字幕色| 91爱做| 日本伦理一区二区| 国产人妖视频一区在线观看| 欧美性夜| 夜夜嗷嗷一区二区| 69精品少妇一区二区三区蜜桃| 18禁美女裸体无遮挡啪啪| 精品九九九| 懂色AV网| 亚洲国产福利视频| 综合天天网| 久久久97| 在线播放成人高清免费视频 | 亚洲男人的天堂网| 狠狠中文字幕| 操逼天美3区| 国产成人欧美精品在线| 欧美日韩人人精品| 亚洲天天综合| 久9久9精品| 91亚洲不卡一区| 久久久久久亚洲精品中文字幕人妻| 日韩人妻中文视频| 17c在线成人免费A片观看| 日本国产欧美一区三区二区 | 五月天色综合| 91丨九色丨大屁股| 国产乱伦性爱AV| 91久久久久久久| 精品国产乱码| 国内毛片热久久思思热| 日韩在线国产字幕| 亚州综合色| 超碰97中文| 97鸡把在线视频| 东北老熟女| 亚洲欧美电影| 夜夜嗨视频|