Spring數據訪問全攻略:從JdbcTemplate到聲明式事務

上文講到 —— 航向數據之海:Spring的JPA與Hibernate秘籍

本文目錄

    • 四. JdbcTemplate的使用
      • 定義JdbcTemplate及其在Spring中的作用
      • 展示如何使用JdbcTemplate簡化數據庫操作
        • 1. 配置JdbcTemplate
        • 2. 使用JdbcTemplate查詢數據
        • 3. 打印查詢結果
    • 五. Spring的事務管理
      • 介紹事務管理的基本概念
      • 解釋Spring支持的事務管理類型
        • 1. 編程式事務管理
        • 2. 聲明式事務管理
      • 展示如何使用聲明式事務管理
    • 六. 聲明式事務管理
      • 定義聲明式事務管理
      • 討論如何在Spring中實現聲明式事務管理
        • 1. 配置事務管理器
        • 2. 使用`@Transactional`注解
        • 3. 事務屬性的自定義
    • 七. JPA和Hibernate
      • 介紹JPA(Java Persistence API)
      • 介紹Hibernate及其核心特性
      • 討論JPA和Hibernate與Spring的集成方式
        • 7.1 JPA與Spring的關系
        • 7.2 Hibernate與Spring的關系
    • 八. 結論
      • 總結Spring在數據訪問與集成方面提供的功能
      • 強調Spring對于簡化數據訪問和事務管理的貢獻
        • 1. 開發效率的提升
        • 2. 代碼的可維護性
        • 3. 數據一致性的保障
    • 參考文獻

在這里插入圖片描述

四. JdbcTemplate的使用

定義JdbcTemplate及其在Spring中的作用

在Spring的航海之旅中,JdbcTemplate是航海家Spring的得力助手,它是一個簡化數據庫操作的利器。想象一下,如果每次航行都需要手動劃槳,那么航海家Spring的雙手很快就會疲憊不堪。而JdbcTemplate就像是一艘裝有自動劃槳機的船,讓Spring可以更輕松地駕馭數據的海洋。

JdbcTemplate是一個以模板方法設計模式實現的類,它封裝了JDBC(Java Database Connectivity)的繁瑣操作,提供了一種更加簡潔和統一的方式來執行數據庫操作。它就像是航海家Spring的自動導航系統,可以自動規劃航線,避開障礙,確保航行的順利。

展示如何使用JdbcTemplate簡化數據庫操作

讓我們通過一個實際的例子來展示JdbcTemplate的魔力。假設Spring需要從數據庫中檢索所有用戶的信息,并且將這些信息打印出來。

1. 配置JdbcTemplate

首先,Spring需要告訴JdbcTemplate如何連接到數據庫。這就像是設定航向和目的地,讓自動導航系統知道要去哪里。

@Configuration
public class DatabaseConfig {@Beanpublic DataSource dataSource() {// 配置數據庫連接池return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).addScript("schema.sql").build();}@Beanpublic JdbcTemplate jdbcTemplate(DataSource dataSource) {return new JdbcTemplate(dataSource);}
}
2. 使用JdbcTemplate查詢數據

接下來,Spring就可以使用JdbcTemplate來執行查詢了。這就像是啟動自動導航系統,讓船只自動航行。

@Service
public class UserService {private final JdbcTemplate jdbcTemplate;@Autowiredpublic UserService(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}public List<User> findAllUsers() {List<User> users = jdbcTemplate.query("SELECT id, username, age FROM users",new RowMapper<User>() {public User mapRow(ResultSet rs, int rowNum) throws SQLException {return new User(rs.getInt("id"),rs.getString("username"),rs.getInt("age"));}});return users;}
}

在這個例子中,findAllUsers方法通過JdbcTemplate的query方法執行了一個SQL查詢,并將結果集映射為User對象的列表。這個過程就像是航海家Spring用望遠鏡觀察海面,自動識別出每一條船,并記錄下它們的信息。

3. 打印查詢結果

最后,Spring可以簡單地遍歷用戶列表,并將用戶信息打印出來,就像是在航海日志中記錄下每一次的發現。

public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(DatabaseConfig.class);UserService userService = context.getBean(UserService.class);List<User> users = userService.findAllUsers();for (User user : users) {System.out.println(user);}
}

