SpringMVC 系列博客(一):基礎概念與注解開發入門

目錄

一、引言

二、MVC 模式:SpringMVC 的設計基石

2.1 MVC 三大組件

2.2 主流 MVC 框架對比

2.3 MVC 模式的核心優勢

三、SpringMVC 框架:是什么?為什么學?

3.1 什么是 SpringMVC?

3.2 為什么要學 SpringMVC?(對比原生 Servlet)

四、SpringMVC 執行流程:從請求到響應的完整鏈路

4.1 核心組件(無需手動開發,框架提供)

4.2 完整執行流程(圖文解析)

五、注解開發 SpringMVC:手把手搭建入門程序

5.1 前置準備

5.2 步驟 1:創建 Maven Web 項目

5.3 步驟 2:添加依賴(pom.xml)

5.4 步驟 3:配置前端控制器(web.xml)

5.5 步驟 4:編寫 SpringMVC 核心配置(springmvc.xml)

5.6 步驟 5:開發控制器(Controller)

5.7 步驟 6:開發視圖頁面

5.8 步驟 7:測試程序

六、入門常見問題解決

6.1 URL 攔截規則:/?vs?/*?的區別

6.2 POST 請求參數亂碼

七、第一篇總結


一、引言

????????在 Java Web 開發中,MVC 設計模式是實現代碼解耦、提高項目可維護性的核心思想,而SpringMVC作為 Spring 生態體系下的 MVC 框架,憑借其與 Spring 的無縫集成、靈活的配置和簡潔的開發風格,早已取代 Struts2 成為主流選擇。本文作為系列博客的第一篇,將從 MVC 模式基礎入手,帶你理解 SpringMVC 的核心定位、執行流程,并手把手教你搭建第一個注解驅動的 SpringMVC 入門程序。

二、MVC 模式:SpringMVC 的設計基石

????????在學習 SpringMVC 前,必須先掌握 MVC 模式的核心思想 —— 它將應用程序分為三個獨立部分,實現 “職責分離”。

2.1 MVC 三大組件

  • Model(模型):分為 “業務模型” 和 “數據模型”。業務模型封裝業務邏輯(如用戶登錄校驗、訂單計算),數據模型封裝數據(如 User、Order 實體類),是應用程序的 “數據與邏輯核心”。
  • View(視圖):負責數據展示,即用戶看到的界面(如 JSP、HTML、Freemarker),僅關注 “如何顯示數據”,不處理業務邏輯。
  • Controller(控制器):作為 “中間樞紐”,接收用戶請求,調用 Model 處理業務,再將處理結果傳遞給 View 展示,實現 View 與 Model 的解耦。

2.2 主流 MVC 框架對比

框架特點適用場景
SpringMVC與 Spring 無縫集成、注解驅動、輕量靈活中大型企業級項目(主流)
Struts2功能全面但配置復雜、性能略低傳統項目(逐漸被淘汰)
JFinal輕量級、API 簡潔、開發效率高小型項目或快速原型開發

2.3 MVC 模式的核心優勢

  1. 解耦:View 與 Model 分離,同一業務邏輯可對應多個視圖(如 PC 端、移動端頁面)。
  2. 可維護性:各組件職責單一,修改視圖不影響業務邏輯,修改業務不影響視圖。
  3. 可擴展性:新增功能只需新增 Controller 或 Model,無需改動現有視圖。

三、SpringMVC 框架:是什么?為什么學?

3.1 什么是 SpringMVC?

  • 定位:SpringMVC 是 Spring Framework 的子框架,本質是對 Servlet 的封裝,解決了原生 Servlet 的痛點(如請求映射繁瑣、參數接收復雜)。
  • 核心特性
    1. 注解驅動:通過@Controller@RequestMapping等注解,讓普通 POJO 成為控制器,無需實現接口。
    2. 松散耦合:支持可插拔組件(如視圖解析器、參數綁定組件),擴展性強。
    3. 無縫集成 Spring:可直接使用 Spring 的 IOC、AOP 等功能(如依賴注入 Service 層)。
    4. 易測試:支持 Web 層單元測試,無需啟動服務器即可測試控制器。

3.2 為什么要學 SpringMVC?(對比原生 Servlet)

原生 Servlet 開發存在三大痛點,而 SpringMVC 完美解決:

  1. 請求映射繁瑣:100 個請求需寫 100 個 Servlet,即使合并 Servlet 也需手動判斷請求路徑,耦合度高;SpringMVC 通過@RequestMapping一鍵綁定 URL。
  2. 參數接收復雜:需手動調用request.getParameter("username")獲取參數,還需手動類型轉換(如 String 轉 Integer);SpringMVC 自動完成參數綁定與類型轉換。
  3. 解耦不足:Servlet 與業務邏輯代碼耦合,難以維護;SpringMVC 通過 Controller 調用 Service,層次清晰。

四、SpringMVC 執行流程:從請求到響應的完整鏈路

SpringMVC 的執行流程依賴其核心組件的協作,理解流程是掌握框架的關鍵。

框架處理流程圖:

4.1 核心組件(無需手動開發,框架提供)

  1. 前端控制器(DispatcherServlet):全局入口,接收所有請求,轉發給其他組件處理,降低組件耦合。
  2. 處理器映射器(HandlerMapping):根據請求 URL 查找對應的 “處理器(Controller 方法)”,返回 HandlerExecutionChain(包含處理器和攔截器)。
  3. 處理器適配器(HandlerAdapter):適配不同類型的處理器(如注解式、接口式),調用處理器的業務方法。
  4. 處理器(Handler/Controller):開發者編寫的 Controller 類,封裝業務邏輯,返回 ModelAndView(模型數據 + 邏輯視圖名)。
  5. 視圖解析器(ViewResolver):將 “邏輯視圖名”(如 "ok.jsp")解析為 “物理視圖”(如/WEB-INF/jsp/ok.jsp)。
  6. 視圖(View):開發者編寫的 JSP/HTML,渲染 Model 中的數據并響應給用戶。

4.2 完整執行流程(圖文解析)

  1. 用戶發送請求(如http://localhost:8080/reg.do),請求被DispatcherServlet攔截。
  2. DispatcherServlet 調用HandlerMapping,根據 URL 找到對應的 Controller 方法(如UserControllershow()方法)。
  3. DispatcherServlet 調用HandlerAdapter,適配并調用找到的 Controller 方法。
  4. Controller 方法執行業務邏輯,返回ModelAndView(如模型數據uname=張三,邏輯視圖名ok.jsp)。
  5. DispatcherServlet 調用ViewResolver,將邏輯視圖名ok.jsp解析為物理視圖路徑(如/ok.jsp)。
  6. ViewResolver 返回 View 對象,DispatcherServlet 調用 View 的render()方法,渲染 Model 數據到視圖。
  7. 渲染完成后,DispatcherServlet 將響應結果返回給用戶,流程結束。

五、注解開發 SpringMVC:手把手搭建入門程序

????????本節將基于 IDEA+Maven+Tomcat,實現一個 “用戶注冊” 功能,涵蓋環境搭建、配置編寫、控制器開發全流程。

5.1 前置準備

  1. IDEA 版本:需旗艦版(Community 版不支持 Web 開發),下載地址:JetBrains IDEA。
  2. Tomcat 配置
    • 解壓 Tomcat 到本地(如D:\Tomcat8.5)。
    • IDEA 中依次點擊:Run → Edit Configurations → Templates → Tomcat Server → Local → Configure,選擇 Tomcat 解壓路徑。
    • 新建 Tomcat 配置:點擊+ → Tomcat Server → Local,設置 Name(如 Tomcat8.5),在Deployment中添加項目的war exploded包。

5.2 步驟 1:創建 Maven Web 項目

  1. 新建項目:New Project → Maven → 勾選Create from archetype → 選擇org.apache.maven.archetypes:maven-archetype-webapp
  2. 填寫項目信息:GroupId(如com.jr)、ArtifactId(如springmvc-demo)、Version(如1.0-SNAPSHOT)。
  3. 補全目錄:項目創建后,手動在src/main下添加java(標記為 Sources Root)和resources(標記為 Resources Root)目錄。

5.3 步驟 2:添加依賴(pom.xml)

需引入 Spring 核心包、SpringMVC 包、Servlet/JSP 包、JSTL 包,完整依賴如下:

<dependencies><!-- JUnit測試 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- Spring核心包 --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.1.6.RELEASE</version></dependency><!-- SpringMVC包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.6.RELEASE</version></dependency><!-- Servlet/JSP依賴 --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.3</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency><!-- JSTL標簽庫 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>
</dependencies>

5.4 步驟 3:配置前端控制器(web.xml)

前端控制器是 SpringMVC 的入口,需在WEB-INF/web.xml中配置,核心作用是攔截請求并轉發:

<web-app version="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 歡迎頁 --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置SpringMVC前端控制器 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定SpringMVC配置文件路徑(默認在WEB-INF/[servlet-name]-servlet.xml) --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><!-- 啟動Tomcat時自動加載Servlet --><load-on-startup>1</load-on-startup></servlet><!-- 攔截規則:/ 表示攔截所有請求(除JSP外) --><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 配置亂碼過濾器(解決POST請求參數亂碼) --><filter><filter-name>charsetFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>charsetFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

5.5 步驟 4:編寫 SpringMVC 核心配置(springmvc.xml)

src/main/resources下創建springmvc.xml,配置注解掃描、注解驅動等核心功能:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 1. 掃描Controller注解(指定包路徑) --><context:component-scan base-package="com.jr.controller"/><!-- 2. 開啟注解驅動:自動加載處理器映射器、處理器適配器 --><mvc:annotation-driven/><!-- 3. 靜態資源放行(如JS、CSS、圖片,避免被DispatcherServlet攔截) --><mvc:resources location="/js/" mapping="/js/**"/><mvc:resources location="/images/" mapping="/images/**"/>
</beans>

5.6 步驟 5:開發控制器(Controller)

src/main/java/com/jr/controller下創建UserController,使用@Controller標記為控制器,@RequestMapping綁定請求路徑:

package com.jr.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;@Controller // 標記此類為SpringMVC控制器
public class UserController {// 綁定請求路徑:http://localhost:8080/reg.do@RequestMapping("reg.do")public ModelAndView register(HttpServletRequest request) {// 1. 創建ModelAndView對象(封裝模型數據和視圖名)ModelAndView mv = new ModelAndView();// 2. 接收請求參數(此處用原生Servlet API,后續會優化)String username = request.getParameter("username");String password = request.getParameter("password");// 3. 封裝模型數據(存入request作用域,供視圖使用)mv.addObject("uname", username); // 等價于request.setAttribute("uname", username)// 4. 指定邏輯視圖名(視圖解析器會解析為物理路徑)mv.setViewName("ok.jsp");return mv;}
}

5.7 步驟 6:開發視圖頁面

注冊頁面(index.jsp):在webapp下創建,提供用戶輸入表單:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>用戶注冊</title>
</head>
<body>
<form action="reg.do" method="post">用戶名:<input type="text" name="username"><br>密碼:<input type="password" name="password"><br><input type="submit" value="提交注冊">
</form>
</body>
</html>

成功頁面(ok.jsp):在webapp下創建,展示注冊成功信息:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注冊成功</title>
</head>
<body>
<h3>注冊成功!歡迎您,${uname}!</h3> <!-- EL表達式獲取模型數據 -->
</body>
</html>

5.8 步驟 7:測試程序

  1. 啟動 Tomcat,訪問http://localhost:8080/springmvc-demo/(項目上下文路徑根據配置調整)。
  2. 輸入用戶名和密碼,點擊 “提交注冊”,頁面跳轉至ok.jsp并顯示歡迎信息,說明程序運行成功。

六、入門常見問題解決

6.1 URL 攔截規則:/?vs?/*?的區別

  • /:攔截所有請求(除 JSP 外),是 SpringMVC 推薦配置。JSP 由 Tomcat 的 JspServlet 處理,不會被攔截,可正常渲染。
  • /*:攔截所有請求(包括 JSP),會導致 JSP 被 DispatcherServlet 當作控制器處理,找不到對應映射而報 404 錯誤,禁止使用

6.2 POST 請求參數亂碼

????????如步驟 3 中配置的CharacterEncodingFilter,通過encoding=UTF-8強制設置請求和響應的字符編碼,解決 POST 亂碼問題(GET 亂碼需修改 Tomcat 的server.xml,添加URIEncoding="UTF-8")。

七、第一篇總結

????????本文從 MVC 模式基礎出發,講解了 SpringMVC 的核心定位、執行流程,并通過 “用戶注冊” 案例完整演示了注解開發的入門流程。你已掌握:

  1. MVC 模式的三大組件與職責分離思想;
  2. SpringMVC 的核心特性與執行流程;
  3. 基于 Maven+IDEA 的 SpringMVC 環境搭建;
  4. 控制器開發與請求映射、視圖跳轉的基本用法。

????????下一篇博客將深入 SpringMVC 的核心功能,講解請求映射、返回值類型與參數綁定,帶你實現更靈活的業務邏輯開發。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/97928.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/97928.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/97928.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 字符串操作教程:三個任務完整復現與解析

這次是完成一些小任務來試試身手&#xff0c;免得生疏&#xff1a; 編寫程序&#xff0c;使用charAt和length方法&#xff0c;將字符串"HelloWorld"拆分為"Hello"和"World"兩個子串并輸出。 設計一個方法&#xff0c;利用indexOf和lastlndexOf&a…

向量技術研究報告:從數學基礎到AI革命的支柱

1. 向量的數學本質與歷史演變 1.1 核心定義與數學表示 向量是同時具有大小&#xff08;Magnitude&#xff09;和方向&#xff08;Direction&#xff09;的量&#xff0c;在數學上被嚴格定義為向量空間中的元素。與僅有大小的標量&#xff08;Scalar&#xff09;不同&#xff0c…

Qt QHorizontalStackedBarSeries詳解

1、概述QHorizontalStackedBarSeries 是 Qt Charts 模塊中的一個類&#xff0c;用于創建水平堆疊條形圖。它繼承自 QAbstractBarSeries 類&#xff0c;允許將多個數據系列堆疊在一起顯示&#xff0c;每個條形由多個部分組成&#xff0c;這些部分共同構成一個完整的條形&#xf…

《股票智能查詢與投資決策輔助應用項目方案》

前引&#xff1a;本股票智能查詢與投資決策輔助應用通過整合多源金融數據&#xff0c;運用量化分析 機器學習技術&#xff0c;為普通投資者提供全方位股票信息服務和個性化投資建議。系統不僅解決了傳統工具 “數據分散、分析復雜” 的問題&#xff0c;更通過人性化交互和直觀…

從零開始構建Kubernetes Operator:一個完整的深度學習訓練任務管理方案

從零開始構建Kubernetes Operator&#xff1a;一個完整的深度學習訓練任務管理方案一、引言二、為什么需要Operator&#xff1f;1. Controller vs Operator&#xff1a;本質區別2. 有狀態服務 vs 無狀態服務的挑戰三、項目架構設計3.1整體架構圖3.2核心組件4.核心實現解析1. CR…

第二十二篇|新世界語學院教育數據深度解析:學制函數、能力矩陣與升學圖譜

第二十二篇&#xff5c;新世界語學院教育數據深度解析&#xff1a;學制函數、能力矩陣與升學圖譜 系列主題&#xff1a;500所日本語言學校結構數據工程 關鍵詞&#xff1a;新世界語學院、東京新宿、學制函數建模、JLPT能力矩陣、升學網絡、教育數據工程 一、合規與法人建模&…

Java開發工具選擇指南:Eclipse、NetBeans與IntelliJ IDEA對比

在Java開發的世界里&#xff0c;選擇合適的開發工具就如同挑選一把稱手的禪杖&#xff0c;能助你在代碼修行的路上更加得心應手。本文將為Java開發者提供一份實用的IDE選擇指南&#xff0c;從功能、適用人群、性能等方面深入解析幾款主流的Java開發工具&#xff0c;幫助你找到最…

iOS App 內存泄漏與性能調優實戰 如何排查內存問題、優化CPU與GPU性能、降低耗電并提升流暢度(uni-app iOS開發優化指南)

在 iOS 應用開發中&#xff0c;內存泄漏 是最常見且最難排查的性能問題之一。 它會導致應用 運行越來越卡、占用內存過高、頻繁崩潰&#xff0c;甚至嚴重消耗電池。 尤其在 uni-app 跨平臺開發 中&#xff0c;JS 層和原生層的混合調用更容易隱藏內存問題&#xff1a; 對象未釋放…

從源代碼開始構建、部署和管理應用程序

1.創建項目目錄并準備應用程序的代碼及其依賴1.創建項目目錄&#xff0c;并將當前目錄切換到該目錄[roothost1 ~]# mkdir python-web && cd python-web2.創建 app.py 文件并添加以下代碼[roothost1 python-web]# vi app.py [roothost1 python-web]# cat app.py import …

Flutter-[2]第一個應用

摘要 根據官方文檔搭配好環境&#xff0c;使用vscode創建完應用后&#xff0c;會遇到以下問題 設備無法選擇打開了lib\main.dart右上角也沒有運行按鈕 環境 Windows11Flutter 3.35.4 必要設置 1. 查看是否開啟Windows桌面應用開發flutter config --list輸出如下: All Settings:…

QListWidget選擇阻止問題解決方案

QListWidget選擇阻止問題解決方案QListWidget選擇阻止問題解決方案問題背景QListWidget工作機制詳解1. 事件處理流程2. 關鍵機制說明2.1 鼠標事件與信號的分離2.2 信號阻塞的局限性2.3 斷開連接方法的問題問題的根本原因1. 異步事件處理2. 多層狀態管理3. 事件優先級解決方案演…

TCL華星計劃投建第8.6代印刷OLED產線

近日&#xff0c;TCL科技集團股份有限公司&#xff08;000100.SZ&#xff09;發布公告&#xff0c;公司、旗下子公司TCL華星與廣州市人民政府、廣州經濟技術開發區管理委員會共同簽署項目合作協議&#xff0c;擬共同出資于廣州市建設一條月加工2290mm2620mm玻璃基板能力約2.25萬…

MATLAB 時間序列小波周期分析

1. 文件結構 WaveletPeriod/ ├── main_wavelet_period.m % 一鍵運行 ├── wavelet_power_spectrum.m % 小波功率譜 顯著性 ├── period_peak_detect.m % 自動周期峰值 ├── plot_wavelet_results.m % 時頻圖 周期圖 └── example/└── temp.csv …

如何精準配置儲

當電費賬單變身利潤引擎&#xff0c;您的企業是否做好了準備&#xff1f;鷓鴣云儲能仿真軟件&#xff0c;不止于仿真——我們以智能算法為核心&#xff0c;為企業定制“高收益、高適配、可持續”的儲能配置方案&#xff0c;將用電數據轉化為新一輪增長動能。智慧大腦&#xff1…

Uniapp崩潰監控體系構建:內存泄漏三維定位法(堆棧/資源/線程)

在Uniapp開發中&#xff0c;內存泄漏是導致應用崩潰的核心隱患。通過堆棧分析、資源追蹤和線程監控三維定位法&#xff0c;可系統化定位泄漏源。以下是完整實施方案&#xff1a;一、堆棧維度&#xff1a;泄漏對象溯源內存快照比對使用Chrome DevTools定期獲取內存快照&#xff…

NLP中Subword算法:WordPiece、BPE、BBPE、SentencePiece詳解以及代碼實現

本文將介紹以下內容&#xff1a; 1. Subword與傳統tokenization技術的對比2. WordPiece3. Byte Pair Encoding (BPE)4. Byte-level BPE(BBPE)5. SentencePiece 以及各Subword算法代碼實現 一、Subword與傳統tokenization技術的對比 1. 傳統tokenization技術 傳統tokenizatio…

十一章 無界面壓測

一、采用無界面壓測的原因1.節約系統資源。 2.更快捷&#xff0c;只需要啟動命令即可進行壓測 3.主要是用于性能壓測集成.無界面壓測命令參數&#xff1a; -n 表示無界面壓測 -t 制定你的 jmx 腳本 -l 生成 jtl 測試報告二、注意配置文件設置:輸出為xml jmeter.save.s…

從零實現 Qiankun 微前端:基座應用控制子應用路由與信息交互

隨著前端業務的快速發展,單體應用模式(Monolith)越來越難以支撐復雜業務場景。微前端(Micro Frontends)應運而生,它將大型應用拆解成多個子應用(Micro App),通過主應用進行統一調度和集成。 在微前端技術棧中,Qiankun(乾坤)是一個廣泛使用的解決方案,基于 single…

在業務應用中集成 go-commons,實現應用+系統雙指標監控

在日常 Go 服務開發中&#xff0c;我們通常需要同時監控 業務指標&#xff08;比如 QPS、請求延遲、錯誤率&#xff09;&#xff0c;也需要關注 系統指標&#xff08;CPU、內存、磁盤占用情況&#xff09;。 過去這類場景通常要引入多個庫&#xff1a;一個負責業務指標采集&…

容器化部署番外篇之docker網絡通信06

一、四種網絡模式 Bridge模式&#xff1a;容器的默認網關&#xff0c;默認新建容器的網絡模式Host模式&#xff1a;容器和宿主機共用一個 Network&#xff0c;使用主機的IP:PORT就可以訪問容器&#xff0c;但安全性不高&#xff0c;用得少Container模式&#xff1a;這個模式指定…