久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|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
返回資訊列表
久久精品中文字幕女同| 久久久久斤小| 久思思热视频在线观看| 日日做夜狠狠爱欧美黑人| 91碰超| 日韩电影中文字幕| 中文字幕少妇色 | 亚洲国产熟妇综合色专区| 国产精品情侣啪啪| 曰韩欧美国产传媒麻豆第一区| 国产黄色视频久久| 91老妇女| 久久久久久久久久久久黄色 | 女人天堂av在线播放| 九九九九热| 欧美黑人性猛交91| 丰满人妻av一区二区三区| 国内一区二区免费| 中出20p| 日韩AV电影网站| 911粉嫩人妻| 欧美大香蕉久| 肉丝无码中文高清| 干B| 欧美日韩国产中文精品字幕自在自线,| 亚洲熟女性高潮久久久| 欧美岛国精品在线观看| 后入国产| 九九九国产| 欧美 亚洲 另类 综合| 玖玖视频在线资源一区二区三区| 美国黄片aaa| 午夜精品久久久| 欧美97se| 91熟女视频网| 超碰吊日色| 91激情网| 日韩精品第3页| 啊好爽受不了无码| 日本 免费 一区二区三区 久久香蕉 | 超碰97护士| 91欧美少妇| 韩日巨乳美女免费视频在线观看| 女人爽到高潮久久久| 玖玖婷婷五月天| 中文字幕一区二区日韩网| 91夜色| 亚洲欧美碰碰| 欧美Ⅴ性爱| 欧美18 在线观看| 家庭乱伦国产| 青娱乐国产精品| 情趣丝袜无码操逼视频| 五十路六十路七十路熟婆| 成人久久久| 日本不卡一二区| 青青操在线视频| suv精产一二三区| 婷婷探花久久精品一区| 欧美熟妇精品黑人巨大91| 精品一区二区2| 91n.欧美| 天天日天天干少妇日| 九久9精品| 国产精品久久久久久久久久久久久久吹| 96免费视频在线| 美女干逼2| 超碰97资源网亚洲| 老妇女91| 天天看,天天做| 美女被艹尤物视频| 久久久久日本视| 嗯嗯嗯好爽| 欧美久久婷婷| 91麻豆天美国产欧美高潮| 日本三级精品| 九九视频黄色片| 草草网站影院白丝内射| 91精品黄在线观看| 欧美亚洲综合色| 佐山爱中文字幕| 91超碰在线播放| 色色九区| 九九色影院| 亚洲影视综合网| 和协影院中文字幕三区| 99re这里只有精品2| 好色综合| 日韩成人电影AV| 日韩内射视频| 亚洲另类色综合网站| 精品高潮| 99热这里都是精品| 伦在线97| 哈哈操电影| 免费一级黄色录像影片| 99热亚洲| 尤物视频偷拍免费| 五月丁香六月综合缴清无码| 欧洲无码一区二区| 视频二区美腿制服人妻欧美| 草草影院最新网址| 好吊色在线观看| 国产一区二区精品在线视频| 人人操人人摸人人看人人插| 亚洲黑丝在线| 一区二区三区国产在线播放 | 亚洲情色电影网| 国产大学生高潮在线播放 | 久久久久久亚洲Av无码精| 久久春色| 岛国福利在线精品播放| 日韩精品中文字幕二区| 91视频综合在线| 看日韩黄片| 综合一区中亚洲国产成人综合精品| 国产a级精品| 超碰诱惑| 久久,精品一二三| 97精品97| 日韩不卡在线一区二区| 免费网色网站| 亚洲AV成人无码一二三久久| 夜夜嗨AV蜜臀av| 欧美亚洲首页| 欧美亚洲丝袜人妻制服99| 欧洲亚洲综合| 超碰人妻天天干| 久草视频制服诱惑| 久久东京伊人一本到鬼色| 亚洲综合在线高清| 欧美影院一区二区三区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美精品成人一区二区在线观看 | 少妇99成人麻豆| 91高清欧美| 无码国产精品久久久久| 色97综合中文字幕| 国产高清MV操逼视频| 乱码熟妇人妻久久久| 96久久久精品| 99操视频| 日B操| 欧美九九爱| 国产乱子伦久久精品综合一区二区三| 99超碰色| 国产福利视频精品视频| 91男人天堂网| AV中文在线| 伊人九九九| 99色悠悠| 操逼啊啊啊91| 久久久无码视频| 99热97| 国产精品久久久久久久AV大片| 91美女丝袜诱惑视频| 青青在线视频日韩欧美| 岛国AV一区二区电影| 久久国产在线一区二区| 蜜桃午夜视频一区二区| 激情丁香五月| 人妻一二三区| 欧美亚洲丝袜人妻制服中文99| 天天干天天爽| 欧 美 自 拍 偷 拍| 欧美日韩青操| 五月丁香啪啪| 狼狼色丁香久久婷婷综合五月| 国产第11页| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚洲欧美黄| 五月丁香| 亚洲精品成人动漫在线| 大香蕉操久久| 亚洲伊人成综合成人网| 日韩无码AB| 亚洲日本成人动漫| 中文字幕乱在线伦视频中文字幕乱码在线| 久九九九九九九九热| 高潮内射在线| 天天干,夜夜爽| 中国AV美女| 蜜桃臀av一区二区| 综合97亚洲| 五月婷婷六月丁香| 国产精品免费视频人成| 啪啪资源网| 97爱综合| 久久精品| 亚洲欧美综合图片| 东方亚洲在线操逼天堂| 狠狠躁日日躁夜夜躁A| 人人操人人摸人| 91综合色噜噜| 天天舔九色婷婷| av大香蕉| 97资源超碰| 无套内射性感少妇视频| 欧美熟妇乱码在线一区| 日本黄大片在线观看视频| 久久中文字幕女同性恋一区| 97超色| 天天看特黄的免费网站| 欧美激情欧美精品| 蜜桃久久久久久久| 久99久视频精选| 欧美成人性爱视频大全| 免费一级特黄特色大片在线观看看| 91综合无码| 日韩综合色网| 大肉棒导航| 麻豆国产原创AV色哟哟 | 精品一国2| 欧美有码亚洲中文字幕一区二区三区四区| 婷婷五月天小说| 最新三级网址| 91中文字幕制服丝袜免费视频| 91 亚洲情侣偷拍 久久| 亚洲宗合网| 无码人妻精品一区二区三区九九| 欧美 亚洲 另类 综合| 999久久久九| 日韩中字av一区| 97久精品| 蜜桃视频一区二区三区在线观看| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 一区二区影视| 人妻天天爽天天爽三区| 日韩乱伦AⅤ| 免费黄色片。| 日韩免费看黄片| 人妻乱仑一区二区三区| 一区二区三区欧美激情| 色综合久| 久久这里只精品99re66图| 国产激情在线观看| 日韩Va亚洲va欧美Ⅴa久久| 操逼1区| 岛国毛片在线观看免费| 欧美日韩性爱无码| 制服乱伦| 精品一区96| 亚洲综合码| 天天天天天天天天综合| 欧洲站一级二级三级h| 色噜噜日韩精品| 久久久久久久97| 亚洲影院无码在线| 思思热久久成人| 白嫩国模丰满一二三区| 啊啊啊好舒服视频在线观看| 岛园激情| 色诱avtt| 怡红院亚洲怡春院av| 亚洲久9| 久久精品国产亚洲妲己影视| 中文字幕日本久久| 绯色AV粉色AV蜜臀AV| 东京热99999| 天天日夜干| 91深夜夜| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 日夜久久久九九九久| a片亚洲一本通视频| 欧美综合天堂| 思思热在线cao| 五月丁香成人网| 99国产在线绯色一区| 高清不卡 中文 人妻| 五十路三区在线| 欧美性爱91| 亚洲精品一区中文字幕乱码| 夜夜人妻爽| 网友自拍第一页| 乱伦Av网| 人人搡人人肉久久精品| 国产传媒av天美传媒在线| 久久精品欧美一区二区三区不卡| 国产黄a三级三级三级av在线看 | 亚洲日本激情| 五月丁香六月激情| 91操熟女视频| 日本精品第一视频在'| 五月婷婷激情网| 99热国产| 亚州操逼图| 熟女一区二区| 国产91亚洲精品一区二区三区| 久久男女激情视频网站| 99蜜桃臀久久久欧美精品网站| 超碰美国| 欧美激情综合色综合啪啪五月| 大香蕉青青9| 1769一区| 91逼逼女人91| 中文字幕精品探花视频| 日本加靬比网站发布页| 黄色免费网| 欧美色图天堂在线| 欧美亚洲小说| 伊人影院中文字幕| 激情小说在线视频| 超碰超碰欧美| 亚洲国产综合图区中文字幕| 亚洲操操操| AV在线播放网址| 太久视频| 日韩三级在线观看mp4| 大色综合| 岛国免费视频在线| 久久人妻视频网| 97爱亚洲| 女一区二区| 日本在线观看网址| 伊人久久大香线综合无码| 懂色Av| 国产精品情侣啪啪| 国产女s强制榨精视频| 激情终合网| 天天谢天天干| 色妇91| 国产午夜无码片在线观看影视 | 亚洲熟妇自偷自拍另欧美| 人妻精品一区二区三区| 人妻天天夜夜爽一区二区| 欧美性暴力| 91亚·色| A 在线网址| 亚洲色图 综合| caoni国产亚洲av| 9久久久久久| 青青国产精品在线| 亚欧性爱无码| 国产精品久久久午夜夜伦鲁鲁| 97综合在线| 97精品免费视频网站| 开心婷婷五月| 久久久久久9| 一区二区三区四区姦女| 亚洲国产精品成人无码久久久| 美女露胸露奶头| 婷婷久久久精品| 91天天日| WWW黄片COM| 国产精品色约约| 丁香六月婷婷久久综合| 伊人影院日本| 91老熟女91老女人| 麻豆视频test| 色嗨嗨在线| 欧中美三级一区二区三区| 草b在线 | 夜夜操老骚逼视频网站| 亚洲αv一区二区三区| 一本色道综合久久欧美日韩精品| 精品二999| 欧美性爱五月天| 看免费一级在线播放毛片| 久草老司机| 大香樵伊人网| 欧美人妻久久精品二区三区 | 九九九九久久久久| 91久久久久久久| 欧美精品在线观看| 色墦五月丁香| 国产浮力影院第1页| 日逼97| 老司机午夜精品福利视频一区二区| 婷婷五月天成人| 97精品一区二区视频| 白嫩嫩一区| 秋霞蝌科网日本一区| 男啪女色黄无遮挡免费观看| 超碰地址久久| 亚洲第一男人天堂| 久久r精品| 天天爽夜夜欢视| 五月天婷婷激情| 国产精品色片一区二区| 91九色蝌蚪在线观看| 亚洲激情片| 人妻天堂三区| 亚洲蜜臀精品视频久久| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 黄片免费日韩| 男女无套 免费网站| 巨乳特殊服务按摩| 乱人乱色一区二区三区免费| 欧美一区二区三区黄色影视| 欧美91久久久久| 97精品第3页| 欧美亚洲第1页| 97人肏| 夜夜嗨一区二区| 久久久久久久人妻| 中亚av| av天堂影视中文在字幕在线中文| 去干网最新版| 亚洲高清无码在线桃色| 国产精品久久久久久 百度| 精品中文字幕一区二区| 7777奇米影视久久| 久操网视频| 精品少妇人妻av久久免费| 老外又粗又长一晚做五次| 亚洲av无码成电影在线播放| 极品色| 色色毛片| 亚洲伊人a线观看视频| 乱伦色图网址是多少| 欧美日韩另类在线播放| 亚洲AV成人精品网站在AV| 免费观看网黄| 九月丁香综合网| 国产又操| 人人乐大香蕉| 久久中文色图| 懂色AV一区二区三区| 嗯嗯啊啊视频在线看| 99日精品欧美国产| 亚洲国产成人高清在线| 95精品在线| 天天影视激情欧美| 欧美日韩大陆黑人少妇99| 色网综合网| 在线洲亚线| 一区二区三| 午夜福利1区2区3区| 我要去看2个日本美女.com曹逼| 91精品久久久| www.色操逼| 人妻精品综合中文字幕在线 | 中文字幕日产av人| 超碰97色色| 日本高清一本二本免费不卡| 女优大全 - 91n| 99国产精品视频尤物| 神马久久网| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 黑丝少妇麻豆| 久久久久久久久久精| 易易A毛视频| 强奸乱伦AV网址| 午夜黄色免费在线观看| 亚欧美天堂在线| 四虎影视永久在线观看精品免费网站| 欧美日韩不卡传媒| 成人三一级一片aaa| 精品久久久九九九孕妇| 狠狠入| 国产强奸超碰AV| 级品肉射| 国产成人无码啪| 人妻啊啊人妻啊啊| 91老司机在线视频免费观看 | 日本孕妇一区二区视频操逼免费看| 国产真实野战在线视频| 91熟女综合| 久久久久久99AV无码免费网站| 婷婷综合网站| 99在线精品观看视频中文| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久 久无码人妻AV| 麻豆这里只有精品| 操死我了啊啊啊| 午夜视频好爽啊| 高清不卡一二三区视频......| 亚洲久久久| 天天做天天爱天天高潮| 一卡二卡三卡| 丁香六月婷婷久久综合| 伊人天天久久动态图| 五月婷婷丁香六月| 亚洲drav色图| 99久久久久久亚洲精品不卡| 屁股久久久久久久久| 激情文学网伊人| 久久久啊啊啊| 亚州伊人色综台| 日韩人妻无码不卡网站| 亚洲色五月| 99夜夜操| 97视频观看| 欧美色www亚洲国产阿娇要播| www.夜夜操| 国产精品久久久亚洲第一牛牛_在线观看 | av影片在线观看不卡| 亚洲夜色在线| 99久国产精品午夜性色福利| 99re在线精品78| 破苞ⅩXXX性无码动漫无码| 少妇人妻在线| 理论久久婷婷网 8| 日韩高清黄片| 成人情色综合网| 丁香婷婷久久| a片自拍直播视频| 99色婷婷中文字幕乱色| 手机看片1024你懂的国产| 97久操| 亚洲男人的天堂一区二区| 国产h小视频在线观看免费| 精彩国产视频播放1区2区| 双插性欧美一二三区| 欧美线天码中字| 熟女人妻av在线资源,黄色的资源| 精品综合久久久久久五月天| 欧美91精彩| 色五月网址| 51国产午夜精品视频| 国产乱青青草久久| 一本道综合色图| 91人妻最真实刺激绿帽| 深夜激情| 搞中出视频在线观看| 日本久久天堂| 亚洲?V无码专区在线电影| 91大香蕉伊人| 日本蜜桃| 天天日日舔舔| 国产 v乱码一区二| 大香蕉一区二区在线观看.| 偷拍99| 精品十三区| 99热自拍| 思思性爱| 国产亚洲精品激情| 国产精品国产精品国产| 色偷偷人人玩人人舔人人操人人摸人人爽 | **一级毛片国产| 亚洲一区日韩精品| 天天综合-91入口| 久久人妻少妇| 久久精品老司| 少妇被玩视频二三区| 久久婷婷六月综合| 男男H黄动漫啪啪无遮挡网站| 午夜舔阴达高潮视频免费看| 78精品在线| 亚洲九九视频在线观看| 磁力99AV| 欧美久久毛片基地| 国产黄a三级三级三级av在线看| 玖玖爱免费观看视频| 欧美日韩啪啪电影| 国产无码精品无码| 明星性猛交ⅹxxx乱大交| 女生看匆91网站| 伊人四虎综合| 九九九草| 嫩草黄页| 久湿久久 | 久久久久久久9999| 精品人妻一区二区免费看| 夜夜骑操视频| 91人妻久久久久久久久久久久久| 好舒服视频| 大香蕉国产中文自拍| 亚洲一二三精品久久网 | 女人天堂av在线播放| 日本媚薬中文字幕在线| 偷拍盗拍亚洲色图图片| 亚州性色| 欧美97在线欧| 天天草天天日| 国产成人 综合亚洲 天堂| 我要去看2个日本美女.com曹逼 | 久久99999| 欧美 牲| 老司机免费视频在线91| 久色99999| 老熟女中文字幕高清| 国产丸一视频| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | yy少妇精品久久| 91天天c| 国产亚热在线久久| 97超碰影音| 人妻熟女一区二区在线视频| 久热最新在线杭州| 亚洲日韩在线a不卡99精品| 思思热在线视频免费| 亚洲一区操| 欧美,日韩综合久久| 最新国产亚洲精品精品国产亚洲综合| 成片免费观看视频大全| 99久久久无码| 欧美伦乱爱| 精品丰满熟妇人妻一区| 91丝袜在线观看| 亚洲综合另类小说色区亚洲成av人片在www | 另类欧美色| 欧美精品三级黄片| 色官网色综合| 国产又粗又又黄又猛| 99热精品青草在线| dy888午夜老子影视达达兔| 人人做,人人操,人人摸| 精品国产一级久久| 亚洲国产综合久久久性感熟妇| 91久久堂| 精品国产乱码久久久久久网站入口| A级在线视频| 青娱乐久久艹| 成人色女网| 超碰在线日韩一区| 日韩免费看在线黄色片| 色综合五月天| 亚洲情色综合网| 男人的天堂 在线一区| 欧美亚洲另类在线蜜桃| 欧美极品女人的天堂| 亚州色图片在线色| 草草草视频在线免费看| 人妻熟女av国产网站| 久久久久久久久久久人妻| 亚洲涩图欧美| 亚洲国产精品成人综合| 婷婷五月在线视频| 97超碰国产亚洲精品| 伊人专区一区二区三区| 无码99| 高精欧美色| 国产人伦a片信息免费片| 美女露胸露尿口| 男人天堂导航| 在线国产一区二区av| 大香伊人在线一区| 伊人热综合| 日本免费中文一区二区三区四区| 超碰综合97在线| 久久青青草原免费视频| 日本一片一区| 秋霞免费无码视频日韩A片| 欧美综合站| 97在线公开视频| 丝袜美腿制服人妻二区中文字幕| 91在线丝袜视频| 丝袜人妻av一区二区| 欧美男女午夜啪啪| 久久久久国产精品久久久| 丁香六月激情综合| 欧美激情 亚洲色图| 日本韩欧美在线播放a| 强奸熟女一区二区三区| 大黄片做爱的大的| 91久久国产综合精品| 一区操逼| 欧美日韩亚洲高清不卡一区二区三区| 欧美巨大性舒爽顶到了| 国内黄色精品| 激情 欧美 亚洲 小说| 爱啪精品一区| 色天使亚洲综合在线观看| 动漫区日韩区欧美区| 高潮的A片激情扒开一区| 日夜干射色啊| 国产自产自拍| 看看日B真人视频| 深夜激情无码| 一本久道久久综合狠狠爱一密臀精| 伊人久久婷婷| 97操| 超碰中文字幕人妻草一区| 国产高清在线观看欧美| 亚洲国产97在线精品一区| 99自拍视频在线| 亚洲欧美电影| 91真人天天在线| 日本在线播放不卡一区| 久久国产精品一区二区| 久操九九九九| 色黄色美女大长腿午夜视频| 爱妻综合网| 五月丁香六月激情综合| 国产后入| 日日噜噜夜夜久久亚洲一区二区 | 中文字幕78| 秋霞曰韩R级| 成人性生活高清视频在线播放| 国产欧美一区二区| 麻花传媒免费网站在线观看| 一卡二卡在线播放| 97超碰无码网| 国产一级做a爰大片免费久久| 中文字幕乱妇免费视频| 久jiu久神马影院| 欧美另类综合久久| 成人国产二区三区在线,男女精品。| 炮色五月| 亚洲制服欧美另类内射| 欧美在线播放| 日韩97视频| 国产馆极品诱惑| 亚洲一欧洲中文字幕在线| 精品欧美乱码久| 国产成人主播| 91原创在线观看| 国产真实野战在线视频| WWW.操逼.COM| 国产精品午夜福利| 性性久久| 久久久精品国产亚洲伊人| 色综合天天| 人人操人人93| 蜜区区视频79 | 思思久热在线精品66| 欧美日韩亚洲国产中文永久天天看| 偷拍欧美综合| 久久久成人国产精品无码| 欧美一级A一级a爱片久久| 亚洲在线A| 91成人社区| 国产怡红院| 91五月天| 久久这里只精品99re66图| 国产三级在线现体验区| 欧美翘臀视频网站一区二区三区| 天美麻豆黄色录像| 青青草色插素人| 乱日视频| 成年女人一区| 日韩啪啪网| 亚洲人妻中文高清| 欧美日产国产在线成人第一区| 1240青青草一区二区三区视频天爱| 91熟女.com| 亚洲黄a三级三级三级看三级| 青青欧美在线| 啊啊啊啊一区| 丁香激情五月天| 婷婷伊人綜合中文字幕| 亚洲精品成人激情在线| 1024人妻熟女一区二区三区| 亚洲国产欧美一区二区潘金莲| 男女性无套 免费九一| 97视频免费播放| 国产成人精品网站| 国产精品日日摸天天碰| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 色狠狠综合| 欧美日综合| 九九aV| 久久久com| 久热这里| 看日韩美女二区三区免费操逼视频 | 色色色999| 激情视频网址| 婷婷爱五月| 97人肏| 九九九久千久久激情蜜桃在线看 | 国产精品久久久久久久久久久久久久久久久久 | 色色99| 99www.bibizy香蕉资源国产一区二区三区高清 | 亚洲图片 91| 人妻日日夜夜精品| 久久超碰免费的| 亚洲综合情色| 啊啊啊 在线| 欧美亚洲首页| 91天天看| 国产毛片久久久久久久| 亚洲成人无码影院| 99综合网| 福利风月五月天影院| 另类av天堂| 日韩精品一区,二区 九九...老司机| 997色在线| 97在线视频免费观看| Sekablack无码一区| 欧美一级国产一级| 亚洲另类在线观看| 亚洲天堂第一页| 国产精品一级二级在线| 天堂成人网| 精品人妻中文字幕4399| 白嫩国模丰满一二三区| 成人综合色网| 九九九精品一区二区无码| 亚洲中文丝袜美腿诱惑字幕| 日韩欧无码一区二区三区免费不卡| 日逼逼免费看| 热久久这里只有精品| 蜜奶av| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 91丰满| 伊人丁香五月婷婷| 人人操av| 97超碰精品成| 久久精品国产亚洲AV先锋| 太久视频| 日韩久久超碰色| 91蜜臀人妻中文字幕在线| a片自拍直播视频| 99色天堂| 久久亚码| av毛片aaaaa免费看| 天天天天天干夜夜夜夜夜操| 久久国产精品,久久国产| 自拍啪啪视频| 国产精品美女久久久久AⅤ国产馆| 91久久久久久| 成人天天爽| 内射老妇BBWX0C0CK| www.91色综合| 国产精品对白自产拍| 飘花国产午夜精品不卡| 综合色图区| 色五月AV在线| 天天色,天天干,天天干| 国产乱婷婷精品二区三区| 超碰97综合网| 亚洲天堂人妻熟妇视频| 欧美狠狠操| 丁香九月婷婷| a网站免费观看| 人乳av| 26uuu性物| 99热在线不卡| WWW.操逼.COM| 999在线电影香蕉| 一区二区三区一亚洲中文字幕、综合区灬| 日韩综合无码色欲vv| 天天干2019| 中文字幕三四区| 国产亚洲人妻综合日韩 久久| 欧美亚洲韩国视频十五区| 啪啪视频亚洲第一| 麻豆一区在线| 国产成人无码a| 91久久午夜无码鲁丝片久久人妻| 玖草在线视频| 加勒比在线视频| 91日韩国产欧美亚洲另类精盘州至城都| 免费看A片毛毛片在线播| 色 亚洲 91| 亚洲精品国产无码高清| 久久久久久久国产| 操逼片国产| 美女干逼2| 黄在线| 欧美色图片欧美色图| 色婷婷九月天天综合| 日日干夜夜骑| 九九香蕉网| 大香蕉综合网| 大香蕉 222| 翔田千里Av在线| 欧美日韩青操| 精品国产乱码久久久久久口爆网站| 熟妇国产免费一区| 免费观看啪视频| 日日骚网站| 日本久久久久久久久| 日本中文字幕不卡视频| 九九九久久久久| 欧美成人一级免费电影| 久久99干一本高清| 日韩人妻精品久久久久| 激情小说在线视频| 亚洲 欧美 另类 日韩 人妻一区| 园内精品自拍视频在线播放| 久久草视频污视频| 91一起操| 粉嫩av在线| 欧美久久人妻少妇一区二区| 国产超碰| 欧美精品宗合| 啊啊啊啊啊啊啊啊啊啊在线观看| 国产黄色av大片网站| 午夜九九九九九九| 伊人丝袜美腿高跟在线观看高清| 精品亚洲国产成人精品| 9久9久| 欧美少妇第一页| 国产精品一区二区 尿失禁| 欧洲综合色| 日韩精品第3页| 九九99精品| 中国农村熟妇毛片视频| 操91| 亚洲中文字幕乱码无码一区二区| 激情网色| 香蕉欧美| 大香蕉一人| 亚洲精品国产AV天美传媒| av天堂手机版追回| 中文AV制服乱伦| 999久久芭蕾| 97香蕉人人乳| 五月丁香婷婷色| 波多野结衣一级视频| 中文字幕第2页| 91无摭挡| 九九热超碰97亚洲最新香蕉| 无遮挡猛进视频免费无限观看| 免费精品国偷自产在线在线 | 中文字幕交换人妻| 爱爱动态60秒| 精品久久久久成人码免| 无码人妻丰满熟妇奶水区毛片| 亚欧高清v| 中文字幕日韩精品久久| 花花AV导航| 97在线资源| 嗯嗯啊啊用力视频免费| 日韩人妻资源在线看| 欧美亚洲日本视频久久久| 国产精品日本无码A片| 伊人宅男大香蕉| 91艹| 亚洲少妇在线影音| 国产白领连续中出在线观看| 欧美色色色| 亚洲精品无码少妇久久| 影音先锋视频在线| 亚洲国产精品V?在线播放| 91五十路| 熟妇人妻精品一区二区| 97草草| 东北操逼| #NAME?| 婷婷另类小说| 夜夜国产一区| 看黑丝美女操逼青青网站| 神马久久久久眼| 视频二区美腿丝袜制服人妻欧美 | 欧美人妻制服| 欧美操逼录像国产黄色国产| 国产精品3| 亚洲清纯唯美| 亚洲自拍青操视频| 99re在线精品78| 97精品久久久久中文字幕| 日本精品国产视频| 97日视频| 人妻免费观看| 久久久久久久久久久久欧美日| 日日黄色三级网站| 日本黄色裸日本黄色裸体 | 国产精品懂色tv影视免费观看| 嗯嗯啊好爽| 中文字幕一二三| 91骚熟女| 人妻另类 专区 欧美 制服| 国产毛片片精品天天看视频| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 精品欧美不卡在线播放| 日语五十路和六十路亚洲国产精品| 大学生美女口爆| 伊人网青青| 新久久AV| 日韩欧美字幕亚洲一区二区| 精品久久人妻成人网| 久久色情| www老逼91| 91伊人大香蕉| 色偷综合| 伊香蕉综合久久久久久久噜噜噜| 欧美一二三| 奇米四色网| 入口操逼网站| 日产狠狠干| 夜夜高潮夜夜爽高清视频一 | 国产成人无码高清| 婷婷激情五月| 亚洲综合有玛| 色偷偷人人玩人人舔人人操人人摸人人爽 | 亚洲无码 国产无码| 免费少妇一区二区| 女人双腿搬开让男人桶| 亚洲日韩一区电影| 国产亚卅97| 蜜桃香蕉久草精品在线| AV中亚| 国产精品国产自产高清AV| 一区二区娱乐网站| 清清一区二区三区四区不卡视频| 欧美在线啊啊啊| 一本大道青青| 欧美18 在线观看| 美國A片| 91啪9色| 日韩综合色网| 日本人妻最新在线中| 特级毛片特黄久久免费看| 蜜臀少妇一区二区| 欧美日动态视频| 久久超碰com| 亚洲精品天堂久久A∨51成人漫| 国产欧美亚洲精品a第2页| 99.色网| 精品免费成人久久| 免费视频在线一区二区不卡| 免费毛片在线播放| 精品十三区| 天天插天天操| 麻豆 亚洲 97| 女人精品内射国产99| 中国一区二区亚洲人妻| 9999伦理视频| 日日摸日日碰夜夜爽视频| 精品毛片av一区二区| 曰韩精品九九无码 | 久久久久久AV无码免费网站| 久久色一区| 欧美大的香蕉有线电视视频| 在线看的av| 白丝1区2区3区| 综合网亚洲在线| 国产99久久99热这里只有精品15| 91精品国产综合久久久蜜臀| 密臀国产在线| 欧美强奸乱| 天天看高清麻豆| 日本爽爽爽爽爽爽免费视频| 五月丁香成人网| 97天天插| 亚洲九月丁香| 中文字幕诱惑制服人妻丝袜美丝袜美| 成人毛片免费| 久久精品欧美一区蜜桃| 99久草| 五月天开心网| 亚洲资源一区| 天堂种子在线www网资源| 97超级色碰碰| 国产精品一二三在线看| 北京美女一区二区| 99视频这有这里有精品| 日欧美色| 国产中文字幕在线点播| 18一区二区三区| 国产在线视频午夜精华在| 欧州色图区| 欧美亚洲91| 一区二区三区在线资源| 亚洲丝袜少妇在线| 国产精品交换一区二区| 日本在线伊人啪啪| 国产11页| 女人天堂av在线播放| 久操B网| 少妇一级无码精品| 欧美久久久15P| 亚洲激情在线观看一区| 中出789在线视频| 涩涩这里只有精品视频| 欧美日韩青操| 韩国三级理论在线| 亚欧操逼片在线观看 | 国产九九久久久精品| 国产在线视频午夜精华在| 日本精品人妻少妇一区二区| 国产精品久久久久久久无码AV| 嫩草 人人网精品| 一级特黄aaa大片在线观看成人一级片在线观看 | 午夜欧美女人操逼| av橘色网站| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 人人操人人射人人干| 国产树林里野战在线看| 久久久精精精| 蜜臀精品1区2区| 欧美性生活免费网| 东京热AV男人的天堂| 五月天婷婷色| 黄人人操人人操| 天天天堂影视日韩亚洲91| 激情五月丁香五月| 一级一性爱免费视频| 亚洲色入欧美| 婷婷丁香五月综合| 亚洲最新Av| 香蕉大久久久| 日韩精品99999| 香蕉黄色一级视频| 爱丝福利| 蜜色网色哟哟| 强奸乱伦Av网| 91精品91久久久中77777| 久久久久久91香蕉国产| 日逼国产| 国产在线观看一区二区三区| 亚码人妻| 亚洲欧洲偷拍一区| av在线播放国产一区| 91模特在线观看| 亚洲综合影片| WWW黄片COM| 日韩黄片影院| 蜜臀99久久国产| 蘋果手機免費看成人Av| 2010男人的天堂| av天堂天堂av日韩| 亚州男人天堂| 中文字幕乱偷人妻久久艾草网| 五月天色综合| 伊人久大| 中文字幕日韩电影人妻| 久久精品日韩专区免费观看| 日韩三四五区| 国产 丝袜 欧美中文 另类| 国产精品懂色tv影视免费观看| 欧美一区二区三区黄色影视| 老女人爆菊| 亚洲国产欧美中文永久| 1204av韩国| 天天操天天干一区二区| 天天舔天天日天天射| 91狠狠色丁香婷婷综合久久| 老司机午夜精品福利视频一区二区 | 亚洲成人一二三区| 老司机香蕉久久久久| 色婷婷色99国产综合精品| 加勒比综合a∨| 精品人人插人人操| 97在线欧| 欧美成人精品A片免费一区99| 久久人体一区二区| 亚洲日本韩国在线| 99超碰碰| 麻豆蜜桃视频在线观看| 国产JDAV无码视频在线观看| 亚洲精品丝袜| 日韩A优精品在线观看| 很很很很操| 丁香五月久久| 日韩小电影| 蜜桃精品视频一区| 久久精品亚洲成a人天堂| 91观看 国产白丝| 欧美曰韩国产精品| 久久久久久久亚洲Av无码| 青青草这里只有精品| 一区二区三区四区五区高清无码永久视频 | 国产剧情在线| 伊人丝袜美腿高跟在线观看高清| 久久久久亚洲av综合波多野制衣| 职场同事知名国产国产精品久久欧美日韩 | 超碰人妻中文在线| 五月婷丁香| 国产日韩精品无码去免费专区国产| 91精品免费| 久草精品热视| 大屁股xxxxx| 精品九九国产无码| 欧美劲爆第一页| 精品二区三四区五电影 | 欧美亚洲自拍另类人妻| 992大香蕉| 欧美暴力猛交| 淫色网综合| 情侣开房子拍 日韩无码 女的很漂亮| 国产一区二区三三视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 91情色在线| 日韩无码AB| 成人久久精品| 91处女视频在线观看|