通過這個簡單的過程,Spring就可以輕松地從數據庫中檢索和處理數據,而無需擔心JDBC的復雜細節。JdbcTemplate就像是航海家Spring的得力助手,讓數據訪問變得簡單而有趣。


接下來,我們將探索Spring的事務管理功能,這是確保數據一致性的關鍵。就像在航行中,即使遇到風浪,也要確保貨物安全一樣,事務管理確保了數據操作的完整性和可靠性。讓我們繼續跟隨Spring,深入了解這一重要的概念。

五. Spring的事務管理

介紹事務管理的基本概念

在數據訪問的航海之旅中,事務管理就像是航海家Spring的“救生圈”。在數據庫的世界里,一次事務可能包含多個步驟,比如用戶下單、扣款、庫存更新等。如果這些步驟中的任何一個失敗,整個操作都應該撤銷,以保持數據的一致性。就像在航行中,如果貨物在搬運過程中不慎落水,那么整個搬運過程都應該視為失敗,以避免貨物的丟失。

解釋Spring支持的事務管理類型

Spring提供了多種事務管理方式,以適應不同的業務場景和需求。這些方式就像是航海家Spring的多種“救生圈”,每種都有其獨特的用途和優勢。

1. 編程式事務管理

編程式事務管理就像是使用一個普通的救生圈,你需要自己判斷何時使用它。這種方式通過編碼的方式直接管理事務的開啟、提交或回滾,適用于對事務控制要求精細的場合。

2. 聲明式事務管理

而聲明式事務管理則像是自動充氣的救生衣,你只需要穿上它,它就會在檢測到危險時自動充氣保護你。這種方式通過配置來聲明事務的邊界和特性,無需在代碼中硬編碼事務管理邏輯,簡化了開發。

展示如何使用聲明式事務管理

讓我們通過一個簡單的例子來展示如何使用聲明式事務管理,以確保用戶下單過程中的數據庫操作要么全部成功,要么在遇到任何問題時全部撤銷。

假設我們有一個OrderService,它負責處理用戶的下單操作,這個過程需要執行多個數據庫操作,如創建訂單、扣款、更新庫存等。

