Spring Boot 是 Spring 平臺上的一個功能強大的抽象層。它使開發獨立的、可快速上線的應用變得簡單。Spring Boot 提供了一些處理應用程式的啟動依賴項。本文將討論在 Spring Boot 中配置 Tomcat 連線池。我們可以為此使用任何資料庫。在此,我們藉助 MongoClientSettings Bean 在 Spring Boot 中使用 MongoDB 配置 Tomcat 連線池。 MongoClientSettings 物件用於透過提供 MongoDB 配置細節來控制 MongoClient。
Spring Boot 中的 Tomcat 連線池是基於 Apache Tomcat 專案實現的強大且高效能的資料庫連線池。 它用於管理資料庫連線,使我們能夠避免為程式中的每次資料庫操作建立新的資料庫連線,連線池會自動重複使用池中的連線,可以節省伺服器資源並提高程式效能。在 Spring Boot 中,我們透過位於專案資原始檔夾中的 application.properties 檔案配置 Tomcat 連線池。
關鍵術語:
Connection Pool(連線池):為減少建立新連線的開銷而維護和重複使用的資料庫連線集合。
Connection Leaks(連線洩漏):當連線未正確關閉並返回池中,導致資源耗盡: 連線未正確關閉並返回池,導致資源耗盡。
Connection Timeout(連線超時): 關閉閒置連線的時間。
Max Connections(最大連線數): 連線池中的最大連線數,它控制著資料庫併發操作的最大數量。
先決條件:
要理解本文,您應瞭解以下列出的內容
Spring Boot 框架
Apache Tomcat
資料庫
連線池
MongoClient 和 MongoClientSettings
Spring 啟動器依賴關係管理
在 Spring Boot 中配置 Tomcat 連線池的實現步驟
首先,我們建立一個帶有 MongoDB Starter 依賴關係的 Spring Starter 專案,以便與 Apache Tomcat 伺服器建立連線池。建立該專案時,Apache Tomcat 預設已內建並由 Spring Boot 框架管理。按照以下步驟,我們可以在 Spring Boot 中成功配置 Tomcat 連線池。
第 1 步:
使用 Spring 初始化程式建立 Spring 專案,在建立專案時,將以下依賴項新增到專案中。
依賴項:
Spring Web
MongoDB
DevTools
dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' implementation 'org.springframework.boot:spring-boot-starter-web' developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
建立 Spring 專案後,檔案結構如下圖所示。
步驟 2:
然後,我們在專案的主包中建立一個類。 之後,我們使用 @Configuration Spring 註解使其成為一個配置類。 現在,我們使用 MongoClientSettings Bean 編寫 MongoClient 配置的程式碼。 該配置類在執行資料庫操作時管理資料庫連線。
package com.app; import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MongoConfig { @Bean public MongoClientSettings mongoClientSettings() { ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017/exampledb"); return MongoClientSettings.builder() .applyConnectionString(connectionString) .build(); } @Bean public MongoClient mongoClient() { return MongoClients.create(mongoClientSettings()); } }
第 3 步:
開啟專案資原始檔夾中的 application.properties 檔案。加入以下程式碼,使用屬性檔案在 Spring Boot 中配置 Tomcat 連線池。
spring.application.name=TomcatConnectionPool # MongoDB connection details spring.data.mongodb.uri=mongodb://localhost:27017/work # Connection pool settings spring.data.mongodb.connection-per-host=100 spring.data.mongodb.min-connections-per-host=10 spring.data.mongodb.max-wait-time=120000 spring.data.mongodb.connect-timeout=10000 spring.data.mongodb.socket-timeout=10000
該屬性檔案包含有關最小和最大連線數、連線超時、套接字超時和最大等待時間的資訊。 還可以根據專案要求定義更多屬性。
第 4 步:
現在,讓我們將此專案作為 Spring Boot 應用程式執行。 預設情況下,專案執行在 Apache Tomcat 伺服器的 8080 埠上。透過日誌可以看到Tomcat的連線池資訊。