亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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资源| 欧美日韩岛国大片在线观看| 久久东京热成人| 夜夜嗨AV一区天天| 九月丁香婷婷色| 91久热| 高清无码国产亚洲| 久热伊人| 懂色天天爱天天日天天射天天澡| 欧美久久久| 国产精品自拍欧美在线| 78精品| 蜜桃传媒一区二区亚洲| 日韩黄色成人性爱| 国产高清视频无码在线| 极品后入免费视频| 国产强奸无码乱伦| 伊人嫩草| 日韩电影天堂视频一区二区| 亚洲第一综合| 综合久久久久久久综合网| 干b网| 国产九九久久久精品| 国产乱伦性爱区| 国产免费内射视频| 日本淫穴在线| 国产精品色片一区二区| 日韩精品一区二区高清| 欧美色图亚洲色| 欧美精品久久96人妻无码| 8050无码八戒| 综合网亚洲在线| 国产乱人妻精品入口| 嗯嗯,啊啊,国产精品| 免费啪啪一级视频| 美中日韩无码| 亚洲精品无码少妇久久| 亚洲AV无码国产精品久久久久| 久久久久国产精品久久久| 久9综合在线| 和协影院中文字幕三区| 99蜜桃臀亚洲成人在线观看| 亚洲自拍欧美国产首页网曝 | 日韩欧美福利视频看看| 九九九九精品| 欧美18 在线观看| 人人操人人色网| 97色操| 人妻久久| 欧美激情久操网| 成人aⅴ一区二区三区| 美日韩成人| 国产真实野战在线视频| 亚洲欧美性生活| 久久禁| 丝袜AV一区二区三区| 亚洲色图20p| 麻豆国产精品午夜视频| 久久婷婷色综合一区二区三区| 国产精品一区二区手机看片| 91爱网| 亚洲日韩av专区无码| 久视频在线观看| 色 亚洲 91| 人人操人人摸人人看人人干| 亚洲天堂色图| 亚州色图欧美| 中国国国产一级特黄毛片| 99re6在线视频精品免费完整版安卓版| 欧美高清无码免费视频高清版| 中文字幕在线观看二区三区| 97射欧美| 伊人久久亚洲中文字幕| 九色 人妻 大香蕉| 盗摄 精品 另类 一区| 国产精品嫩草久久久久| 欧美日韩国产另类综合| 亚洲激情色片| 艳尻美人妻| 性色avv| silk lablo在线观看一区二区| 嗯嗯嗯啊啊啊在线免费观看| 在线日韩精品一区二区三区| 国产人妻久久精品一区二区三区| 日韩不卡毛片Av免费高清| 亚洲日产专区| 免费日韩黄片| 日夜干射色啊| 久久久久久久伊人精品| 乱伦a片视频| 嫩草美女久久| 91在线丝袜视频| 亚洲无码国产探花在线观看| 嫩草伊人久久精品| 啊啊啊在线观看免费视频| 亚 欧 美 综合| 亚洲成av人片色午夜乱码| 亚洲超碰AV| 日本高清有码网址视频| 五月婷婷激情| 青青草日本中文字幕| 日韩人妻精品中文字幕| 99这里都是精品| 大逼色网站| 91精品人妻一区二区三区蜜桃| 好湿好紧视频| 另类小说综合网| 欧美性爱另类综合| 亚洲精品1区| 超碰色男人操熟女| 成人午夜小视频手机在线看| 97玖玖人妻| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 人人做天天爱| 色色色色电影网| 日本一区二区三区欧美日韩中文字幕| 99999久久久久9国产精品| 麻豆福利视频导航| 亚洲精品一二牛牛| 好湿好紧好爽 视频| 日韩美女久久一区二区三区| 欧姜老司机| 久久受www免费人成| 激情综合亚洲| 999精品女人| 顶级丝袜熟女一区二区三区| 白丝少妇一区二区| 资源新线在线天堂| 99精品丰满人妻无码| 亚洲国产精品无石码久久| 日本成人电影资源网| 亚洲AV成人无码久久精品播放| 99激情| 超碰人妻中文在线| 在线观看亚洲专区| 欧美成人国产精品| 激情小说成人日本无码一| 日本九九久久99播| 精品人妻一区二区三区四区| 五月丁香婷婷综合| 大香蕉中文| 黄污污污污| 天天干18禁| 久久天天摸| 黑人免费福利视频| 久热久一区二区三区| 人妻一区二区三区视频 | 26uuu性物| 日韩一级二级三级在线不卡观看完整| 午夜欧美J进J出白浆流出久久久| 操高情无码| 亚洲在高跟鞋自慰久久在色线| 久久国产精品m码| 国产成人网址| 色呦呦呦在线观看视频| 麻豆成人影音在线| 亚洲综合影片| 大香蕉一区二区在线观看.| 免费黄色片子| 777超碰| 亚洲福利中文字幕在线| 操婢日韩| 天天色天天干天天爱| 五月综合久久| 亚洲日韩美女中文字幕乱| 亚洲狠狠入| 97中文超碰| 精品国产精品一区二区| 欧美日韩香蕉| 狠狠色狠狠色狠狠五月| 日韩三级在线观看网站| 男人的天堂99| 成年人黄色视频免费| 最新加勒比丝袜在线| 尹人免费观看视频在线| 69国产对白刺激| 久久久久96| 欧美白嫩女HD| 色盈盈影院| 久久XX| 国产精品爱欲| 国产麻豆一级精品视频| 男人a天堂手机在线版| 欧美一级美片在线观看免费| 日本高清免费一本视频在线观看| 91社区伊人| 欧美亚洲手机在线| 久9无限国产| 欧中美三级一区二区三区| 夜夜嗨TV| 成人五月天丁香激情综合| 农村少妇久久久久久久| 亚洲综合第一页| 久久区| 精品高清av中文字幕| www.99色| 久久亚洲AV无码专区国产精品| 人人射人人操人人摸| 超碰人人超在线观看| 日本欧美亚洲高清在线看| 狠狠色噜噜狠狠狠狠狠色综合久久| 波多野结衣一级视频| 国产乱人伦AVA麻豆软件.| 日韩性爱播放| 亚洲国内精品成人不卡| 精品区9| 成人性爱美曰韩| 欧美一级在线观看成人| 国产剧情一区在线观看| 玖玖在线视频| 国产在线视频午夜精华在| 亚欧性爱无码| 不卡六六在线91| 国产中午字一暮区| 一区二区影视| 国产成人无码啪| 日本在线一二| 玖玖无码超碰| 婷婷在线视频| 试看60秒 爽| 亚洲一区二区性爱电影| 歐美性天天| 久久国产精品m码| 一起草三级AV电影在线观看| 亚洲中文字幕av| 91欧美美女日韩国产婷婷| 蜜汁欧美| 日本 欧美 国产一区| 亚洲精品 超碰| 91白虎| 51一区二区三区| 2019亚洲男人天堂| 一区二区你上我| 91P0RNY大屁股人妻| 97精品一二区| 国产成年免费大片黄在线观看| 亚洲人久久久网| 国产精品爆乳懂色蜜乳| 欧美精品偷拍| 免费在线观看国内色片网站网址| 欧美激色| 120分钟婬片免费看| 色在线69堂| 嫩草影院性色| 亚洲人天堂| 欧美1727免费观看视频| 国产福利电影| 97在线视频网站| 超碰九色| 在线色导航| 欧美日韩97在线| 欧美亚州手机在线| 秋霞免费AV| 欧美91网站| 亚洲砖码砖专无区2023| 97色碰| 曰本91情色| 欧美老熟另类| 大伊香蕉在线视频免费| 色悠久久久av| 超碰在线人人射| 把腿张开老子CAO烂你| 九九超碰综合网| 少妇蜜汁| 日韩天堂av电影在线观看| 婷婷丁香五月激情啪啪| 亚洲黄网在哪免费看| 日本免费人成视频播放120秒| 亚洲色图欧美一区二区不卡| juliaann丝袜| 变态乱伦伪娘灌肠一区二区| 亚洲男人天堂2017| 国产精品视频在线观看| 91精片| 老女人综合网| 亚洲欧洲日本精品中文a∨| 欧洲黄色网| 欧美亚洲素人制服精品| 91色人妻| 国产精品网址| 97摸视频| 国产亚洲在线| 大香蕉在线视频15| 中文字幕女同在线| 高清无码人妻久久久一区二区三区aⅴ| 亚洲女毛多水多21P| 人妻熟女一区二区在线视频| 很狠操| chaopen97久久| 超碰综合97在线| 91色欧美| 在线国产福利网址导航| 狠狠综合网| 久久一区无码| 亚欧洲日韩国产精品| 搡老女人老熟女91| 日本日皮视频逼| 992这里有精品| 亚洲色图在线视频| 啊啊啊啊啊舒服| 国产亚洲深夜激情| 成人影 天天操 亚洲| 欧美精品久久96人妻无码| 人妻无一区二区三区| 天天欧美色| 人妻喷水| JULIA一区二区三区在线播放| 成人网欧美风情| 91人人| 翔田千里av一区二区三区| 日韩三级在线观看mp4| 亚洲欧美清纯| 人妻中文在线| 激情一区二区| 日本美女性生活久久久久久久| 青青操视频在线| 久久黄色视频一区二区三区 | 红桃视频高潮| 黄色人人| 伊人久日| 96AV精品| ..日韩av毛片精品久久久| 碰碰在线视频| 蜜臀中文字幕| 大香蕉十区| 国产精品久久天天干| 中文字幕在线观看丝袜| 亚洲天堂精品日韩电影| 亚洲综合图色在线| 无码国产精品午夜不卡(| 久久久无码精品人妻二区| 国产成人久久久精品免费AV| 97精品免费视频网站| 九九人妻| 五月婷婷六月色| 精品91| 屌妞视频久久久久久久| 人妻 中文 日韩| 亚洲脚交| 久草新免费| 日韩不卡a级视频专区| 天天躁日日躁狠狠狠躁| 97欧美色资源| 久99热| 三级日韩一区二区三区| 少妇久久久免费| 草草影院在线视频| 日韩另类| 国产女乱淫真高清免费视频| jizz啪啪| 蜜臀久久99精品久久久久久-DVD| 97爱碰| 久久日本熟妇熟色高清| 中文字幕丝袜美腿| 青青11操操操操操操操操| 国产精品久久99日日| 97超碰大| 午夜操一视频一区| 超碰久久网| 日本熟妇熟色97一本在线观看| 九九久久一区二区伦理| 国产午夜福利专区综合| 亚洲一区二区在线观看91| 亚洲九九视频在线观看| 欧美爆操91| 大香蕉综合网| 狠狠久久亚洲欧美专区| 久久久com| 五月婷婷五月天| 婷婷在线视频| 最新加勒比丝袜在线| 肥臀熟女福利视频一区二区| 曰本91情色| 国产视频小说| 青青青在线高清视频在线一二三四区| 99热在线只有精品| 亚洲美女AV无码| 午夜性生活av免费在线看| 天堂性色| 囯戸精品高潮呻吟旡码| 国产高清无码一区三区二区| 日韩性爱视频免费在线| 熟女人妻av在线资源,黄色的资源| 精品女人999| 一区中文字幕二区日韩| 欧美韩国你懂得在线| 亚洲日韩青青草色月| 九一综合精品视品av| 精品99999久久久久久| 色偷偷色偷偷欧美日韩| 欧美色蜜桃97| 欧美日本国产日韩激情视频| 久久久9品一区二区三区| 熟女高潮合集-永久久久-成人AV| 久久精品无码专区| 亭亭丁香激情| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 日本孕妇一区二区视频操逼免费看| 男人的天堂日本东京热| 天美精品原创av片国产| 99精品视频在线观看| 久婷婷一区| 蜜臀久久99精品久久久久| 亚洲天堂7777| 成人熟女区| 影音先锋日本乱伦| 啊啊啊啊操死我了| 久艾草在线精品视频在线观看| 99在线精品观看99| 大香蕉2017| 五月婷婷六月丁香网址| 中文字幕天天操| 成人五月天丁香激情综合| 久久色激情一区二区三区| 成人天天爽| 日韩精品一区二区日韩| 日本欧美色| 91久久免费视频互動交流| 日本有码影片下载 | 久久久久久久久久久久黄色| 久久在线观看免费视频| 96精品久久久久中文字幕| 亚洲中文sv| 东京热激情视频一二三区| 久久午夜色播影院免费高清| 国产suv精品一区二区四| 欧美福利视频啊啊啊啊| 超碰97久久国| 97WW精品| 夜夜夜爽www精品视频| 亚洲男人久久综合天堂| 黄色成年| 成人日韩欧美| 床戏久久久av一区二区麻豆| 丰满少妇乱子伦精品无| 色亚州人久干视频在线观看免费版| 97香蕉网| 人人操天天爽| 天堂v无码免费视频| 婷婷五月天激情网| 精品人妻丰满熟妇一区二区三| 亚洲一卡2卡3卡4卡乱码网站 | 国产精品久久99日日| 久久精品国产99国产精品亚洲| 亚洲激情片| WWW4虎| 久久九色| 国产精品高潮久久AV| 天天操夜夜操狠很操| 亚州色阁| 一二三区在线| 欧亚性爱在线视频| 欧美91久久久久| 成人八戒网站| rion磁力链接| 999日韩中文精品观看视频。| 国产av激情无码久久天堂| 麻豆福利视频导航| 麻豆精品久久久久久久| 日韩精品中文字幕一| 欧洲亚洲人妻无码高清久久三区四区| 欧美色图亚洲特色| 六九九九| 六六久久日韩不卡| 中文字幕精品一区二区精| 火箭成精品视频884必出精品| 自拍丝袜美腿人妻| 久久久久久午夜男人的天堂| 草草网站影院白丝内射| 日韩性爱小视频| 俺也射| 日韩AV色图| 欧美激情中文字幕另类小说| 午夜性生活av免费在线看| 啊啊啊啊啊好舒服视频| 四月丁香婷婷| 日韩人妻资源在线看| 亚洲中文日韩欧美大香蕉视频| 99re99| 国产精品久久久久久久久久久久久久久久久久 | 欧美少妇第一页| 91精品电影18| 亚洲人在线| 青娱乐av在线| 少妇毛片久久| 亚洲日韩av一区二区三区百合| 国产成人www免费人成看片| 免费岛国一级片| 78操B| 国产精品白丝AV| 破处bbq| 色在线69堂| 久久超碰98| 亚洲黄日韩无码专区| 中文字幕在线免费观看视频| 100啪啪视频大全| 一级二级三级黑人无码| 免费观看国产小粉嫩喷水精品午| 日夜干射色啊| 99操逼| 91青青在线视频| 午夜乱轮操逼视频免费看| 国产精品一区二区三区在线密挑| 九九香蕉网| 色综合天天| 人妻激情另类| 亚洲资源网| 夜夜操夜夜高潮夜夜爽国产精品区| 久久人妻一区二区三区高清| 91碰超| 欧美色视频在线| 丰满的三级少妇欧美久久久| 99久久com免费视频′| 熟妇亚洲一区二区三区| 久久婷婷欧美| 成人草草视频| 香伊人在线| 亚洲精品天堂久久A∨51成人漫| www.色操逼| 欧美色图下一页| 麻豆 美女 丝袜 人妻 中文| 免费的很黄很污的全部视频 | 人妻天天夜夜爽一区二区| 操亚州| 9118禁| 亚洲午夜福利视频| 亚洲色图综合网| 国产一级舔足在线观看| 五月天激情婷婷| 九热超碰| α√在线| 啊啊啊男女| 国产亚洲中文不卡二区| 中文字幕在线观看AV| 麻豆成人av| 91亚洲欧美激情| 久久久久久欧美精品se一二三四| 99国产在线 精品 视频| 69丨亚洲丨精品丨入口免费播放| 国产吞精a级片激情电影| 外国91| 日本人妻中文字幕| 日本天天色| 99999久久精| 久久久久婷婷| 精品天堂| 五月天丁香欧洲日韩| 在线 亚洲 网爆 自拍| 蜜乳av首页| 天天夜躁日日躁狠狠2002| 亚洲人精品午夜不卡| 日本三级A片网站com| 青青青青草av在线观看| 中日亚韩免费视频| 深喉吞精| 色97干| 肏逼视频日本| 亚洲欧美在线综合| 99热这里只有精品99| 日韩欧美加勒比| 精品十三区| 欧美劲爆视频一区二区| 日韩在线电影| 久久久不卡区一区二区三区久久久| 免费成人在线观看91| 亚洲日产专区婷婷| 超碰99热| 国产在线观看91精品一区| 青青青草伊人精品| 久久女人一区二区三区| 亚洲高清无毛一区二区| 传媒在线观看一区二区三区| 97超碰国产精品| 欧美一级美片在线观看免费| 色777999综合| 伊人97超碰| 欧美一区二区福利在线| 巨乳特殊服务按摩| 夜夜综合| 色踪合AV| 国产一级内射高清视频| 嗯,啊。舔我逼| 天天日夜夜爽| 亚洲偷拍自拍在线视频| 看免费的黄片| 免费一级毛片在线视频观看| 狠狠色五月亚洲91| 国产深喉视频一区二区| 综合网久久| AV中文在线| 在线看片国产精品每日更新| 熟女激情综合网| 日本精品久久久久久久| 亚洲美女30b| 9久久9综合| 99热精品在线观看| www.色操逼| 26uuu国产免费观看| 人人 操人人 操人人| 精品免费视频国产一区| 国产精品久久| 精品九九九九| 麻豆天美传媒毛片| 火箭成精品视频884必出精品| 欧日韩在线观看| 91热情品| 亚熟hd视频在线| 日韩人妻精品中文字幕| 97爱亚洲综合色| 五月天春色激情网| 九九九九日本 | 亚洲暴力强奸AV| 一级做a爰片性色毛片久久| 欧美亚洲图片| AVE乱伦| 极品欧美一区二区三区| 美女熟妇色| 亚洲字幕一区二区| 欧美天天干| 操婢日韩| 欧美日不卡| 嫩草影院永久在线制服丝袜| 91欧美丨精品丨入口| 2003天天干夜夜操| 欧美人体性爱互联网第一页婷婷日本| 美国黄片aaa| 亚洲图片欧洲图片aⅴ| 亚洲AV成人无码久久精品播放| 99热日本| 夜夜 中文视频rt| 91中文字幕| 国产精品女久久久久av爽| 婷婷综合| 青青伊人这里只有精品| 久久 精品| 少妇干B| 偷拍网站久久男女男| 国产精品丝袜久久亚洲不卡| 欧美综合天天| 久久草在线综合视频| 久久超碰亚洲人| 99re6在线视频播放免费精品| 成人免费性爱视视| 色5月婷婷| 日韩中文字幕av在线播放| 97亚洲综合在线| 欧美日韩激情无码专区| 日本人妻天堂网站在线播放| 热99这里有精品综合久久| www.色婷婷色综合| 1024亚洲中文字幕久在线看片你懂的 | 亚洲无码国产精品久久| 最新加勒比丝袜在线| 性欧美91| 三级三级三级日本99| 少妇色综合| 91无码西班牙视频在线| www.91色综合| 伊人91| 日本免费中文一区二区三区四区| 青草伊人久久| 强奸乱伦大香蕉网| 九九九九97| 国产中文精品一区二区在线观看| 啊嗯嗯啊好大好爽| 一块操欧美| 97亚洲在线| 东京太热久久久| 在线97视频| 亚洲欧洲美腿丝袜| 日韩欧美成人综合在线| 日韩人妻精品| 婷婷综合激情| 高清无码一区二区三区| 亚洲图片偷拍欧美| 懂色AV中文| 人摸人人操人| 另类天堂| 九九九只有精品| 欧美色三级片91| 26uuu性物| 97视频在线播放| 亚州色国| 91老熟女逼| 日本护士高潮| 国产黄色小视频网站| 色偷偷人人玩人人舔人人操人人摸人人爽| 黄片www.| 操逼操网| 国产精品又黄又猛又粗| 9久9久| 加勒比五月天| 九九九九88| 大香蕉伊人久久| A片 AV一级在线播放观看免费| 9色国产精品一区粉嫩 | 日本精品中文字幕视频| 国产日韩美女小穴视频网站不卡| 天堂伊人久久| 99蜜桃臀久久久欧美精品网站| 丝袜熟女2P| 亚州色交| 丁香五月天婷婷姐| 91人妻视频在线| 强奸乱伦αv片| 日本护士高潮| 久久丁香| 操九九九九九九| 日本999精品视频| 综合日韩激情另类图片| 久草新免费| 超碰 国产熟女精品一区| 亚洲美女精品| 97国产色综合| 校园春色综合香蕉| 欧美宗合色| 日韩精品人妻一| 亚洲欧洲综合av在线| 精品一级毛片在线观看| 91亚洲欧洲| 日韩熟女操逼| 色综合尤物| 婷婷色一区| 国产精品第二页| 亚洲色棕合| 欧美性高潮| 久久久久久少妇| 欧美性高潮在线| 野狼福利社区| 在线v中文字幕一区二区三区| 福利天堂| 91色五月俺来也| 超碰98综合网| 欧美精品成人在线播放| 大香樵伊人网| 精品人妻中文字幕高清| 爱妻综合网| 大香蕉淫人| 久久中文字幕一区不卡| 日本一级一级一级一级| 亚洲人久久久网| 日日躁天天躁狠狠躁| 亚洲天堂男| 中国一级αV| 97人人夜夜精品视频| a v网站在线播放| 亚洲激情网一二三四区| 欧美亚洲美少妇一区二区| 极品出轨视频网站| 成人一道本免费视频| 国产综合色精品在线观看| 国产精品久久| 99热这里| 激情内射| 免费操逼视频下载| 久久久一区二区| av午夜影院在线播放| 久久啊啊啊视频| 一区二区高清视频| 嗯嗯嗯好爽| 色欲天天婬色婬香WWW夜色| 韩日无码在线观看| 顶级丝袜熟女一区二区三区| 成人无码专区精品视频| 蜜臀无码一区二区| 中国AAAAAA黄色片| 中文字幕在线24| 狠狠躁日日躁夜夜躁A| 国产精品爱欲| 91超碰人人| 97超碰精品| 色欧美天天| 男人的天堂一区| 人人干人人操人人爱| 射 色综合| 国语对白露脸XXXXXX| 热热热热日日漂亮永久永久国产日| 人人看人人插| 国产后入清纯| 少妇毛片久久| 免费αV在线视频| 超碰一区二区| 国产高清免费不卡av| 亚洲另类色图片| 爱媛媛久久国产福利| 成人无码欧美一级A片狼牙直播| 婷婷情色综合网| 十八禁成人网站在线观看| 亚洲情色综合| 天天日B狠狠操| 国产高清MV操逼视频| 久久中文字幕不卡人妻| 久久久夜夜嗨免费视频| 国产女大学生AV| 中文97国产| 亚洲成人一区二区精品| 男人的天堂一区| 日本熟妇精品九九| 蜜桃臀av在线观看| 午夜超爽| 综合久久97| 久久久久久久唑| 久久精品综合| 丝袜喷水在线| 国产高潮AA片免费看| 久久久夜夜夜| 九9热伊人| 99色综合| 91操人| 免费超碰97在线观看| 亚洲麻豆av一区二区| 亚洲影院成人| 少妇一级无码精品| 午夜男女爽爽爽影院视频| 青青草一区二区三区四| 综合激情一一91| 久久超碰亚洲人| 天天弄欧美| 91殴美大片| 久久久专区| 综合欧美日韩在线| 色原狠狠天天天| 欧美亚州综合网图片| 日韩特一级久久| 99999这里都精品| 中文无线日韩一区| 亚洲系列欧美| 亚洲精品人伦一区二区| 伊人在线大香蕉视频久久| 色天堂在线观看| 丝袜天堂| 亚洲人人操| 国产黄a三级三级三级av在线看 | 爽极品影院| wwwcaobibi| 九九碰九九爱97超碰| 大香蕉九九| 91国产精品在线看| 第二页中文字幕| 大香蕉琪琪日本女优不卡| 国产精品久久久777| 国偷自 一区二区| 久久一二三四五六七八九区区| 国产精品色哟哟| 欧美大片一区二区三区| 91精品国产91熟女| JIZZJIZZ亚洲女人被躁| 天堂性色| 日操粉逼逼| 日韩欧美麻豆大片| 搡老熟女国产1000部| 加勒比综合网| 日韩精品一区二区三区色欲| 人妻夜夜爽天天爽麻豆三区网站| 素颜老阿姨乱情色| 快灬快灬 一下爽蜜桃在线观看| 中文字幕美女91| 亚洲激情久久| 2020中文字幕在线| www.99中文字幕| 丝袜视频一区二区在线播放国产中文| 99在线精品视频| 淫妻综合网| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 测评在线观看AV| 日韩人妻无码专区| 激情内射| 国产精点久久久成人| 国产乱人妻精品入口| 无码精品久久| 久久久久密臀一区二区| 日本一区二区亚洲综合| 久久人妻办公室视频| 国产精品午夜精品| 久久成人午夜精品影院| 嗯嗯,啊啊,国产精品| 色综91| 97色碰| 欧洲精品二区| 久久久一级| 在线a亚洲视频播放在线| 久久99黄色卞西瓜| 日韩强奸av| 性交一区二区在线播放| 中文字幕在线观看二区三区| 后入式999| 天天操av懂色| 伊人精品久久网站| 青青草原av| 日本亚洲vr欧美不卡高清专区| 无码直播久久久| sewuyueav| 超碰人人妻| 激情小说在线视频| 日本熟妇色熟妇在线视频播放| 国产一级不卡在线观看| 熟女熟妇伦久久影院毛片一区二区| 人干人人人操人人摸| 久久这里只精品| 久久欧美按摩999| 午夜精品久久久久久久久久蜜桃 | 久久 精品| 国产丝袜高跟美女av免费观看| 理论久久婷婷网 8| 亚洲熟女性高潮久久久| 大香蕉狠狠爱| 亚洲欧洲色情高清| 家庭乱伦国产| 97视频在线播放| 91视频综合在线| 女人的久久久| 中日高清无码操逼视频| 国产色图乱伦| 欧美亚洲首页| 国产和美国毛片| 亚洲第一色页夜| 91人妻视频在线| 久久久精品国产亚洲伊人| 国产精品一二三在线看| 性爱视频无打码在线观看| 欧美人体性爱互联网第一页婷婷日本| 国产资源中文字幕在线| 亚洲偷91色| 国产乱人妻精品入口| 人妻夜夜爽天天爽麻豆三区网站| a网站免费观看| 大香蕉色十月| 综合色图,成人综合网| 九九久久一区二区三区| 久久黄黄| 91欧美偷拍| 91久久伊人婷婷青青草| 97精品97| 色九九九综合| 免费草草草草草视频| 日韩精品影视| 色97欧美| 国内伊人久久久久久网站视频| 91青青草| 国产成人bd在线观看| 国产精品制服丝袜清纯唯美| 亚洲精品中文字幕一区在线视频 | 国产热av| 国产精品农村妇女精品| 亚洲网站一区二区在线| 日日噜噜夜夜狠狠视频无| 亚洲第一无码播放立川理惠| 操久久久久久| 久久亚州高清| 亚洲国产蜜臀系列在线观看| 中文字幕一区二区无码成人| 99re这里只有| 亚洲 欧美 偷拍 唯美| 午夜天堂精品久久久久91| 国产精品网站www| 97碰碰色| 天天干天天操天天干天天操| 后入 亚洲 美女 射| 欧美日本不卡| 18禁的网站在线| 一级黄碟在线观看| 大香蕉欧美| 97综合在线| 中文字幕版| 无码人妻一区二区三区四区老鸭窝| 蜜臀一区二区三区在线 | 九九热免费在线国产视频伊人五月| 四虎AV在线观看| 久久激情四射婷婷丁香五月天| 欧美A片中文字幕| 欧美躁死她一区二区| 九久久精| 天天天天干| 久久伊人最新网址视频| 91搞逼视频| 97 亚洲 日韩 欧美 在线| 曰韩香蕉97| 亚洲精品久久久久毛片A片拉屎| 91强奸乱轮| 91欧美另类| 免费的很黄很污的全部视频| 亚洲欧美校园另类春色| 亚洲熟女综合网| 四虎AV在线观看| 97在线视频免费观看| 艳美熟妇先锋一二三区| 免费视频97| 五月天激情小说网| 好爽视频在线观看视频| 香蕉久久国产AV一区二区| av大香蕉网站| 最新日本中文字幕| 久久99黄色卞西瓜| 国产无码成人无码| 伊人色综合超碰| 香蕉热人人精品| 十八禁电影伊人网| 亚洲天堂7777| 97精品久久| 97色色,97综合| aaa一级黄片| 大奶的诱惑| 69AV女优男人的天堂| 亚洲国产另类在线中文| 后入式视频国产自| 国产成人天堂| av九九| 懂色天天爱天天日天天射天天澡| 夜夜夜夜久久久久| 天美av在线观看| 97人人模人人爽人人| 成人一级性爱| 成人无遮挡毛片免费看| 欧美色图20P| 91色综合色| 97公开久久| 67914在线精品观看| 欧美日本不卡| 大香蕉宅男伊人| 97超级久久强资源| 日韩乱中文| 大屁股人妻女教师撅着屁股| 欧美A√综合网 | 亚洲天堂资源在线| 粉嫩国产精品久久久| 欧美久热| 国产偷拍自拍在线视频| 国产美女自拍AV| 91综合网站| 国内成人圈中文字幕无码视频| 欧美中文字幕一区| 2001天天操| 亚洲欧美日韩综合在线尤物| 成人精品久久久午夜福利| 欧美在线视频播放| 鸥美精品一区二区久久婷婷| 91N欧美| 婷婷六月色| 影音先锋中文字幕日本好一区二区| 成年人网站在线免费观看| 老熟女网站| 熟妇乱伦一区二区| 亚洲国产97| 亚洲AV无码乱码| 久久性生大片免费观看性| 亚洲精品黄码久久久久| 久9综合在线| 日韩精品一二三| 91丝袜在线播放| 久久夜夜| 免费观看性欧美一级| 国产一在线观看| www.激情| 香蕉久久国产AV一区二区| 免費黃色視頻觀看一| 色色激情五月天| 久久精精区一区二区一蜜桃一区二区| 久碰视频| 天天综合精品| 超碰国产情侣自拍网| 色五月激情AV在线| 性色高清..……| 97色亚洲| 爽极品影院| 婷婷五月天影院| 青青青操| 在线观看午夜婷婷久久久久清性观看| 97一区二区三区视频| 国产精品不卡一区二区三区| 国产馆| 天天搞在线综合网| 精品妇女一区二区三区| 色香在线| 日韩综合色图| 国产区91柔拿会所技师| 国产精品久久久久av| 能看的av| 亚洲精品久久久久久| 亚洲精品性爱片| 天天干天天日天天射黄色| 免费国产| av爱爱爱| 大香蕉在线视频15| 久久久78| 色色婷婷五月天| 日本加靬比网站发布页| 久久久久久9| 人人爱人人操人人性| 久久久久性熟视频| 欧美色交| 色婷婷久久| 99在线精品观看视频中文| 蜜臀操逼黄色视频操的好爽| 久久亚码| 美女黄频a美女大全免费皮| 欧美日不卡| 亚洲国产精品成人久久蜜臀| 综合激情婷婷| 亚洲天堂男人天堂网| 天天干天天日天天射黄色| 91操熟女| 亚洲一二三精品久久网 | 人妻黑丝袜电影| 亚洲一级特黄大片在线播放91| 妇女视频网站| 国产51色综合久久免费| WWW美腿丝袜香蕉中文| 国产强奸超碰AV| 五十路熟女人妻一区二区在线观看| 99久在线精品99re8| 午夜一区| 久久99草| 国产黄片精品在线| 国产美女91| 天天操狠狠日夜夜干超碰撸com视频在线观看| 久久9久| 日本一区二区三区精品| 久久91精品国产9丨久久分亭 | 操高情无码| 亚洲av成人精品一区| 欧美日韩亚洲国产中文永久天天看| 啊啊啊啊一区| 另类小说综合网| 亚洲少妇综合在线播放| 好吊色综合| 9久久久久久| 9999亚洲电影| 成人AV素股で擦久久| 最新欧洲欧美日本激情网站| 69XX一中文字幕人妻91| 美女爽爽爽刺痛洞洞| 污到发麻的视频 国产| 3p国产欧美99热| 亚洲αv一区二区三区| 白嫩少妇| 免费男人的天堂| 亚洲资源网| 熟妇人妻精品一区二区视频色欲| 久久久九| 第四色奇米影视777| 五月天欧美色图| 中文字日本乱码| 久久久111| 91视频综合在线| 青青草色情网站视频| 五月婷婷性爱| 操99| 色丁香久久| 色色综合网站| 色色综合网站| 成人资源中文字幕在线观看天天| 91精品综合久久久久久五月丁香| 日本色色色视频| 99色天堂| 中文字幕一区 二 区 三 四 五 区日 日 骚| 亚洲精品三| 色婷婷影院|