@Service
public class OrderService {private final OrderRepository orderRepository;private final AccountRepository accountRepository;private final InventoryRepository inventoryRepository;@Autowiredpublic OrderService(OrderRepository orderRepository, AccountRepository accountRepository, InventoryRepository inventoryRepository) {this.orderRepository = orderRepository;this.accountRepository = accountRepository;this.inventoryRepository = inventoryRepository;}@Transactionalpublic void placeOrder(Order order) {// 創建訂單orderRepository.save(order);// 從賬戶扣款accountRepository.deductBalance(order.getAccountId(), order.getTotalAmount());// 更新庫存inventoryRepository.reduceStock(order.getProductId(), order.getQuantity());}
}

在這個例子中,placeOrder方法通過@Transactional注解聲明了事務管理。這意味著,如果方法中的任何一個數據庫操作失敗,Spring都會自動回滾事務,撤銷之前的所有操作,確保數據的一致性。

這就像是航海家Spring在搬運貨物時穿上了自動充氣的救生衣,即使遇到風浪,也能夠保證貨物的安全。


通過Spring的事務管理,航海家Spring可以更加自信地航行在數據的海洋中,即使遇到風浪,也能夠確保貨物(數據)的安全。在下一章中,我們將深入了解聲明式事務管理,這是Spring提供的一種更加簡潔和聲明式的方式來管理事務。讓我們繼續跟隨Spring,探索更多的可能性。
在這里插入圖片描述

六. 聲明式事務管理

定義聲明式事務管理

在Spring的航海之旅中,聲明式事務管理就像是一張神奇的航海圖,它能夠自動引導航海家Spring避開暗礁和風暴,確保航程的安全。與編程式事務管理相比,聲明式事務管理通過配置而非硬編碼的方式,聲明了事務的開始、提交或回滾的規則,讓Spring可以更加專注于業務邏輯的實現。

討論如何在Spring中實現聲明式事務管理

要啟用聲明式事務管理,Spring需要一個事務管理器(TransactionManager)和事務定義信息(通過@Transactional注解或配置文件)。這就像是航海圖上的標記和路線,告訴Spring在哪些航段需要特別小心。

1. 配置事務管理器

首先,我們需要配置一個事務管理器。在Spring中,這通常是通過在配置類上使用@EnableTransactionManagement注解來完成的。

@Configuration
@EnableTransactionManagement
public class AppConfig {// 其他配置...
}
2. 使用@Transactional注解

接下來,我們可以使用@Transactional注解來聲明事務。這個注解可以放在方法上,也可以放在類上,表示所有該類的public方法都具有相同的事務屬性。

@Service
public class OrderService {private final OrderRepository orderRepository;@Autowiredpublic OrderService(OrderRepository orderRepository) {this.orderRepository = orderRepository;}@Transactionalpublic Order placeOrder(String username, Product product, int quantity) {// 檢查庫存inventoryService.checkAvailability(product, quantity);// 創建訂單Order order = new Order(username, product, quantity);orderRepository.save(order);// 扣款accountService.deductFunds(username, product.getPrice() * quantity);// 發送確認郵件emailService.sendOrderConfirmation(username, order);return order;}
}

在這個例子中,placeOrder方法通過@Transactional注解聲明了事務。如果方法中任何一個步驟失敗(比如庫存不足或扣款失敗),Spring都會自動回滾事務,確保數據庫狀態的一致性。

3. 事務屬性的自定義

@Transactional注解還允許我們自定義事務的屬性,如事務的隔離級別、傳播行為、超時時間等。這就像是航海圖上的高級功能,可以根據不同的海域調整航船的性能。

@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED, timeout = 30)
public void someServiceMethod() {// ...
}

在這個例子中,我們為事務設置了隔離級別為READ_COMMITTED,傳播行為為REQUIRED,并且設置了30秒的超時時間。


通過聲明式事務管理,Spring能夠更加靈活和安全地處理事務,就像航海家Spring在航海圖中規劃了最佳航線,避開了所有的風險。在下一章中,我們將深入了解JPA和Hibernate,這是Spring在數據持久化方面的兩大利器,它們將幫助Spring更高效地與數據庫進行交互。讓我們繼續跟隨Spring,探索數據訪問與集成的更多奧秘。

七. JPA和Hibernate

介紹JPA(Java Persistence API)

在Spring的航海之旅中,JPA(Java Persistence API)就像是一張海圖,它不僅指引著航海家Spring如何在數據庫的海洋中航行,還提供了一套通用的語言來描述和操作數據。JPA是一個Java規范,它定義了一組API,用于對象-關系映射(ORM),即將Java對象映射到數據庫表中。

介紹Hibernate及其核心特性

Hibernate是JPA的一個流行實現,它就像是一艘裝備精良的潛水艇,讓Spring能夠深入數據庫的海洋,執行各種復雜的操作。Hibernate提供了許多強大的特性,如自動SQL生成、事務管理、緩存機制等,極大地簡化了數據持久化的工作。

討論JPA和Hibernate與Spring的集成方式

Spring與JPA和Hibernate的集成就像是航海家Spring與他的潛水艇之間的無縫配合。Spring提供了一個JPA的抽象層,允許開發者以一種統一的方式使用JPA,而不必關心底層的具體實現。

7.1 JPA與Spring的關系

在Spring的ORM框架中,JPA扮演著重要的角色。Spring提供了LocalContainerEntityManagerFactoryBeanEntityManagerFactory來配置和使用JPA。

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactoryBean",transactionManagerRef = "transactionManager",basePackages = {"com.example.repositories"} // 指定repository所在位置
)
public class JpaConfig {@Beanpublic LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(EntityManagerFactoryBuilder builder, DataSource dataSource) {return builder.dataSource(dataSource).packages("com.example.domain") // 指定實體類所在位置.persistenceUnit("default").build();}@Beanpublic PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {JpaTransactionManager transactionManager = new JpaTransactionManager();transactionManager.setEntityManagerFactory(entityManagerFactory);return transactionManager;}
}

在這個配置中,我們定義了如何創建EntityManagerFactory,它是JPA的核心組件,用于創建EntityManager,以及定義了事務管理器PlatformTransactionManager。

7.2 Hibernate與Spring的關系

Hibernate作為ORM框架,與Spring的集成非常緊密。Spring提供了對Hibernate的無縫支持,讓開發者可以輕松地利用Hibernate的強大功能。

@Configuration
@EnableTransactionManagement
@EnableHibernateEntityManager
public class HibernateConfig {@Beanpublic LocalSessionFactoryBean sessionFactory(DataSource dataSource) {LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();sessionFactoryBean.setDataSource(dataSource);sessionFactoryBean.setPackages("com.example.domain"); // 指定實體類所在位置sessionFactoryBean.setHibernateProperties(hibernateProperties());return sessionFactoryBean;}@Beanpublic Properties hibernateProperties() {Properties hibernateProperties = new Properties();hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");hibernateProperties.setProperty("hibernate.show_sql", "true");return hibernateProperties;}// 其他配置...
}

在這個配置中,我們通過LocalSessionFactoryBean來配置Hibernate的SessionFactory,并通過hibernateProperties定義了Hibernate的配置屬性。


通過Spring與JPA和Hibernate的集成,航海家Spring就像是擁有了一張詳盡的海圖和一艘強大的潛水艇,無論是在數據庫的淺灘還是深海,都能夠自如地航行和探索。在下一章中,我們將總結Spring在數據訪問與集成方面提供的功能,并強調Spring對于簡化數據訪問和事務管理的貢獻。讓我們繼續跟隨Spring,完成這次精彩的航海之旅。

在這里插入圖片描述

八. 結論

隨著我們和航海家Spring一起經歷了這場數據訪問與集成的冒險,現在是時候回顧一下我們的收獲了。在這個旅程中,我們見識了Spring如何以其強大的功能和優雅的設計,幫助我們征服了數據的海洋。

總結Spring在數據訪問與集成方面提供的功能

Spring框架在數據訪問與集成方面提供了一整套解決方案,從基礎的JdbcTemplate到高級的ORM框架JPA和Hibernate,每一個組件都像是航海家的工具箱中的一件神器,幫助我們在數據的海洋中乘風破浪。

