Apache?Commons?CLI構(gòu)建命令行應(yīng)用利器教程
Apache Commons CLI
本文聊聊如何用Apache Commons CLI構(gòu)建命令行應(yīng)用。咱們都知道,命令行界面(CLI)雖然看起來(lái)不如圖形界面那么花哨,但在許多場(chǎng)景下,它的效率和便利性是無(wú)與倫比的。特別是對(duì)于服務(wù)器應(yīng)用、小工具或者快速原型開(kāi)發(fā),CLI常常是我們的首選。但是,搞定一堆命令行參數(shù)可不是件容易的事,特別是當(dāng)參數(shù)多起來(lái)的時(shí)候。這時(shí)候,Apache Commons CLI就派上用場(chǎng)了!
Apache Commons CLI庫(kù)為Java應(yīng)用提供了一個(gè)簡(jiǎn)單而強(qiáng)大的框架,用來(lái)解析命令行參數(shù)。它不僅能幫咱們節(jié)省編碼時(shí)間,還能讓程序看起來(lái)更專(zhuān)業(yè)。想象一下,一個(gè)帶有幫助信息、格式校驗(yàn)和參數(shù)解析的命令行工具,是不是讓人感覺(jué)就像是大公司出品的呢?下面,小黑就帶大家一起深入探索Apache Commons CLI的世界,看看它是如何成為構(gòu)建命令行應(yīng)用的利器的。
概覽
咱們來(lái)聊聊什么是Apache Commons CLI。這個(gè)庫(kù),其實(shí)是一系列用于解析命令行參數(shù)的類(lèi)的集合。你知道,命令行參數(shù)是程序運(yùn)行時(shí)通過(guò)命令行傳入的信息,比如咱們經(jīng)常用的 -v
來(lái)顯示版本信息,或者 -help
來(lái)獲取幫助信息。Apache Commons CLI就是用來(lái)處理這些參數(shù)的。
為什么要選擇Apache Commons CLI呢?首先,它非常靈活,可以處理各種復(fù)雜的命令行參數(shù)格式。其次,它還支持生成幫助信息,這對(duì)于用戶(hù)來(lái)說(shuō)非常友好。此外,它的使用簡(jiǎn)單,可以快速集成到現(xiàn)有的Java應(yīng)用中。這些特性讓Apache Commons CLI成為了處理命令行參數(shù)的不二之選。
接下來(lái),讓咱們來(lái)看看Apache Commons CLI的核心功能:
- 定義命令行選項(xiàng):可以輕松定義各種類(lèi)型的命令行參數(shù),包括簡(jiǎn)單的開(kāi)關(guān)、帶有值的參數(shù)等。
- 命令行參數(shù)解析:提供了強(qiáng)大的解析器,用于解析用戶(hù)輸入的命令行參數(shù)。
- 生成幫助信息:可以自動(dòng)生成格式良好的幫助信息,提高用戶(hù)體驗(yàn)。
好了,基本概念咱們聊完了,下面小黑就用代碼來(lái)展示一下Apache Commons CLI的威力。別擔(dān)心,代碼會(huì)寫(xiě)得很詳細(xì),注釋也會(huì)放在適當(dāng)?shù)牡胤?,確保大家都能跟上。
import org.apache.commons.cli.*; public class CommandLineApp { public static void main(String[] args) { // 創(chuàng)建Options對(duì)象,用于定義命令行參數(shù) Options options = new Options(); // 定義一個(gè)簡(jiǎn)單的參數(shù) -v 或 --version,用來(lái)顯示版本信息 Option version = new Option("v", "version", false, "顯示版本信息"); options.addOption(version); // 定義一個(gè)帶有參數(shù)值的選項(xiàng) -c 或 --config,用于指定配置文件路徑 Option config = new Option("c", "config", true, "配置文件路徑"); options.addOption(config); // 創(chuàng)建命令行解析器 CommandLineParser parser = new DefaultParser(); try { // 解析命令行參數(shù) CommandLine cmd = parser.parse(options, args); // 檢查是否有版本參數(shù) if (cmd.hasOption("version")) { System.out.println("版本 1.0"); } // 檢查是否指定了配置文件 if (cmd.hasOption("config")) { System.out.println("使用配置文件:" + cmd.getOptionValue("config")); } } catch (ParseException e) { System.out.println(e.getMessage()); new HelpFormatter().printHelp("工具名稱(chēng)", options); } } }
在這個(gè)示例中,小黑定義了兩個(gè)命令行參數(shù):一個(gè)是 -v
(或 --version
),用來(lái)顯示版本信息;另一個(gè)是 -c
(或 --config
),后面跟著一個(gè)值,用來(lái)指定配置文件的路徑。然后,創(chuàng)建了一個(gè)命令行解析器來(lái)解析這些參數(shù)。如果用戶(hù)輸入的參數(shù)有誤,程序會(huì)顯示錯(cuò)誤信息,并打印出幫助信息。
使用與設(shè)置
接下來(lái),小黑要和咱們聊聊如何安裝和設(shè)置Apache Commons CLI。使用這玩意兒其實(shí)一點(diǎn)都不難,但咱們還是得一步一步來(lái),確保一切順利。
咱們需要確保Java環(huán)境已經(jīng)配置好了。畢竟,Apache Commons CLI是Java的庫(kù),沒(méi)有Java環(huán)境就用不了。然后,就是添加Apache Commons CLI庫(kù)到咱們的項(xiàng)目中。這里有幾種方式,但最常用的還是通過(guò)Maven或Gradle這樣的構(gòu)建工具來(lái)管理依賴(lài)。
使用Maven添加依賴(lài)
如果咱們的項(xiàng)目是用Maven構(gòu)建的,那添加Apache Commons CLI就像加點(diǎn)調(diào)料一樣簡(jiǎn)單。只需在項(xiàng)目的pom.xml
文件中添加以下依賴(lài):
<dependencies> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.4</version> <!-- 這里使用最新可用版本 --> </dependency> </dependencies>
使用Gradle添加依賴(lài)
如果咱們用的是Gradle,那也不復(fù)雜。只需要在build.gradle
文件中添加類(lèi)似的依賴(lài):
dependencies { implementation 'commons-cli:commons-cli:1.4' // 同樣,使用最新版本 }
手動(dòng)添加JAR
如果咱們不用構(gòu)建工具,也可以直接下載Apache Commons CLI的jar文件,然后加入到項(xiàng)目的類(lèi)路徑中。這種方式比較原始,但有時(shí)候在某些特定環(huán)境下可能還是需要的。
好了,依賴(lài)搞定之后,咱們就可以開(kāi)始使用Apache Commons CLI了。下面,小黑就用一個(gè)簡(jiǎn)單的例子來(lái)展示如何在Java項(xiàng)目中使用Apache Commons CLI。
import org.apache.commons.cli.*; public class MyApp { public static void main(String[] args) { // 定義命令行參數(shù) Options options = new Options(); Option input = new Option("i", "input", true, "輸入文件路徑"); input.setRequired(true); // 設(shè)置為必需參數(shù) options.addOption(input); // 解析命令行參數(shù) CommandLineParser parser = new DefaultParser(); HelpFormatter formatter = new HelpFormatter(); CommandLine cmd; try { cmd = parser.parse(options, args); String inputFile = cmd.getOptionValue("input"); System.out.println("輸入文件為: " + inputFile); } catch (ParseException e) { System.out.println(e.getMessage()); formatter.printHelp("MyApp", options); // 打印幫助信息 System.exit(1); } } }
在這個(gè)例子中,小黑定義了一個(gè)命令行參數(shù)-i
或--input
,用來(lái)指定一個(gè)輸入文件的路徑。這個(gè)參數(shù)是必須的,如果用戶(hù)沒(méi)提供,程序就會(huì)顯示錯(cuò)誤信息,并打印幫助信息。
通過(guò)這個(gè)簡(jiǎn)單的例子,咱們可以看到Apache Commons CLI是如何工作的。它不僅能幫咱們解析命令行參數(shù),還能在必要的時(shí)候提供幫助信息,讓用戶(hù)更容易使用咱們的程序。
核心概念與使用
定義命令行選項(xiàng)(Options)
在Apache Commons CLI中,一切都圍繞著Options
類(lèi)展開(kāi)。這個(gè)類(lèi)用來(lái)定義咱們的命令行參數(shù)。每個(gè)Option
對(duì)象都代表一個(gè)參數(shù)。我們可以定義參數(shù)的短名稱(chēng)、長(zhǎng)名稱(chēng)、描述,甚至指定是否需要附加值。
例如,假設(shè)小黑要開(kāi)發(fā)一個(gè)簡(jiǎn)單的文件處理工具,這個(gè)工具需要接收輸入文件路徑和一個(gè)可選的輸出文件路徑。下面的代碼展示了如何定義這些命令行選項(xiàng):
Options options = new Options(); Option input = new Option("i", "input", true, "輸入文件路徑"); input.setRequired(true); // 這是一個(gè)必需的選項(xiàng) options.addOption(input); Option output = new Option("o", "output", true, "輸出文件路徑"); output.setRequired(false); // 這是一個(gè)可選的選項(xiàng) options.addOption(output);
解析命令行(CommandLineParser)
定義好命令行選項(xiàng)后,下一步是解析用戶(hù)輸入的命令行參數(shù)。Apache Commons CLI提供了CommandLineParser
類(lèi)來(lái)處理這項(xiàng)任務(wù)。咱們可以使用它來(lái)解析參數(shù),并根據(jù)需要進(jìn)行處理。
小黑接著上面的例子,來(lái)展示如何解析命令行參數(shù):
CommandLineParser parser = new DefaultParser(); try { CommandLine cmd = parser.parse(options, args); if (cmd.hasOption("input")) { System.out.println("輸入文件: " + cmd.getOptionValue("input")); } if (cmd.hasOption("output")) { System.out.println("輸出文件: " + cmd.getOptionValue("output")); } } catch (ParseException e) { System.out.println("解析命令行出錯(cuò): " + e.getMessage()); new HelpFormatter().printHelp("文件處理工具", options); System.exit(1); }
在這段代碼中,我們創(chuàng)建了一個(gè)DefaultParser
對(duì)象來(lái)解析命令行參數(shù)。如果解析過(guò)程中發(fā)生錯(cuò)誤,程序會(huì)捕獲ParseException
異常,打印錯(cuò)誤信息,然后顯示幫助信息。
幫助信息(HelpFormatter)
Apache Commons CLI允許咱們生成幫助信息。這是通過(guò)HelpFormatter
類(lèi)實(shí)現(xiàn)的。這個(gè)功能對(duì)于提高用戶(hù)體驗(yàn)非常有用,尤其是當(dāng)用戶(hù)不清楚如何使用咱們的命令行工具時(shí)。
讓我們?cè)俅慰纯葱『诘奈募幚砉ぞ呤纠?,?lái)看看如何生成幫助信息:
HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("文件處理工具", options);
如果用戶(hù)輸入了錯(cuò)誤的命令行參數(shù),或者他們需要獲取更多信息時(shí),咱們可以使用這段代碼來(lái)顯示一個(gè)格式良好的幫助信息。
通過(guò)以上的介紹和代碼示例,咱們可以看出,Apache Commons CLI的強(qiáng)大之處在于它簡(jiǎn)化了命令行參數(shù)的處理過(guò)程。無(wú)論是定義命令行選項(xiàng)、解析參數(shù),還是生成幫助信息,這個(gè)庫(kù)都能讓這些任務(wù)變得既簡(jiǎn)單又直觀。
到這里,咱們已經(jīng)掌握了使用Apache Commons CLI的基本知識(shí)。接下來(lái),小黑會(huì)帶大家一起看看一些更實(shí)際的應(yīng)用案例,這樣咱們就能更好地理解如何在真實(shí)世界中使用這個(gè)強(qiáng)大的工具了。讓我們繼續(xù)前進(jìn)吧!
實(shí)際案例分析
創(chuàng)建一個(gè)簡(jiǎn)單的命令行應(yīng)用
首先,咱們來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的命令行應(yīng)用。假設(shè)這個(gè)應(yīng)用是一個(gè)文件分析器,它接受一個(gè)文件路徑作為輸入,并提供一些分析選項(xiàng),比如統(tǒng)計(jì)文件行數(shù)或者單詞數(shù)。
import org.apache.commons.cli.*; public class FileAnalyzer { public static void main(String[] args) { Options options = new Options(); Option input = new Option("i", "input", true, "輸入文件路徑"); input.setRequired(true); options.addOption(input); Option countLines = new Option("l", "lines", false, "統(tǒng)計(jì)行數(shù)"); Option countWords = new Option("w", "words", false, "統(tǒng)計(jì)單詞數(shù)"); options.addOption(countLines); options.addOption(countWords); CommandLineParser parser = new DefaultParser(); HelpFormatter formatter = new HelpFormatter(); CommandLine cmd; try { cmd = parser.parse(options, args); String inputFile = cmd.getOptionValue("input"); if (cmd.hasOption("lines")) { // 這里添加統(tǒng)計(jì)行數(shù)的邏輯 System.out.println("統(tǒng)計(jì)行數(shù)功能被選中"); } if (cmd.hasOption("words")) { // 這里添加統(tǒng)計(jì)單詞數(shù)的邏輯 System.out.println("統(tǒng)計(jì)單詞數(shù)功能被選中"); } System.out.println("輸入文件: " + inputFile); } catch (ParseException e) { System.out.println(e.getMessage()); formatter.printHelp("文件分析器", options); System.exit(1); } } }
在這個(gè)例子中,咱們定義了三個(gè)命令行選項(xiàng):一個(gè)是必需的輸入文件路徑,另外兩個(gè)是可選的統(tǒng)計(jì)行數(shù)和單詞數(shù)功能。程序會(huì)根據(jù)用戶(hù)輸入的選項(xiàng)執(zhí)行相應(yīng)的邏輯。
高級(jí)功能應(yīng)用
接下來(lái),讓我們看看一些更高級(jí)的功能。假設(shè)咱們想讓用戶(hù)能夠指定一些額外的配置,比如輸出格式。Apache Commons CLI允許咱們定義帶有多個(gè)值的選項(xiàng)。
Option outputFormat = Option.builder("f") .longOpt("format") .hasArgs() .desc("輸出格式,支持的格式有:csv, json") .build(); options.addOption(outputFormat);
在這段代碼中,我們定義了一個(gè)名為-f
或--format
的選項(xiàng),它可以接受多個(gè)值,比如csv
和json
。這樣用戶(hù)就可以指定一個(gè)或多個(gè)輸出格式。
if (cmd.hasOption("format")) { String[] formats = cmd.getOptionValues("format"); System.out.println("選擇的輸出格式:"); for (String format : formats) { System.out.println(format); } }
通過(guò)這種方式,咱們可以讓命令行工具更加靈活和強(qiáng)大。用戶(hù)可以根據(jù)需要選擇多種輸出格式,而咱們的程序能夠相應(yīng)地處理這些輸入。
最佳實(shí)踐
代碼組織
讓咱們談?wù)劥a組織。在使用Apache Commons CLI時(shí),一個(gè)清晰的代碼結(jié)構(gòu)非常重要。這不僅有助于理解和維護(hù)代碼,還能讓后來(lái)者更容易上手。
public class CommandLineTool { private Options buildOptions() { Options options = new Options(); // 定義命令行選項(xiàng) options.addOption(Option.builder("i") .longOpt("input") .hasArg() .desc("輸入文件路徑") .required() .build()); // 可以添加更多的選項(xiàng) return options; } private void parseArguments(String[] args) { CommandLineParser parser = new DefaultParser(); try { CommandLine cmd = parser.parse(buildOptions(), args); // 根據(jù)cmd執(zhí)行不同的邏輯 } catch (ParseException e) { System.out.println("錯(cuò)誤: " + e.getMessage()); new HelpFormatter().printHelp("命令行工具", buildOptions()); } } public static void main(String[] args) { new CommandLineTool().parseArguments(args); } }
在這個(gè)例子中,小黑將創(chuàng)建選項(xiàng)和解析邏輯分開(kāi),這樣代碼更加模塊化,也易于管理。將創(chuàng)建選項(xiàng)的代碼放在一個(gè)單獨(dú)的方法中可以提高代碼的可讀性和可維護(hù)性。
錯(cuò)誤處理
對(duì)于命令行工具來(lái)說(shuō),優(yōu)雅的錯(cuò)誤處理是非常重要的。如果用戶(hù)輸入了無(wú)效的命令或參數(shù),咱們應(yīng)該提供清晰的錯(cuò)誤信息,以及如何正確使用工具的提示。
在上面的代碼示例中,如果解析命令行參數(shù)時(shí)發(fā)生錯(cuò)誤,ParseException
會(huì)被捕獲,并顯示錯(cuò)誤信息。此外,還會(huì)打印出工具的使用幫助。這種方式對(duì)用戶(hù)友好,能幫助他們快速了解如何正確使用工具。
靈活運(yùn)用Apache Commons CLI
Apache Commons CLI提供了許多高級(jí)特性,比如支持多種類(lèi)型的參數(shù)(布爾型、字符串型等),以及能夠處理多個(gè)值的選項(xiàng)。咱們可以根據(jù)具體需求靈活運(yùn)用這些特性。
例如,如果命令行工具需要處理復(fù)雜的參數(shù)組合或依賴(lài)關(guān)系,咱們可以通過(guò)編程邏輯來(lái)實(shí)現(xiàn)這些需求。Apache Commons CLI為此提供了強(qiáng)大的支持,但需要咱們仔細(xì)設(shè)計(jì)命令行參數(shù)的邏輯。
常見(jiàn)問(wèn)題與解決方案
問(wèn)題1:參數(shù)依賴(lài)性和互斥性
在實(shí)際開(kāi)發(fā)中,咱們可能遇到一些命令行參數(shù)之間具有依賴(lài)性或互斥性的情況。例如,某個(gè)參數(shù)只有在另一個(gè)參數(shù)存在時(shí)才有效,或者兩個(gè)參數(shù)不能同時(shí)使用。
解決方案:Apache Commons CLI本身不直接支持聲明參數(shù)的依賴(lài)性或互斥性,但咱們可以通過(guò)編程邏輯來(lái)實(shí)現(xiàn)這一點(diǎn)。
CommandLine cmd = parser.parse(options, args); if (cmd.hasOption("A") && cmd.hasOption("B")) { System.out.println("錯(cuò)誤:參數(shù)A和參數(shù)B不能同時(shí)使用。"); System.exit(1); } if (cmd.hasOption("C") && !cmd.hasOption("D")) { System.out.println("錯(cuò)誤:使用參數(shù)C時(shí),必須同時(shí)指定參數(shù)D。"); System.exit(1); }
問(wèn)題2:處理未知參數(shù)
有時(shí)候,用戶(hù)可能會(huì)輸入一些未定義的參數(shù),這可能導(dǎo)致解析器拋出異常。
解決方案:可以使用DefaultParser
的一個(gè)特性,允許未知參數(shù)的存在。這樣,解析器在遇到未定義的參數(shù)時(shí)不會(huì)拋出異常。
CommandLineParser parser = new DefaultParser(); CommandLine cmd = parser.parse(options, args, true); // 啟用未知參數(shù)的處理
問(wèn)題3:復(fù)雜參數(shù)的處理
對(duì)于一些復(fù)雜的參數(shù),比如需要接收多個(gè)值或特定格式的值,傳統(tǒng)的命令行參數(shù)處理可能變得復(fù)雜。
解決方案:對(duì)于接收多個(gè)值的參數(shù),可以使用Option
類(lèi)的hasArgs()
方法。而對(duì)于需要特定格式的值,可以在代碼中進(jìn)行額外的驗(yàn)證。
Option complexOption = Option.builder("c") .hasArgs() .desc("接受多個(gè)值的復(fù)雜參數(shù)") .build(); options.addOption(complexOption); // 在解析后驗(yàn)證參數(shù)值 String[] values = cmd.getOptionValues("c"); for (String value : values) { // 對(duì)值進(jìn)行格式驗(yàn)證 }
問(wèn)題4:生成動(dòng)態(tài)幫助信息
在有些情況下,咱們希望根據(jù)不同的情況生成不同的幫助信息。
解決方案:可以通過(guò)編程邏輯動(dòng)態(tài)構(gòu)建Options
對(duì)象,然后使用HelpFormatter
生成幫助信息。
HelpFormatter formatter = new HelpFormatter(); if (特定條件) { Options dynamicOptions = new Options(); // 添加特定條件下的選項(xiàng) formatter.printHelp("工具名", dynamicOptions); } else { formatter.printHelp("工具名", options); }
總結(jié)
Apache Commons CLI作為一個(gè)強(qiáng)大的Java庫(kù),它在處理命令行參數(shù)方面提供了巨大的便利。從基本的參數(shù)解析到復(fù)雜的參數(shù)處理,從錯(cuò)誤管理到生成幫助信息,Apache Commons CLI都展示了其出色的靈活性和功能性。通過(guò)今天的學(xué)習(xí),咱們可以看到,無(wú)論是對(duì)于初學(xué)者還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,掌握這個(gè)庫(kù)都是非常有價(jià)值的。
回顧重點(diǎn)
- 命令行參數(shù)的定義與解析:咱們學(xué)習(xí)了如何定義各種類(lèi)型的命令行參數(shù),并使用Apache Commons CLI的解析器來(lái)解析這些參數(shù)。
- 高級(jí)特性的應(yīng)用:包括處理多值參數(shù)、自定義幫助信息等,這些高級(jí)功能可以使咱們的命令行工具更加強(qiáng)大。
- 錯(cuò)誤處理與用戶(hù)幫助:咱們了解了如何優(yōu)雅地處理錯(cuò)誤和為用戶(hù)提供有用的幫助信息。
- 最佳實(shí)踐:從代碼結(jié)構(gòu)到異常處理,咱們探討了在使用Apache Commons CLI時(shí)的一些最佳實(shí)踐。
- 解決常見(jiàn)問(wèn)題:對(duì)于在使用過(guò)程中可能遇到的一些常見(jiàn)問(wèn)題,咱們提供了實(shí)用的解決方案。
通過(guò)這個(gè)博客,咱們不僅學(xué)習(xí)了Apache Commons CLI的基本用法,還探討了如何在真實(shí)場(chǎng)景中有效地應(yīng)用這些知識(shí)。記住,無(wú)論是在個(gè)人項(xiàng)目還是在工作中,掌握如何處理命令行參數(shù)都是一個(gè)非常有價(jià)值的技能。
最后,希望大家在實(shí)際應(yīng)用中能夠靈活運(yùn)用今天學(xué)到的內(nèi)容,創(chuàng)建出更加強(qiáng)大、易用的命令行工具。如果在使用過(guò)程中遇到任何問(wèn)題,不要忘了回顧今天的內(nèi)容,或者尋找Apache Commons CLI的官方文檔和社區(qū)支持。
以上就是Apache Commons CLI構(gòu)建命令行應(yīng)用利器教程的詳細(xì)內(nèi)容,更多關(guān)于Apache Commons CLI構(gòu)建命令行的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Mybatis-Plus自動(dòng)生成代碼的實(shí)現(xiàn)示例
在工作中,程序員很多時(shí)候都是在寫(xiě)類(lèi)似的代碼,可以使用自動(dòng)生成代碼,本文主要介紹了Mybatis-Plus自動(dòng)生成代碼的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11mybatis plus 自動(dòng)轉(zhuǎn)駝峰配置小結(jié)
SpringBoot提供兩種配置Mybatis的方式,第一種是通過(guò)yml或application.properties文件開(kāi)啟配置,第二種是使用自定義配置類(lèi),通過(guò)給容器添加一個(gè)ConfigurationCustomizer來(lái)實(shí)現(xiàn)更靈活的配置,這兩種方法可以根據(jù)項(xiàng)目需求和個(gè)人喜好選擇使用2024-10-10java數(shù)組算法例題代碼詳解(冒泡排序,選擇排序,找最大值、最小值,添加、刪除元素等)
這篇文章主要介紹了java數(shù)組算法例題代碼詳解(冒泡排序,選擇排序,找最大值、最小值,添加、刪除元素等),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05詳解SpringBoot下文件上傳與下載的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot下文件上傳與下載的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05SpringCloud中的Stream服務(wù)間消息傳遞詳解
這篇文章主要介紹了SpringCloud中的Stream服務(wù)間消息傳遞詳解,Stream 就是在消息隊(duì)列的基礎(chǔ)上,對(duì)其進(jìn)行封裝,可以是我們更方便的去使用,Stream應(yīng)用由第三方的中間件組成,應(yīng)用間的通信通過(guò)輸入通道和輸出通道完成,需要的朋友可以參考下2024-01-01APP轉(zhuǎn)盤(pán)抽獎(jiǎng)Java服務(wù)端接口詳解
這篇文章主要為大家詳細(xì)介紹了APP轉(zhuǎn)盤(pán)抽獎(jiǎng)Java服務(wù)端接口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01java實(shí)現(xiàn)大數(shù)加法(BigDecimal)的實(shí)例代碼
之前寫(xiě)過(guò)用vector、string實(shí)現(xiàn)大數(shù)加法,現(xiàn)在用java的BigDecimal類(lèi),代碼簡(jiǎn)單很多。但是在online-judge上,java的代碼運(yùn)行時(shí)間和內(nèi)存大得多2013-10-10SpringBoot整合Redis實(shí)現(xiàn)token緩存
于token通常會(huì)被多次使用,我們需要把它保存到緩存中,以減少頻繁地訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),本文主要介紹了SpringBoot整合Redis實(shí)現(xiàn)token緩存,感興趣的可以了解一下2024-02-02