關(guān)于druid配置參數(shù)的使用詳解
druid配置參數(shù)的使用
例子1
spring:
#數(shù)據(jù)庫配置
datasource:
#這里使用的是德魯伊數(shù)據(jù)庫連接池
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url:
username:
password:
#初始連接數(shù)量
initial-size: 20
#最小連接數(shù)量
min-idle: 20
#最大連接數(shù)量
max-active: 1000
#獲取連接等待超時的時間 單位是毫秒,這里配置60秒
max-wait: 60000
#查詢超時時間 單位是毫秒 這里配置6秒,如果你查詢數(shù)據(jù)量大的情況下這個配置的大一點,不然查詢報錯拋出異常
query-timeout: 6000
#事務(wù)發(fā)生回滾后多長時間響應(yīng)用戶單位是毫秒,這里這個時間和mysql的innodb_lock_wait_timeout是相加的關(guān)系,如果你在mysql配置文件配置了這個時間,那時間就會相加
transaction-query-timeout: 2000
#配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位毫秒, 這里配置10分鐘去檢測一次是否存在空閑連接
time-between-eviction-runs-millis: 600000
#最大等待線程數(shù)量 這里配置50,當(dāng)你的連接滿了之后,其他的連接進入等待池子,最大的數(shù)量為50,超過這個數(shù)量的線程舍棄掉
max-wait-thread-count: 50
#最小連接時間,也就是說一條線程的空閑時間超過了這個數(shù)就會被關(guān)閉,這里的單位是毫秒,這里設(shè)置為10分鐘
min-evictable-idle-time-millis: 600000
#最大連接時間,也就是說一條線程的空閑時間>最小連接時間,也>最大連接時間,直接關(guān)閉 這里設(shè)置為30分鐘
max-evictable-idle-time-millis: 1800000
#申請連接時直接檢測連接是否有效
test-on-borrow: true
#申請連接時檢測空閑時間,根據(jù)空閑時間再檢測連接是否有效
test-while-idle: true
#歸還連接時檢測連接是否有效,這個配置生產(chǎn)最好不要配置設(shè)置為ture,有性能問題
test-on-return: true
#初始連接失敗是否拋出異常
init-exception-throw: true
#開啟檢查運行的狀態(tài)
check-execute-time: true
#這里是健康檢查sql語句,配合下面的使用
validation-query: SELECT 1 FROM DUAL
#多長時間進行一次心跳去檢查是否連接了mysql,這里配置為30分鐘
validation-query-timeout: 1800000
#連接出錯后在嘗試3次
connection-error-retry-attempts: 3
#數(shù)據(jù)庫宕機后啟用重連機制,true表示失敗后立即斷開,false表示失敗后進行斷線重連嘗試,配合上面的重連次數(shù)
break-after-acquire-failure: false
#重連的間隔 單位毫秒 這里設(shè)置30分鐘重連
time-between-connect-error-millis: 1800000
#開啟保持連接有效性
keep-alive: true
#只有空閑時間大于keep-alive-between-time-millis并且小于min-evictable-idle-time-millis該參數(shù)才會有用,單位為毫秒 這里設(shè)置為15分鐘
#這個時間必須大于檢測時間time-between-eviction-runs-millis
keep-alive-between-time-millis: 900000
#這個目前不知道做什么的,字面意思看是殺死什么時候的讀的socket超時時間
#kill-when-socket-read-timeout:例子2
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydb
username: myuser
password: mypass
druid:
# 連接池初始化時創(chuàng)建的連接數(shù)。
# 應(yīng)根據(jù)實際應(yīng)用場景設(shè)置,確保應(yīng)用程序啟動時即可獲取數(shù)據(jù)庫連接。
initial-size: 5
# 連接池中最小的空閑連接數(shù),保證即使在低負載時也有足夠的連接可用。
min-idle: 5
# 連接池中最大活動連接數(shù),限制并發(fā)請求時的數(shù)據(jù)庫連接數(shù),避免過多的連接消耗系統(tǒng)資源。
max-active: 20
# 獲取連接時的最大等待時間,超過該時間則拋出異常。單位通常為毫秒。
max-wait: 60000
# 兩個連接檢查之間的時間間隔,用于檢測和清理空閑過久的連接。單位為毫秒。
time-between-eviction-runs-millis: 60000
# 連接在被清理前的最小空閑時間。單位為毫秒。
min-evictable-idle-time-millis: 300000
# 用于驗證連接有效性的 SQL 查詢語句。
validation-query: SELECT 1 FROM DUAL
# 如果為真,則連接空閑時會被定期測試有效性。
test-while-idle: true
# 如果為真,在獲取連接前進行有效性測試。
test-on-borrow: false
# 如果為真,在歸還連接時進行有效性測試。
test-on-return: false
# 是否開啟 PreparedStatement 緩存。
pool-prepared-statements: true
# 單個連接上緩存的 PreparedStatement 最大數(shù)量。
max-pool-prepared-statement-per-connection-size: 20
# 指定要啟用的過濾器,如 stat, log4j, wall 等,用于監(jiān)控和日志記錄。
filters: stat,wall,log4j
# 連接屬性,例如配置日志級別或慢 SQL 閾值。
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 是否自動回收超時連接
remove-abandoned: true
# 超時時間,單位秒
remove-abandoned-timeout: 1800
# 是否記錄被遺棄的連接
log-abandoned: true
# StatViewServlet配置,訪問監(jiān)控頁面
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin
login-password: admin
reset-enable: false
# 防火墻配置
wall:
config:
multi-statement-allow: falseDruid數(shù)據(jù)庫連接池參數(shù)詳解
基本連接信息
- druid.datasource.url:數(shù)據(jù)庫的 URL 地址,這是連接數(shù)據(jù)庫時必不可少的配置項。在應(yīng)用與數(shù)據(jù)庫建立連接的過程中,通過該 URL 指定具體的數(shù)據(jù)庫實例,是較為常見且基礎(chǔ)的配置內(nèi)容。
- druid.datasource.username:數(shù)據(jù)庫的用戶名,用于驗證應(yīng)用訪問數(shù)據(jù)庫的身份。
- druid.datasource.password:數(shù)據(jù)庫的密碼,與用戶名配合使用,確保只有授權(quán)的應(yīng)用才能訪問數(shù)據(jù)庫。
- druid.datasource.driverClassName:數(shù)據(jù)庫驅(qū)動類名,它是應(yīng)用與數(shù)據(jù)庫之間通信的橋梁,指定了連接數(shù)據(jù)庫所需的驅(qū)動程序。
連接池大小相關(guān)參數(shù)
- druid.initialSize:初始連接池大小。當(dāng)應(yīng)用啟動時,Druid 連接池會依據(jù)此參數(shù)值預(yù)先創(chuàng)建相應(yīng)數(shù)量的數(shù)據(jù)庫物理連接。這一機制能夠保證應(yīng)用在首次請求數(shù)據(jù)庫連接時,能夠迅速獲取已準(zhǔn)備好的連接,有效提升響應(yīng)速度,增強系統(tǒng)性能,避免了在請求到來時才創(chuàng)建連接所帶來的延遲問題。
- druid.minIdle:最小連接池大小。Druid 連接池會定期檢查空閑連接數(shù)量,若當(dāng)前空閑連接數(shù)低于此參數(shù)設(shè)定的值,連接池會自動創(chuàng)建新的連接。即使在系統(tǒng)處于低負載狀態(tài)時,也能保證有足夠的空閑連接可供快速復(fù)用,從而在遇到突發(fā)流量時,顯著減少因創(chuàng)建新連接而產(chǎn)生的延遲,提升系統(tǒng)的響應(yīng)速度和穩(wěn)定性。
- druid.maxActive:最大連接池大小,是連接池配置中的關(guān)鍵參數(shù)。它定義了連接池中允許同時存在的最大活動連接數(shù),即當(dāng)前正在被應(yīng)用程序使用的數(shù)據(jù)庫連接數(shù)量。一旦達到這個上限,后續(xù)的連接請求將會被阻塞或拒絕,直到有活動連接被釋放回連接池。例如,若 maxActive 設(shè)置為 100,則連接池最多能同時處理 100 個數(shù)據(jù)庫操作請求。當(dāng)應(yīng)用程序嘗試打開的連接數(shù)超過該限制時,根據(jù)連接池的具體實現(xiàn)和配置,可能會出現(xiàn)等待直到有連接釋放(若設(shè)置了最大等待時間)、拋出異?;驈膫溆脭?shù)據(jù)源獲取連接等情況。
連接等待與超時參數(shù)
- druid.maxWait:等待連接的最大毫秒數(shù),若超過該時間仍未獲取到連接,則會拋出異常。此參數(shù)用于控制應(yīng)用程序在連接池已滿的情況下請求數(shù)據(jù)庫連接時的最大等待時長。合理配置該參數(shù)有助于平衡系統(tǒng)響應(yīng)速度與資源利用率,確保服務(wù)的穩(wěn)定性和良好的用戶體驗,單位為毫秒。
連接檢測與清理參數(shù)
- druid.timeBetweenEvictionRunsMillis:連接空閑多久后檢查其有效性,是連接池執(zhí)行連接檢測和清理的周期間隔時間,單位為毫秒。連接池會按照這個指定的時間段對池中的連接進行檢查,依據(jù)配置的測試條件(如驗證查詢 SQL)判斷連接是否有效、空閑時間是否過長或滿足其他自定義檢查條件。對于無效或不再需要的連接,會將其關(guān)閉并從連接池中移除,以保證連接池中始終是健康、可用的數(shù)據(jù)庫連接。該參數(shù)對于維持連接池的高效運行和數(shù)據(jù)庫連接的穩(wěn)定性至關(guān)重要,通過及時回收問題連接,可有效避免因使用不良連接導(dǎo)致的數(shù)據(jù)庫操作失敗,提升系統(tǒng)的整體健壯性和性能。同時,需合理設(shè)置該參數(shù),避免檢測頻率過高而造成不必要的資源消耗。
- druid.minEvictableIdleTimeMillis:連接在池中最小生存時間,是連接池配置中的一個重要參數(shù)。它用于設(shè)定連接在池中空閑的最短時間,若空閑時間超過此參數(shù)設(shè)置的值,在下次連接回收檢查時,該連接將會被移除,單位為毫秒。這意味著即使連接狀態(tài)正常,但如果其空閑時間過長,超過了設(shè)定值,連接池也會將其關(guān)閉并移除,從而避免資源浪費,保持連接池的 “新鮮度”。此參數(shù)通常與 timeBetweenEvictionRunsMillis 配合使用,共同管理連接池中連接的生命周期,確保不會有過多不必要的連接長期占用資源。合理設(shè)置這兩個參數(shù),可有效利用系統(tǒng)資源,提高數(shù)據(jù)庫訪問效率,并避免因連接閑置過久而引發(fā)的潛在問題。
連接驗證相關(guān)參數(shù)
- druid.testWhileIdle:是否在空閑時驗證連接。若設(shè)置為 true,連接池會在每次檢查空閑連接時(按照 timeBetweenEvictionRunsMillis 設(shè)定的周期),執(zhí)行驗證查詢或其他檢查手段,以確認這些連接是否仍然有效。若連接被判定為失效,會立即將其從連接池中移除,從而有效防止應(yīng)用程序使用到不可用的數(shù)據(jù)庫連接。啟用該參數(shù)可以顯著提高應(yīng)用的穩(wěn)定性,因為它能夠提前發(fā)現(xiàn)并移除那些由于網(wǎng)絡(luò)波動、數(shù)據(jù)庫重啟等原因?qū)е碌牟豢捎眠B接,避免在實際執(zhí)行數(shù)據(jù)庫操作時出現(xiàn)問題。然而,啟用此功能也會帶來一定的性能開銷,因為每個檢查周期都需要消耗一定資源來測試連接的有效性。因此,在設(shè)置該參數(shù)時,需要在維護連接健康性和系統(tǒng)資源消耗之間進行權(quán)衡。
- druid.testOnBorrow:獲取連接時是否測試連接。該參數(shù)決定了在從連接池中借取一個連接給應(yīng)用程序使用之前,是否需要先進行連接有效性測試。若設(shè)置為 true,每當(dāng)應(yīng)用程序請求一個連接時,連接池會先執(zhí)行一次連接測試,例如執(zhí)行一個簡單的 SQL 查詢或預(yù)定義的驗證語句,只有通過測試的連接才會被分配給應(yīng)用使用。啟用此功能可以有效防止因提供給應(yīng)用的連接已損壞而導(dǎo)致的運行時錯誤,提高應(yīng)用程序的健壯性。但同時,這也會增加每次獲取連接時的額外延遲,因為需要執(zhí)行驗證操作,尤其在高并發(fā)場景下,可能會對性能產(chǎn)生一定影響。
- druid.testOnReturn:歸還連接時是否測試連接。該參數(shù)用于指定當(dāng)應(yīng)用程序使用完數(shù)據(jù)庫連接并將其歸還到連接池時,是否對其進行連接有效性檢查。若設(shè)置為 true,每次連接歸還到連接池時,連接池都會執(zhí)行一次驗證,以確定該連接的健康狀況。此參數(shù)的主要作用是確保有問題的連接不會被錯誤地放回連接池,避免再次分配出去導(dǎo)致應(yīng)用層的數(shù)據(jù)庫操作失敗。通過及時發(fā)現(xiàn)并處理使用過程中可能變得不穩(wěn)定的連接,可維護連接池的整體健康狀態(tài)。不過,執(zhí)行該測試同樣會帶來一定的性能開銷,特別是在連接頻繁獲取和釋放的場景下。因此,是否啟用該參數(shù)應(yīng)根據(jù)實際應(yīng)用場景的需求和性能考量來決定,對于對數(shù)據(jù)庫連接即時可靠性要求嚴(yán)格的系統(tǒng),該參數(shù)可能更為適用。
過濾器相關(guān)參數(shù)
- druid.filters:啟用的過濾器,例如監(jiān)控(StatFilter)和 SQL 防火墻(WallFilter)等。該參數(shù)是 Druid 數(shù)據(jù)庫連接池配置中用于指定啟用哪些過濾器的部分。這些過濾器作為插件,能夠增強連接池的功能,實現(xiàn)性能監(jiān)控、日志記錄、安全防護等多種功能。通過合理配置不同的過濾器組合,可以優(yōu)化連接池管理和數(shù)據(jù)庫訪問,提升系統(tǒng)的安全性和問題診斷能力,提高系統(tǒng)運維效率。
統(tǒng)計相關(guān)參數(shù)
- druid.stat.sql.maxSize:記錄 SQL 最大長度,是 Druid 連接池中的一個配置項。它用于限制記錄到統(tǒng)計信息中的 SQL 語句的最大長度。當(dāng) SQL 語句的長度超過此配置值時,Druid 的統(tǒng)計模塊將不會完整記錄該 SQL 語句,可能會進行截斷或不記錄,以避免占用過多內(nèi)存資源。在處理大量長 SQL 或復(fù)雜查詢的應(yīng)用場景中,合理配置該參數(shù)有助于在保持數(shù)據(jù)庫訪問統(tǒng)計信息的同時,有效管理內(nèi)存使用,平衡統(tǒng)計需求與系統(tǒng)資源的合理利用。
- druid.stat.mergeSql:是否合并相同 SQL 的統(tǒng)計。當(dāng)設(shè)置為 true 時,Druid 會自動識別并合并具有相同結(jié)構(gòu)(忽略參數(shù)值差異)的 SQL 語句統(tǒng)計信息,這對于存在大量參數(shù)化查詢的應(yīng)用非常實用。這樣做可以減少統(tǒng)計條目的數(shù)量,使監(jiān)控界面和統(tǒng)計報告更加簡潔清晰,同時降低內(nèi)存消耗。若設(shè)置為 false,Druid 會分別統(tǒng)計每個帶有不同參數(shù)的 SQL 變體。該配置有助于優(yōu)化統(tǒng)計分析的效率和易讀性。
SQL 防火墻相關(guān)參數(shù)
- druid.wall.filter.config.file:WallFilter 的配置文件路徑,是 Druid 連接池中關(guān)于 SQL 防火墻(Wall Filter)的一個配置項。它用于指定 SQL 防火墻配置文件的位置,允許用戶通過外部 XML 或 properties 文件來自定義 SQL 防火墻的行為,詳細設(shè)定哪些 SQL 操作應(yīng)該被允許或禁止,例如是否允許刪除操作、修改表結(jié)構(gòu)等,從而增強數(shù)據(jù)庫的安全防護能力。當(dāng)設(shè)置該參數(shù)后,Druid 的 Wall Filter 會在初始化時加載指定文件中的配置規(guī)則,執(zhí)行更細致的 SQL 安全策略檢查,如阻止?jié)撛诘?SQL 注入攻擊、限制危險的 SQL 操作等。通過外部配置文件,管理員可以靈活調(diào)整安全策略,而無需直接修改代碼或連接池的基本配置,提高了系統(tǒng)的可維護性和安全性。
連接遺棄相關(guān)參數(shù)
- druid.logAbandoned:是否記錄被遺棄的連接,是 Druid 數(shù)據(jù)庫連接池的一個配置屬性。當(dāng)設(shè)置為 true 時,如果應(yīng)用程序未能正確關(guān)閉數(shù)據(jù)庫連接,導(dǎo)致連接在超時后被連接池回收,Druid 會將這些未正常關(guān)閉的連接信息記錄到日志中。這有助于開發(fā)者發(fā)現(xiàn)并修復(fù)程序中存在的未關(guān)閉連接的資源泄露問題,避免潛在的連接池耗盡風(fēng)險和性能下降,增強對連接使用情況的監(jiān)控和問題排查能力。
- druid.removeAbandoned:是否自動回收超時連接,用于指示是否自動移除被應(yīng)用程序遺棄的數(shù)據(jù)庫連接。當(dāng)設(shè)置為 true 時,Druid 連接池會定期檢查是否存在超時且未被正確關(guān)閉的連接(即應(yīng)用程序打開后未關(guān)閉的連接),并將這些遺棄的連接從連接池中移除。這一機制可有效防止因程序疏忽未關(guān)閉連接而導(dǎo)致的連接泄漏,避免連接池資源耗盡,保障數(shù)據(jù)庫訪問的穩(wěn)定性和系統(tǒng)整體性能。合理配置該參數(shù)有助于有效管理數(shù)據(jù)庫資源。
- druid.removeAbandonedTimeout:超時時間,單位為秒。該參數(shù)用于設(shè)置識別和移除遺棄連接的超時時間閾值。當(dāng) druid.removeAbandoned 設(shè)置為 true 時,Druid 會監(jiān)控連接的使用情況。若某個連接被 Checkout(從連接池取出)后,空閑時間超過了該參數(shù)指定的時長,且未被歸還到連接池,Druid 會認定該連接被遺棄,并依據(jù)此配置自動移除它。該設(shè)置有助于及時回收不再使用的連接資源,防止資源泄露,確保連接池的高效運行和系統(tǒng)的穩(wěn)定性。
監(jiān)控界面相關(guān)參數(shù)
- druid.stat-view-servlet.enabled=true:啟用 Druid 連接池的監(jiān)控 Servlet 功能。當(dāng)設(shè)置為 true 后,可通過 Web 界面查看 Druid 提供的數(shù)據(jù)庫連接池統(tǒng)計信息,包括活躍連接數(shù)、線程池狀態(tài)、SQL 執(zhí)行情況等,這對于監(jiān)控和診斷應(yīng)用的數(shù)據(jù)庫訪問性能非常有幫助。設(shè)置該參數(shù)后,還需根據(jù)其他相關(guān)配置(如 URL 路徑、登錄憑證等)來訪問 Druid 的監(jiān)控頁面。
- druid.stat-view-servlet.url-pattern=/druid/*:該配置項指定了 Druid 監(jiān)控界面的訪問 URL 路徑模式。通過訪問應(yīng)用中以 /druid 開頭的任何 URL,均可進入 Druid 提供的數(shù)據(jù)庫連接池統(tǒng)計信息界面。例如,可通過http://yourdomain.com/druid或類似地址查看監(jiān)控數(shù)據(jù)。此設(shè)置便于控制和訪問 Druid 的監(jiān)控功能,同時與應(yīng)用其他部分的路徑區(qū)分開來。
- druid.stat-view-servlet.login-username=admin:監(jiān)控界面的登錄用戶名。
- druid.stat-view-servlet.login-password=pwd:監(jiān)控界面的登錄密碼。
- druid.stat-view-servlet.allow=127.0.0.1,192.168.1.0/24:該配置項用于指定允許訪問 Druid 監(jiān)控界面的 IP 地址或 IP 地址段。通過設(shè)置該參數(shù),可限制只有列表中的 IP 地址才能訪問 Druid 提供的數(shù)據(jù)庫連接池統(tǒng)計信息,增強安全性。若未設(shè)置或為空,理論上默認允許所有 IP 訪問(具體行為可能因 Druid 的默認安全策略而異)。正確的設(shè)置方式是填寫具體的 IP 或 IP 范圍,如 druid.stat-view-servlet.allow=192.168.1.0/24,10.0.0.5,這樣只有來自這些 IP 的請求才能成功訪問監(jiān)控頁面。
- druid.stat-view-servlet.deny=0.0.0.0/0:表示拒絕所有 IP 地址訪問 Druid 的監(jiān)控界面。其中 0.0.0.0/0 是一個通配符,代表所有 IPv4 地址。設(shè)置此配置后,任何來源的 IP 地址都無法通過網(wǎng)絡(luò)訪問 Druid 提供的數(shù)據(jù)庫連接池統(tǒng)計信息頁面,這是一種非常嚴(yán)格的訪問控制策略,通常用于徹底關(guān)閉公網(wǎng)或不希望任何外部訪問的環(huán)境中的監(jiān)控接口。需注意,若同時配置了 allow 和 deny,通常 deny 規(guī)則優(yōu)先執(zhí)行。
- druid.stat-view-servlet.reset-enable=false:該配置項表示禁用 Druid 監(jiān)控界面中的 “Reset All” 功能。默認情況下,該功能通常是啟用的,允許用戶通過 Web 界面手動重置所有的統(tǒng)計信息。但當(dāng)將 reset-enable 設(shè)置為 false 時,監(jiān)控界面將不再顯示重置按鈕,從而有效防止因誤操作導(dǎo)致寶貴的監(jiān)控數(shù)據(jù)被清空,這對于需要保留歷史統(tǒng)計信息以便分析的場景尤為重要。
根據(jù)業(yè)務(wù)實際情況合理配置 Druid 數(shù)據(jù)庫連接池參數(shù),能夠顯著提升應(yīng)用的數(shù)據(jù)庫訪問性能和穩(wěn)定性。開發(fā)者應(yīng)依據(jù)實際業(yè)務(wù)需求和系統(tǒng)資源狀況,對上述參數(shù)進行細致調(diào)整,以實現(xiàn)最佳效果。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之隊列(動力節(jié)點Java學(xué)院整理)
隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。 這篇文章詳細給大家介紹了java數(shù)據(jù)結(jié)構(gòu)之隊列,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2017-04-04
windows如何使用bat腳本后臺啟動/停止和重啟jar包服務(wù)
這篇文章主要介紹了windows使用bat腳本后臺啟動/停止和重啟jar包服務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
BeanUtils.copyProperties()屬性名相同但是類型不同問題
這篇文章主要介紹了BeanUtils.copyProperties()屬性名相同但是類型不同問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09
SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決
這篇文章主要介紹了SpringBoot2基于重復(fù)創(chuàng)建bean的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
IntelliJ IDEA 構(gòu)建maven多模塊工程項目(詳細多圖)
這篇文章主要介紹了IntelliJ IDEA 構(gòu)建maven多模塊工程項目(詳細多圖),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
SpringBoot接口防抖(防重復(fù)提交)的實現(xiàn)方法
SpringBoot接口防抖主要通過前端和后端兩種方式實現(xiàn),前端通過JavaScript控制用戶操作,后端通過攔截器、過濾器等機制控制請求頻率,文中介紹的非常詳細,感興趣的可以了解一下2024-11-11