  • JdbcTemplate:提供了一種簡便的方法來執行常見的數據庫操作,就像是一艘小船,雖簡單卻非常實用。
  • 異常層次結構:清晰的異常分類和處理機制,就像是航海圖上的風向標,指引我們快速識別和解決問題。
  • 事務管理:無論是編程式還是聲明式事務管理,Spring都提供了強大的支持,確保了數據操作的原子性、一致性、隔離性和持久性(ACID)。
  • JPA和Hibernate:作為ORM框架,它們極大地簡化了對象與數據庫之間的映射,就像是深海中的潛水艇,能夠深入探索數據的奧秘。

強調Spring對于簡化數據訪問和事務管理的貢獻

Spring的貢獻不僅僅在于提供了這些工具和框架,更重要的是它改變了我們處理數據訪問和事務管理的方式。通過Spring,開發者可以更加專注于業務邏輯的實現,而不是被底層的數據庫操作所困擾。

1. 開發效率的提升

Spring通過提供簡化的API和聲明式配置,顯著提高了開發效率。開發者可以用更少的代碼做更多的事情,就像是航海家Spring用更少的力氣駕馭更大的船。

2. 代碼的可維護性

Spring倡導的編程范式和設計模式,如依賴注入(DI)和面向切面編程(AOP),提高了代碼的可讀性和可維護性。這就像是航海圖上的清晰標記,讓后來的航海家能夠更容易地理解和使用。

3. 數據一致性的保障

通過Spring的事務管理,我們能夠確保數據庫操作的一致性,避免了數據的不一致和潛在的錯誤。這就像是航海家Spring在航行中始終堅守的信條,無論遇到多大的風浪,都要確保貨物的安全。

隨著我們的航海之旅即將結束,航海家Spring已經準備好迎接新的挑戰。在未來的航程中,Spring將繼續作為我們最可靠的伙伴,帶領我們在數據的海洋中探索更多的未知和可能。


參考文獻

