色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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| 逼操网站| 国产青青美女玩逼视频| 性影在线视频| 天堂网 主播 亚洲| 久久久熟妇熟女国产| 一本色道综合久久欧美日韩精品| 91久久久久久久久久久| 岛国黄| 精精夜夜| 欧美一级美片在线观看免费| 九月丁香婷婷| 亚洲一卡2卡3卡4卡乱码网站 | 一线黄色免费性爱片| 欧美后入式| 爱射综合| 午夜一区二区三区国产| 啊啊啊啊在线播放| 色99在线| 超碰在线人妻不卡| 国产成人久久久精品免费AV| 国产视频一区二区三区在线免费观看 | 一二区在线观看视频| 日本三级日本三级99| 99久久精品无码一区二区毛片免费 | 亚洲春色一区二区三区| 青青草大香蕉视频| 色综九九九一区| 久久亚洲不卡一区二区三区| 亚洲综合色婷婷| 亚洲天堂AV在线播放| 欧美色图第一页| 欧美亚洲韩国视频十五区| 天天天乱色综合全| 你草精品在线视频| 综合久欧洲| 日韩性爱视频免费在线| 乳欲人妻办公室奶水| 中文字幕99999| 国产精品农村妇女| 中文字幕精品资源在线| 激情视频图片| 夜色91| 亚洲αv一区二区三区| 青青草国产欧美非洲黑人| 亚洲在线a| 丰满人妻-区二区三区免费看| 青青青草原| 色老汉色| 欧美熟妇操操视频| 久久久久久久久久久999| 麻豆国产av网| 欧洲熟妇xxXx欧美老妇裸体 | 中文字幕人乱码中文字的预防方法 | 偷拍 精品另类 凸凹了四区| 五月天婷精品激情| 久综合网| 极品出轨视频网站| 精品视频专区| 少妇高潮一区二区三区在线| 1人人看人人摸人人操| 亚洲色宗合| 强奸乱伦AV网址| 激情久久av一区av二区av| 国产精品一区二区在钱播放| KK色在线影院| 91青青草| 九九热精品| 青青草久久| 亚洲色人| 麻豆精品久久久久久久| 久热伊人| 91neishe| 97这里只有精品| 97人人干| 五十路三区在线| 国产亚州高清国产拍精| 五月婷婷爱六月丁香色| 人澡逼| 亚洲导航深夜福利| 91欧美巨乳| 操逼天美3区| 国产丰满熟夫69mpp| 国产精品夜夜夜| 黄色大香焦1级‘′‘| 久久亚洲天天做| 色哟哟AⅤ| av大香蕉网站| xxxx网站亚洲精品| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美大香蕉专区网| 97超碰国产亚洲精品| 亚洲1区2区三区高清中文字幕| 麻豆黄色五月天| 欧美天天性| www久| 天天肏美女| 超碰人妻97| 久久这里都是精品| 亚洲无线码欧洲精品区别| 天天日少妇逼AV| www.91人妻.com| 亚洲久草AV色图| 国产刺激视频| 亚洲欧美日韩免费电影| 日逼五月天| 91人妻素女| 欧美热图99| 欧美男人一区| 男女性感激情网站| aa片毛片| 97久久久久| 99综合视频| 在线欧美69V免费观看视频| 中文字幕第95页| 肥臀熟女福利视频一区二区| 久久香蕉综合一本到3atv| 色爱天堂| 日日躁狠狠躁天天躁精品| 综合久草| 国产精品老熟女一区二区| 免费1级a做爰片观看| 熟女熟妇一区二区三四区| 91狠狠综合久久| 日韩传媒在线| 欧美另类综合久久| 蜜汁欧美| 欧美宗合网| 亚洲砖码砖专无区2023| 99久久精品无码一区二区毛片免费| 成人亚欧免费视频| 超碰在线974| 91色婷婷综合久久中文字幕二区| 欧美一级二级三级| 麻豆成人av| 四虎精品一区| 国产不卡片| 国产精品亚洲一级av第二区| 狠狠躁日日躁夜夜躁A| 亚洲图片91| 1769一区| www.99热| 久久久三区二区一区| WWW.操逼.COM| AA丁香综合激情| 亚洲最大黄网| 动漫爆乳3D奶水一区在线观看 | 欧美久久人妻少妇一区二区| 火箭成精品视频884必出精品| 亚洲二区精品在线观看| 久久久9 9 9精品| 天天干18禁| 91搞逼视频| 日韩av女优在线免费一区| 成人青青草原伊人| 性爱边摸边日免费AV| 国产精品点击进入在线影院高清| 人摸人人操人| 97中文综合| 一区二区三区精品视频| 99热精品在线观看| 日韩一性一交一A片俄罗斯| 91老熟女老女人国产老太| 综合国产影视三级| 亚洲精品97p| 狠狠干综合| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 亚州操操穴网| 亚洲成人日韩小说| 中文字幕欧美精品亚洲日韩蜜臀| 久久久久久久久久久久欧美日| 91人妻少妇| 99久久无码| 一品道视频一区二区三区| 操逼视频国产无套| 亚洲清纯综合| 超碰 另类 欧美 | 好涩综合| 欧美.亚洲.另类.丝袜.制服.诱惑| 99色在线观看| 婷婷丁香人妻| 偷拍超碰| 天天操天天干一区二区| 碰碰97| 国产视频一区二区三区久久亚洲天堂| 欧洲色色| 无套内射人妻在线播放| 国产人伦精品一区二区三区| 欧美色图中文字幕| 麻豆成人影音在线| 热久久九九热| 久久人人爽人人爽人人片Ⅴ| 人妻乱仑一区二区三区| 亚洲黄色AV电影| 人妻AV 中文字幕的| 亚洲啪AⅤ永久无码| 天天日天天操天天射河南省| 一区二区三区麻豆| 91影视亚洲| 久久XX| 国产原创精品| 黄色大香焦1级‘′‘| 婷婷三区| 超碰97精品在线| 国产精品色片一区二区| 大香蕉免费中文| 国产欧美日韩精品中文| 殴美在线AⅤ| 亚欧色图在线激情| 性爱视频免费网址| 免费精品无码一级毛片牛牛影视 | 九月婷婷久久| 国产女同视频在线播放| 在线无码网站| 先锋女优在线观看视频| 日韩丨制服丨中文|在线| 伊人大香蕉在线| 久久激情网| 自拍偷拍国产欧美日韩韩| 91少妇人妻| 国产亲戚伦亲在线| 精品无码一区二区三区| 蜜桃AV天堂| 91精品操美女| 美女的肌被草喷水视频| 97欧美精品综合| 一本道综合色图| 爽 好舒服 无码刺激久久| 国产高清成人传媒影视| 综合熟女| 久久黄片国产一区二区| 午夜在线播放| 偷拍五区| 欧美97色| 欧美|91色综合| 熟妇艹鸡八| 色97欧美| 国产刺激视频| 97中文字幕一区| 超碰在线人妻中文字幕| 欧美熟女丝袜| 3p国产欧美99热| 中文三一区| 婷婷五月成人| 日日爱99| 欧美在线l亚洲| Blackedraw视频一区二区| 九九热在线精品视频| 亚洲性爱乱操x| 老鸭窝成人| 精品国产网站| 日韩女模中文造逼| 欧美性爱中文字幕无线码| 日韩综合97P| 凹凸视频特色日本特黄| 94色色电影网| 色婷婷五月天| 97干97色| 日本免费二区三区| 青青草无码视频| 久久久久亚洲?V片无码V| 尤物视频新赏网鲜网色诱网| 久久精品亚洲成a人天堂| 久久成人东京热人妻| 五月婷婷影院| 亚洲无码太久| 久久永久无码人妻视频| 十八禁黄色| 99re在线视频国产| 亚州综合AⅤ| 综合欧美日韩在线| 99久久无色码| 精品一区二区三区蜜桃臀赵总| 国产亚洲精品一区二区三区| 男女国产精品| 久久综合av| 91老熟女老女人国产老太| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 色网综合网| 884t在线| 成人在线永久| 欧洲与亚洲欧美精品中文字幕| 熟女丰满人妻一区| 操久久久久久| 爱射综合| 大香蕉乱伦视频网| 偷窥自拍A片| 天天干干天天干干| 亚洲啪AⅤ永久无码| 欧美组图日韩亚洲中文字幕| 一本色道熟妇| 色九九九九九九| 强上我不卡卡| 欧美人妻中出| 懂色AV中文| 日韩 欧美 校园一区| 男人天堂网手机版婷婷| 色97欧美| 日日骚 av| 天天操天天射青青草| 超碰在线91| 欧美性爱十八禁| 亚洲欧美日韩制服另类| 日本中文熟女视频| 男啪女色黄无遮挡免费观看| 极品色| 我爱操| 性欧美精| 国产精品毛片| 玖玖久久久| 欧美激情综合网| 久9久9久9久9久9久9| 神马影院午夜福利久久久| 97中文超碰| 9久综合网| 久久久久无码| 日本道人妻久久久在线不卡色视频| 这里只有精品视频在线观看麻豆| 成年无码动漫av片无尽在线 | 中日韩久久久免费看| 久久婷婷苹果| 欧美色图20p| 99热在线播放| 波多野结衣AV无码一区| 久热一区二区| 日小BB小视频| 蜜乳AV一区二区三区四| 亚洲精品视频在线| 特级大荫道BBwBBwBBW| 欧美成不卡网| 婷婷尹人大香蕉免费| 欧美性生活综合| 97丝袜亚洲在线播放| 欧美极品少妇| 精品国产99| 女人被添高潮免费视频| 日本99久久| 国产精品另类一区大香蕉| 国产女人成人精品视频| 在线观看中文av字幕| 久久综合av| 天天懆天天日| 精品蜜乳AV免费观看| 亚洲精品久久久久毛片A片拉屎| 欧美日韩性爱精品| 日本丝袜美腿人妻九九| 久草精品一区| 亚洲综合影视| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 一本一道vs波多野结衣| 精品成人亚洲午夜电影| 亚洲欧洲综合视频在线| 特污免视频| 中文字幕国产| 91天美免费| 98一区二区精品| αⅴ天堂| 免费视频97| 一区麻豆 高清中文字幕| 波多野结衣AV无码一区| 国产精品无码久久久久2028| 777超碰| 乱色老一区二区三区的观看方式| 色婷婷丁香| 2019亚洲男人天堂| 亚洲欧美第一页| 欧美性色欧美| 国产成人亚洲精品无码古代早漏男| 婷婷深爱五月| 91N综合网在线| 无码人妻一区二区三区色欲aⅴ | 97电影院超碰| 中日韩久久久免费看| 成·人免费午夜在线观看| 中日韩欧美精品无码AⅤ一区二区| 91影库| 爱爱动态120秒| 一区中文字幕二区日韩| 国产精品无码av| 久久久天美| 97色伦欧美| 成人免费福利在线观看| 色呦呦国产精品免费看| 久久久精品中文字幕麻豆| 国产一级特黄大片处女| 黑人娇小av在线播放| 日本国产成人亚洲精品无码| 欧洲综合视频| 伊色久人大在线| 国产精品制服丝袜清纯唯美| 亚洲熟妇乱女区二区三区| 加勒比综合88| 婷婷精品视频| 色色97爱| 色婷婷五月天| 九九九网站| 操一区| 国产不卡的视频 | 亚洲综合有码| 91天天爱| 伊人久久综合精品欧美| 91日本在线观看| 中文字幕午夜精品久久久| 中亚精品极乱| A级国产欧美激情在线| 三级日韩一区二区三区| 精品妇女一区二区三区| 美女诱惑一区| 丁香六月婷婷综合| 色偷偷超碰亚洲| 婷婷五月天色网| 久久久av爱| 少妇被c 黄 免费观看| 免费看污网站| 啊啊啊慢点| 黄站在线免费观看| 簧片免费看视频| 91碰碰碰| 亚洲精品 大香蕉| 国产精品久久久| 欧洲天天在线| 涩综合导航| 性生活无遮挡纯毛片在线看| 黄网色一区二区三区四区精品| 26uuu最新| 超碰95| 国产精品高清2021在线| 亚洲精品一区二区三区在线播放| blacked精品一区国产| 一本一道人妻久久一区二区三区| 狠色婷婷久久一区二区三区_| 99RE在线视频精品,这里只有精品| 97精品视频免费| 九九九久| 国产亚洲精品自在线亚洲情侣| 精品97久久综合| 日本韩高清无砖码22o| 美国aaaaa一级黄片| 精品无码久久久| 国产97av| 人妻系列无码专区中文有码| 人妻人人操| 你草精品在线视频| 小说区 图片区色 综合区| 综合五月天| 九九九九九九九精品视频| 国产欧美日产一区二区三区 - 国产欧美日| 东北女人高潮视频| 国产日韩欧美亚洲精品95| 国产精品九9| 国产乱子伦一区二区三区在线观看| 色婷婷99| 在线观看不卡一区二区三区| 丁香婷婷激情五月天无毒不卡| 亚洲欧洲激情卡通另类文学四射小说网站 | 美女午夜福利免费视频| 国产亚洲欧洲在线观看| 亚洲熟妇一,二,三期| 人妻免费观看| 丁香六月婷| 亚洲无 码A片在线观看麻豆| 四虎884a| 亚洲欧美国产成人综合不卡| 久久精品无码熟妇一区二区三区视频导航| 久久极品伊人| 久久系列| 国产精品久久久| 看一级黄色视频| а√天堂资源官网在线资源| 欧美亚洲韩国视频十五区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲情色第一页| 亚洲图片欧美另类综合免费视频大大香| 91视频成人福利网站在线一区 | 五月天丁香网| 中文字幕亚洲永久精品| 九七超碰人人乐| 人妻少妇无码| 校园激情狠狠四射| 亚洲欧美不卡线| 亚洲不卡三级手机播放| 欧洲性爱无码区| 精品久久久久久AV无码| 成人性爱美曰韩| 国产福利精品最新在线| 亚洲欧洲另类| 九九色影院| 日韩啪啪啪啪啪| 开心五月婷婷| 久久国产熟女影院| 芊芊操逼视频无码| 精品区国产区一区二区三区| 思思热在线cao| 秋霞操逼片| 国产一级舔足在线观看| 韩国一级做a久久久久| 欧美日韩在线小说 | 久久久久久人体| 96精品久久久久久久久久| 密臀视频三区免费网站| 国产丝袜欧美在线视频| 欧美黄片欧美黄片xxx| 丁香五月婷婷啪啪| 亚洲精品欧美专业| 久婷婷一区| 中国黑人三级片网站上区| 骚日日av| 精品国模无码| 国产又大又硬又长又粗| 欧美拳交在线播放| 国产中午字一暮区| 免费αⅴ在线观看| 人妻少妇精品一区二区三区| 啊啊啊在线看| 久久人妻| 亚洲熟妇极品| 亚洲双插| 日韩丝袜二区| 狠狠色狠狠色狠狠五月| 日本黄色天堂| 国产精品suv一区| 日夜伊人网| 亚洲 欧美 中文 日韩超碰| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 97欧美精品综合| 欧美精品成人一区二区在线观看 | 67194无码不卡| 91久久精品美女高潮喷水| 国产精品一区av在线| 久碰视频| 操久久久久| 91人妻在线视频| 超碰人人在线| 丰满人妻-区二区三区免费看 | 久久天堂| 人妻久久久| 智利AV在线网| 琪琪精品免费一区二区三区 | 亚州操逼图| 久久一二三四五六七八九区区区 | 裸体美女国产免费久久久网站| a啊啊啊啊啊啊啊啊一区二区| 99热在线观看| 国产1727欧美| 偷窥自拍A片| 日日躁天天躁狠狠躁| 黑操B| 99久久久无码国产精品性啊聊| julia在线观看久久| 亚洲国产av中文字幕久久| 中文字幕视频免费| 色丁香久久| JuliaAnnXXX888| 婷婷五月天基地| 中韩中文字幕在线观看| 四虎 精品 WWW| 日本一级真人黄色性爱视频| 日日夜夜骚| 国产精品不卡av免费在线观看| 无遮挡h肉动漫在线观看| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 熟女激情综合网| 日日A∨| 久久狠狠色噜噜狠狠狠狠97| 国产夫妻一区二区| 亚洲日韩av专区无码| 看黑丝美女操逼青青网站| 国产二区三区免费视频| 成人精品欧洲亚洲| 99ri视频| 亚洲人成在线放东京热| 亚洲天天影视色综合| 操逼免费视频无码国产| 97在线播放 | 超碰 另类 欧美| 中文久久爆乳| 国产精品无码av| 丝袜色综合| 日本有码影片下载| 爱媛媛久久国产福利| 无遮挡一级毛片视频免费的| 欧亚韩国999| 玖玖资源中文字幕制服丝袜| 亚洲激情网| 久久亚洲国产成人| 午夜福利 成人 91| 97精品久久久久中文字幕| 精品人妻视频一区二区在线播放| 不卡一区二区日本视频 | 91天堂色男人的天堂| 男人天堂网站| 久久久青青草| 国产深夜福利| 97国产人人| 黑人与人妻| 国模限制级电影| 大香网站| 天天狠操| 男女性无套 免费九一| 久久久久96| 亚洲国产中文字幕| 五月开心久久AV官网| 中 文字幕一区二区三四 五 区日 日 骚| 欧美极度丰满熟妇hd| 男女做爰猛烈动高潮A片免费应用| 农村女一级毛卡片| 色哟哟AⅤ| 久久区| 国产精品97超碰| 日韩天天本| 怡红院成人av| 国精综合一二三区影视| 老师充足的奶水小说| 富二代亚洲精品99| 国产路线专区| 国产人妻精品一区二区三区秋霞| 91黑丝少妇| 大香蕉综合在线| 国产精品国产| 97欧美资源| 91色射| 精品国产人成在线| 久久国产在线一区二区| CCYY草草影院地址入口| 最新中文字幕精品在线| 超碰在线成人| 男人的天堂在线有码| 亚洲AV高潮| 97se综合| 男人的天堂免费| 神马久久久久久久| 色牛牛AV| 99热导航| 欧美色图色综合| 日韩视频啪啪| 青草视频在线看看看看看看看看看| 色婷婷五月综合激情中文字幕| 久热大香蕉| 亚洲一区二区麻豆影院| 97超碰超欧美。| 毛片99-全集电影手机免费观看完整-B029AV| 日本加勒比无码专区一二三| 亚洲狠| 狠狠色噜噜狠狠狠狠狠色综合久久| 精品久久久无码| 热热色青青草| 欧美激情中文字幕另类小说| 欧色综合| 国产真实子伦对白| 亚洲欧美精品一区天堂久久| 人妻少妇久久中文| 逼操网站| 一区二区三区四区久久视1| av天堂加勒比| 久久久久久久伊人精品| 欧亚乱色熟一区二区三四区| 丝袜足交视频| 色婷婷香蕉| 精品97久久综合| 色欲久久久久综合网| 另类图片五月天| 韩国女主播青草在线| 亚洲国产成人精品999| 国模限制级电影| 日韩二区三四区五区六区在线看| 中文字幕一区二区三区四区在线视频| 深爱五月天| 天天网综合| 91九久| 一级性爱视频免费在线| 天天看高清麻豆| 午夜视频好爽啊| 91亚州日韩高清| 思思热在线视频免费| 日产中文字幕2020| 日本免费中文字幕在线| 5252色欧美在线| 18禁精品网站在线看| 亚洲熟女乱综合一区二区三区| 丁香六月激情| …中文字幕亚洲乱,97人妻无码费视… | 极品色| 花野真衣| 欧美18老人禁| 97色涩| 大香蕉黄色一区| 国产家庭乱伦表演| 欧美黑人日韩少妇色情| 性欧美天天| 97色诱| 色综合国产在线观看| 久一区久久蜜桃| 久久五月份| 超碰日韩人妻| 色综合 加勒比| 国产亚洲日韩在线三区黑人| 九九成人精品| 搡老人老9丨女老熟人| 啊啊啊啊在线播放| av国产无码| 97国产超碰| 欧美人妻中出| 人妻啊啊人妻啊啊| 国产AV毛片| 九九热在线精品视频| 亚洲各类熟们中文字幕| 国内成人圈中文字幕无码视频| 嗯嗯啊啊视频在线看| 91大神精品长腿在线观看网站| 亚洲资源网| 欧美午夜精品久久久久久超碰| av网站在线观看了| 中文字幕精品免费一区二区| 亚洲色交| 亚洲欧美日韩免费观看| 中出欧美| 精品久久久久综合无码| 亚洲欧美综合网| 亚洲 欧美 另类 日韩 人妻一区| 精品精品精品| 夫妻四区五区六区| 亚洲激情 欧美色图| 精产国品一区二三产品| 开心五月天激情网| 欧美亚洲日本激情在线| 色噜噜精品一区二区三| 久久婷婷综合国际产色怕| 九九精品99| 91精品国产91综合久久蜜臀| 国产97av| 女性91网站| 中文字幕天堂在线| 青青草大香蕉视频| 欧美 亚洲| 少妇九九九九| 夜夜躁狠狠躁日日躁av| 69丨亚洲丨精品丨入口免费播放| 国产乱弄免费在线视频。| 蜜桃视频一区二区三区在线观看| 亚洲va综合va国产va中文| 91久久久久久| 日韩pv中文| 在线观看色视频| 国产女人操逼视频| 乱论91| 午夜男女爽爽爽在线视频 | 欧美黑人精品在线播放| 女人双腿搬开让男人桶| 闷骚老熟女15P| 密臀成人视频久久久| 91国产操逼视频| AV综合中文字幕干| 丝袜综合| 亚洲高清自拍| 国产九九九九九九九九| 国产精品一二三免费网站| 日韩不卡网操逼中文字幕日韩| 91宗合网| 日韩欧美操逼xxx| 中文字幕一区日韩精| 97超碰天天爱天天爱| 久久机热| 看看小穴| 亚州色图欧美| 欧美日韩中文视频播放| 欧亚乱色熟女一区二区| 国产久久一区二区午夜| 激情久久日韩精品中文字幕麻豆| 天天干天天舔| 草莓精品视频| 偷拍欧美激情| 2017天天操天天日| 欧美国产欧美在线观看| 91老熟女逼| 人妻丰满熟妇av无码区蜜桃| 97精品熟女少妇一区| 色婷婷成人综合| 一区二区中文| 精品人妻一区二区免费蜜桃| 国语av狠狠色丁香婷婷综合激情| 久久性爱视频| 超碰碰97资源站| 9久久精品| 国产一线二线三线av| 九色精品视频导航1| 久久精品人体AV| 少妇精品久久| 观看免费区二区三区二| 久久久久亚洲熟妇熟女| 久久神马影院| 91社区拍啪人妻| 欧美亚洲综合999| 操逼逼福利视频| 色天天野狼综合社区| 免费啪啪啪网站18岁| 国产女人9999| 男女激烈网站最新| 久艹99| 操逼视频色| 久久久精品一区二区| 日韩欧美国产高清视频| a啊啊啊啊啊啊啊啊一区二区| 亚洲一区二区三区播放在线| 九九久久久久久爱| a'v在线资源| 狠狠躁天天躁日日躁97| 五月婷婷色| 激情小说在线视频| 1二区9| 国模吧 一区二区三区| 亚洲综合第一页| 亚洲五月丁香花狠狠干一区二区三区| 亚洲性综合11| 在线综合 亚洲 欧美中文字幕 | 33044男人的天堂深夜备| 不卡超碰护士AV在线免费播放| 日韩猛交| 激情五月天丁香社区| 操人妻视频| 色av中文字幕| 中文字幕永久在线| 国内偷拍精品一区二区| 大屁股熟女一区二区三区| 色情综合网| 无码丰满熟妇一区二区浪潮AV| 中文字幕精品久久久久人妻红杏ⅰ | 91c色| 蜜乳中文字幕a在线| 97久久久久| 色综合 加勒比| 大香蕉伊然在亚洲91| 一区麻豆 高清中文字幕| 91精品大奶人妻| yellow网站免费观看日韩高清无码| 亚洲欧美成人网站AAA| 91综合熟女| 男女一进一出视频久久| 18禁的网站在线| 人妻丝袜美腿中文字幕| 免看60秒涩涩视频| 久久綜合很很很| 黄页大片在线观看| 久久久国产成人一区二区三区在线| 东京热视频网| 日本精品网站在线中文| 网友自拍第一页| 国产蜜臀在线| 99久久久无码| 日日干夜夜操视频h| 毛片电影一区二区三区| av日韩在线观看电影| 摸奶性爱视频网站在线免费播放| 欧美天天综合| 欧美精品23| 一级特级aaaa毛片免费观看 | 日本在线视频导航| 综合色99| 麻豆天美国美国产| 97干色天堂| 亚洲熟女乱综合一区二区三区| 国产亚洲色婷婷99精品91| 日韩ab网 | 亚洲男人的天堂网| 国产视频97| 亚洲图片欧美色| 国产精品久久久吖| 成人性爱美曰韩| aaaa少妇高潮大片| 激情五月综合| 欧美国产日韩清纯唯美| 天天综合网一91网| 国产青视频| 制服丝袜第二页| 成人性交免费视频| 国产亚洲色停停久久99精品91| 久久久天堂| 中文字幕一区二区三区四区在线视频| 欧美日韩国产一区二区小黄片大全| 在线无码网站| 日韩欧美视频青青| 最新9久久久9免费视频| 97在线免费观看视频| 久久精品国产Aⅴ| 免费观看国产不卡av| 一级特黄aaa大片在线观看成人一级片在线观看 | 超碰碰激情97+久| 蜜桃视频啊啊啊啊| 欧美少妇色图| 无码伊人久久大杳蕉中文无码| 小草三级久久观看| AV男人天堂网| 久久亚州精品成人Av无| 日韩乱码Av| 亚洲综合贴图91| 日韩电影中文字幕| 欧美高清18A片| 亚洲国产精品9999在线观看| av一区二区三区 中文| 爱射综合| 亚欧美色图| 久久二| HEYZO高无码国产精品227| 在线视频五十市| 国产精品ww久久| 91超碰人人| 加勒比伊人| 久久 国产精品 一区| 久久人体一区二区| 亚洲无992tv| 91色艳| 99亚洲国产精品色一区二区三区| 久悠悠av| 日本人妻伦在线中文字幕| 精品国产肉丝袜在线拍国语| 欧美大色交| 亚洲精品无码成人久久久99| 精品视频97| 欧美日韩另类在线| 欧美se亚洲| 国产a片操逼| 大香蕉之青青草原| 国产精品久久久久久久黄无码| 婷婷爱五月| 97碰久久| 男人的天堂2019AV| 欧美人妻熟女在线| 国产按摩一区二区三区| 尤物av网站免费在线播放| 任我爽视频在线观看| 青青草福利视频| 五月婷婷激情综合| 欧美精品欧美精品系列 | 日韩有码中文字幕女同性恋| 99爱精品| 懂色av色欲av蜜臀av| 97天天弄| 丝袜六区| 国产精品久久久久久久电影渣男| 人妻喷水| 97色干| 国产女人与拘做受视频免费| 麻豆一区二区三区在线看| 久操高青| 综合欧美日本三级| 9九九国产| 97超碰色屌| 欧美顶级黄片AAAAA在线免费看| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 亚洲欧美另类激情小说| 91久久国外网| av网站国产主播在线| 青娱乐大香蕉| 首页亚洲国产高跟丝袜诱惑视频| 熟女人妻精品一区二区视频| 亚洲最大91网| ?亚洲伊人伊成久久人综合网| 国产无码高清操逼视频| 欧姜老司机| 女人天堂网| 四虎国产成人精品免费一女五男| 啊啊啊好爽快点啊啊啊嗯嗯| 操操逼视频| 久久国产乱子伦精品免费女,网站| 97干色天堂| 色爱综合网欧美| 欧美黑人性猛交91| 五月天婷婷基地| 国产一区二区欧美日本| CCYY草草影院地址入口| 清纯唯美激情| 日曰骚久久精品| 夜夜嗨一区| 欧美激情色婷婷花野真衣一区二区| 嫩草影院在线观看精品| 日韩操逼HD| 岛国免费黄色网址| 女人被男人桶爽视频网站| 国产精品人妻一区二区| 秋霞Av理论一级在线| 97碰| 中文字幕日韩精品久久| 蜜乳视频网站| 欧美日韩精品一区二区三区高清| 亚洲免费在线探花| 丰满岳乱妇一区二区三区| 久操凹凸视频| 日本性爱网址| 久久av一级av少妇av高潮| 精品国产a∨一区天美传媒| 色香欲综合| 97爱b| 欧美另类天堂| 综合网 欧美| 久久国产免费激情视频| 国产树林里野战在线看| 精品国产人成在线| 久久久亚洲Av| 国产精点久久久成人| 五月丁香啪啪| 中文字幕片| 中文字幕精品亚洲熟女| 中文久久| 国产成人bd在线观看| 大香蕉伊利av| 亚洲淫色网中文| 亚欧操逼片在线观看 | 性色高清..……| 999综合网| 久操凹凸视频| 欧美制服网站美腿丝袜| 成人精品视频一区二区| 综合网亚洲在线| 久久精品日韩| 日本午夜福利视频| 韩国三级三级BD在线| 91欧美综合在线| 久久精品一区二区一8| 岛国精品视频在线观看| 大香蕉伊利av| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 在线小说视频一区| 97手机日韩| 殴美在线AⅤ| 99色天堂| 色97综合中文字幕| 97手机日韩| 精品熟女呻吟久久91| 内射小黄片| 一区黄二区黄| 欧美爱爱97| 国产精品无码久久久久2028| SS久久| 亚洲人妻精品一区二区| 日韩欧美大力操| 屁屁影院一区二区三区国产| 60秒试看最爽10分钟网站| 久艹日日日| 欧美大码在线视频| 欧美亚洲情色| 成年男人的天堂| 性久久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久久国产精品熟女人妻| 亚洲欧洲日韩中文字幕一区| 九月婷婷综合| 日本东京热久久久电影| 日韩一级二级| 97超碰色色| 亚洲操逼无码| 91色色综合| 欧美精品日韩一区二区| 久久爽爽精品| 日韩一级欧美一级在线观看| 网友自拍第1页 | 精吧天堂| 六月丁香久久| 天天射夜夜操| 久久曰曰| 三级AV入口| 哑洲在线| 日韩情色AV| 日va操| 天天爱天天操| 超碰97男人| 欧美日韩另类在线播放| 久久久一区二区| 欧美少妇大量自拍视频在线观看| 日韩精品中文字幕一 | 操亚州| 69精品人人人人| 97视频在线看| 你草精品在线视频| 立川理惠加勒比无码| 国产91亚洲精品一区二区三区| 久久久久久国产精品| 在线观看成人性爱免费小视频| 综合色区偷拍| 国产精品高朝久久久久久久| 婷婷五月丁香五月| 国产一区自拍欧美日韩| 欧美综合777| 无码久| 女生自91网站| 97日本超碰综合| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 色香AV| 亚洲男人天堂网站| 中文字幕在线2| 99热精品国产| 中国一区二区亚洲人妻| 999精品乱码| 蜜桃臀久久| 久久大陆| 精品97久久综合| 青青草吊丝| 18精品一区| 精精夜夜| 免费A V在线| 免费在线黄片视频| 26uuu最新| 深夜激情| 99色婷婷中文字幕乱色| 精品.99999| 国产高潮AA片免费看| 日本一区二区亚洲综合| 国产精品点击进入在线影院高清 | 色欲三区| 久久av一级av少妇av高潮| 国产精品嫩草影院免费| 免费观看性欧美一级| 国产精品色哟哟| 欧美日韩国产电影| 亚洲日韩少妇一道本视频| 99re这里| 国产超碰欧美| 国产精品久久泡妞网站| 极品少妇久久久| 91福利网在线观看| 精品人妻一区二区视频| 久久久五月天| 大香蕉国产中文自拍| 亚洲免费97免费| 极品后入免费视频| 操我啊啊啊啊啊| 一二三四视频中文字幕在线看| 91综合熟女| 偷拍盗拍亚洲色图图片| 亚洲久9| 97天天| 岛国毛片在线观看免费| 激情综合网五月婷婷| 亚洲黄日韩无码专区| 欧美亚洲一区二区久久久婷精品大包诱| 91丝袜在线视频| 人人妻人人澡人人爽久久av| 草草草视频在线免费看| 国产女人操逼视频| 大鸡吧尹人在线| av草草在线电影| .精品人妻一区二区三| 欧美在线播放aaaa| 青青草字幕AV| 三级色影综合网| 精品人妻一区二区三区四区石在线 | 97伦乱| 日韩中文字幕国产| 人妻久久久| 天天日天天操VV| 成人免费性爱视视| 最新加勒比丝袜在线| 搡老熟女免费视频| 97视频在线观看高清资源| 乱伦av国产| 久久久精品,3|