  • Spring官方文檔:Spring Framework Documentation
  • JPA官方文檔:Java Persistence API
  • Hibernate官方文檔:Hibernate ORM Documentation

希望看官們喜歡這次和Spring一起的冒險之旅,如果你有任何問題或者想要繼續探索,記得隨時回來找俺,Spring的航海圖永遠為你展開。

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

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

相關文章

橋接模式

橋接模式&#xff1a;在這種模式下&#xff0c;虛擬機就像是局域網中一臺獨立的主機&#xff0c;能夠訪問網內任何一臺機器。在橋接模式下&#xff0c;必須為虛擬系統手動配置IP地址、子網掩碼&#xff0c;并且這些配置需要與宿主機器處于同一網段&#xff0c;以便虛擬系統和宿…

leetcode-42. 接雨水(雙指針,前綴)

42. 接雨水 /*** param {number[]} height* return {number}*/ var trap function (height) {let len height.length;let pre_max new Array(len).fill(0);let suf_max new Array(len).fill(0);pre_max[0] height[0];suf_max[len - 1] height[len - 1];for (let i 1; i…

queue使用

C的queue是一種先進先出&#xff08;FIFO&#xff09;的數據結構&#xff0c;可以用來存儲一系列元素。它屬于STL&#xff08;Standard Template Library&#xff09;的一部分&#xff0c;以queue模板類的形式提供。 要使用queue&#xff0c;需要包含頭文件&#xff0c;并使用…

Linux shell編程學習筆記49:strings命令

0 前言 在使用Linux的過程中&#xff0c;有時我們需要在obj文件或二進制文件中查找可打印的字符串&#xff0c;那么可以strings命令。 1. strings命令 的功能、格式和選項說明 我們可以使用命令 strings --help 來查看strings命令的幫助信息。 pupleEndurer bash ~ $ strin…

在k8s中搭建elasticsearch高可用集群,并對數據進行持久化存儲

&#x1f407;明明跟你說過&#xff1a;個人主頁 &#x1f3c5;個人專欄&#xff1a;《洞察之眼&#xff1a;ELK監控與可視化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目錄 一、引言 1、Elasticsearch簡介 2、k8s簡介 二、環境準備 …

Git項目管理——提交項目和版本回退(二)

個人名片&#xff1a; &#x1f393;作者簡介&#xff1a;嵌入式領域優質創作者&#x1f310;個人主頁&#xff1a;妄北y &#x1f4de;個人QQ&#xff1a;2061314755 &#x1f48c;個人郵箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;個人微信&#xff1a;Vir2025WB…

android繪制多個黑豎線條

本文實例為大家分享了android繪制多個黑豎線條展示的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下 1.寫一個LinearLayout的布局&#xff0c;將寬度寫成5dp將高度寫成match_parent. 2.在寫一個類繼承LinearLayout&#xff0c;用LayoutInflater實現子布局的在這個L…

train_gpt2_fp32.cu - main

llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) 源碼 // ---------------------------------------------------------------------------- // main training loop int main(int argc, char *argv[]) {// read in the (optional) command line argumentsco…

三.使用HashiCorp Vault工具管理數據庫

三.ubuntu安裝使用HashiCorp Vault工具管理數據庫 HashiCorp Vault 是一個基于身份的秘密和加密管理系統。機密是您想要嚴格控制訪問的任何內容,例如 API 加密密鑰、密碼和證書。Vault 提供由身份驗證和授權方法門控的加密服務。使用 Vault 的 UI、CLI 或 HTTP API,可以安全…

深度優先搜索匯總

常用英文 最近公共祖先&#xff08;Lowest Common Ancestor&#xff0c;簡稱LCA&#xff09; posterity&#xff0c;英語單詞&#xff0c;主要用作名詞&#xff0c;作名詞時譯為“子孫&#xff0c;后裔&#xff1b;后代”。 什么是深度優先搜索 深度優先搜索&#xff0c;D…

[前端] vue2的/deep/轉化為vue3語法(筆記)

vue2語法示例 <style scoped lang"less">/deep/.el-carousel__button {width: 8px;height: 3px;border-radius: 3px;}/deep/.el-carousel__indicator.is-active button {width: 16px;} } </style>在 Vue 3 中&#xff0c;/deep/ 或 >>> 選擇器…

24 內核開發- Linux 內核各種設計模式

24 內核開發- Linux 內核各種設計模式 Linux 內核中使用了各種設計模式來組織和結構其龐大的代碼庫。以下是 Linux 內核中的一些常見設計模式&#xff1a; 1. 單例模式&#xff1a; 模塊&#xff1a; init 模塊 目的&#xff1a; 初始化內核并創建第一個進程 (init_task) 實現…

uni-app 實現下拉單選功能(六)

總體的設計思想是,一個輸入框在客戶點擊時,彈出需要選擇的下拉框選項,客戶選擇完后,隱藏下拉框選項內容;并將選擇的數據填充到輸入框內。話不多說直接上代碼: <template> <view class="dianjianInfo"> <view class="uni-form…

文心一言指令

文心一言 文心一言&#xff08;ERNIE Bot&#xff09;是百度公司研發的知識增強大語言模型&#xff0c;它可以根據用戶的指令和輸入&#xff0c;生成相應的回答或文本。以下是一些可能的指令示例&#xff0c;用于指導文心一言完成不同的任務&#xff1a; 知識問答&#xff1a…

【oracle】圖片轉為字節、base64編碼等形式批量插入oracle數據庫并查詢

1.熟悉、梳理、總結下Oracle相關知識體系 2.歡迎批評指正&#xff0c;跪謝一鍵三連&#xff01; 資源下載&#xff1a; oci.dll、oraocci11.dll、oraociei11.dll3個資源文件資源下載&#xff1a; Instant Client Setup.exe資源下載&#xff1a; oci.dll、oraocci11.dll、oraoc…

LangChain_Tools

1、Tools 可以被Agent、Chain、LLM所使用。 2、tool 的必備屬性有&#xff1a;name、description、JSON schema &#xff08;tool輸入&#xff09;、調用的函數、工具的結果是否應直接返回給用戶。其中name、description和 JSON schema 可用于提示 LLM、寫入在LLM的system pro…

初識C語言——第二十一天

猜數字小游戲的實現&#xff1a; 學會了之后可以自己制作彩票抽獎&#xff0c;哈哈&#xff01; 代碼實現&#xff1a; #include <stdlib.h> #include <time.h>void menu()//無返回值函數 {printf("**************************\n");printf("****…

Linux:退出vim編輯模式

一、使用快捷鍵進行退出 1、按“Esc”鍵進入命令模式 當我們在vim編輯模式下輸入完畢需要進行退出操作時&#xff0c;首先需要按下“Esc”鍵&#xff0c;將vim編輯器從插入模式或者替換模式切換到命令模式。 ESC 2、輸入“:wq”保存并退出 在命令模式下&#xff0c;輸入“:…

在kubernetes中配置Ingress

目錄 1. 安裝Nginx Ingress Controller2. 準備TLS證書3. 編寫Ingress資源定義4. 應用Ingress配置5. 驗證配置 1. 安裝Nginx Ingress Controller 首先&#xff0c;確保你的Kubernetes集群已經準備好。你可以使用Helm或者直接通過yaml文件來安裝Nginx Ingress Controller。這里給…

云原生 初識Kubernetes的理論基礎

一、k8s 的由來及其技術運用 1.1 k8s的簡介 Kubernetes&#xff0c;詞根源于希臘語的 舵手、飛行員。在國內又稱k8s&#xff08;因為k和s之間有8個字母&#xff0c;所以得名。“國內程序員的幽默”&#xff09;。 作用&#xff1a; 用于自動部署、擴展和管理“容器化&#x…