国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spring boot學(xué)習(xí)(4): 命令行啟動(dòng)

Binguner / 1198人閱讀

摘要:在使用構(gòu)建應(yīng)用啟動(dòng)時(shí),我們?cè)诠ぷ髦卸际峭ㄟ^(guò)命令行來(lái)啟動(dòng)應(yīng)用,有時(shí)候會(huì)需要一些特定的參數(shù)以在應(yīng)用啟動(dòng)時(shí),做一些初始化的操作。

在使用spring boot 構(gòu)建應(yīng)用啟動(dòng)時(shí),我們?cè)诠ぷ髦卸际峭ㄟ^(guò)命令行來(lái)啟動(dòng)應(yīng)用,有時(shí)候會(huì)需要一些特定的參數(shù)以在應(yīng)用啟動(dòng)時(shí),做一些初始化的操作。

spring boot 提供了 CommandLineRunnerApplicationRunner 這兩個(gè)接口供用戶使用。

1. CommandLineRunner 1.1 聲明:
@FunctionalInterface
public interface CommandLineRunner {

    /**
     * Callback used to run the bean.
     * @param args incoming main method arguments
     * @throws Exception on error
     */
    void run(String... args) throws Exception;

}
1.2 使用:
package com.example.consoleapplication;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class TestRunner implements CommandLineRunner {

    @Override
    public void run(String... args) {
        // Do something...
        for(String arg: args){
            System.out.println(arg);
        }
        System.out.print("test command runner");
    }
}
1.3 運(yùn)行結(jié)果

運(yùn)行: java -jar build/libs/consoleapplication-0.0.1-SNAPSHOT.jar -sdfsaf sdfas,
結(jié)果如下:

2019-03-16 17:31:56.544  INFO 18679 --- [           main] c.e.consoleapplication.DemoApplication   : No active profile set, falling back to default profiles: default
2019-03-16 17:31:57.195  INFO 18679 --- [           main] c.e.consoleapplication.DemoApplication   : Started DemoApplication in 16.172 seconds (JVM running for 16.65)
-sdfsaf
sdfas
test command runner%
2. ApplicationRunner 2.1 聲明
/**
 * Interface used to indicate that a bean should run when it is contained within
 * a {@link SpringApplication}. Multiple {@link ApplicationRunner} beans can be defined
 * within the same application context and can be ordered using the {@link Ordered}
 * interface or {@link Order @Order} annotation.
 *
 * @author Phillip Webb
 * @since 1.3.0
 * @see CommandLineRunner
 */
@FunctionalInterface
public interface ApplicationRunner {

    /**
     * Callback used to run the bean.
     * @param args incoming application arguments
     * @throws Exception on error
     */
    void run(ApplicationArguments args) throws Exception;

}
2.2 使用

ApplicationRunnerCommandLineRunner 的使用是有差別的:

CommandLineRunner 的使用,只是把參數(shù)根據(jù)空格分割。

ApplicationRunner 會(huì)根據(jù) 是否匹配 --key=value 來(lái)解析參數(shù),

能匹配,則為 optional 參數(shù), 可用getOptionValues獲取參數(shù)值。

不匹配則是 non optional 參數(shù)。

package com.example.consoleapplication;

import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import org.springframework.boot.ApplicationArguments;

@Component
public class TestApplicationRunner implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {
        // Do something...
        System.out.println("option arg names" + args.getOptionNames());
        System.out.println("non option+" +  args.getNonOptionArgs());
    }
}
2.3 運(yùn)行結(jié)果

運(yùn)行命令 java -jar build/libs/consoleapplication-0.0.1-SNAPSHOT.jar -non1 non2 --option=1, 結(jié)果為:

2019-03-16 18:08:08.528  INFO 19778 --- [           main] c.e.consoleapplication.DemoApplication   : No active profile set, falling back to default profiles: default
2019-03-16 18:08:09.166  INFO 19778 --- [           main] c.e.consoleapplication.DemoApplication   : Started DemoApplication in 16.059 seconds (JVM running for 16.56)
test
option arg names[option]
non option+[-non1, non2]-non1
non2
--option=1
test%

可以看到, optional 參數(shù)名有 option, non optional 參數(shù)有 -non1non2

3. 小結(jié)

CommandLineRunnerApplicationRunner 都能實(shí)現(xiàn)命令行應(yīng)用啟動(dòng)時(shí)根據(jù)參數(shù)獲取我們需要的值,做特殊的邏輯。但兩者有所不同,推薦使用 ApplicationRunneroptional 參數(shù), 方便擴(kuò)展。

4. 參考文檔
https://docs.spring.io/spring...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/73738.html

相關(guān)文章

  • Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)

    摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...

    Donne 評(píng)論0 收藏0
  • Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)

    摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...

    rose 評(píng)論0 收藏0
  • Spring Boot 2 - 使用CommandLineRunner與ApplicationRun

    摘要:命令行參數(shù)傳遞之前我們說(shuō)過(guò)使用的一大優(yōu)勢(shì)就是可以將工程直接打包成一個(gè)包而不需要單獨(dú)部署。執(zhí)行獲取到參數(shù)執(zhí)行結(jié)果我們可以發(fā)現(xiàn),通過(guò)方法的參數(shù)可以很方便地獲取到命令行參數(shù)的值。如果需要獲取命令行參數(shù)時(shí)則建議使用。 本篇文章我們將探討CommandLineRunner和ApplicationRunner的使用。 在閱讀本篇文章之前,你可以新建一個(gè)工程,寫(xiě)一些關(guān)于本篇內(nèi)容代碼,這樣會(huì)加深你對(duì)本...

    alogy 評(píng)論0 收藏0
  • Spring-Boot學(xué)習(xí)筆記

    摘要:學(xué)習(xí)筆記使用很容易創(chuàng)建一個(gè)獨(dú)立運(yùn)行運(yùn)行內(nèi)嵌容器準(zhǔn)生產(chǎn)級(jí)別的基于框架的項(xiàng)目,使用你可以不用或者只需要很少的配置。異常消息如果這個(gè)錯(cuò)誤是由異常引起的。錯(cuò)誤發(fā)生時(shí)請(qǐng)求的路徑。 Spring-Boot 1.5 學(xué)習(xí)筆記 使用Spring Boot很容易創(chuàng)建一個(gè)獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)嵌Servlet容器)、準(zhǔn)生產(chǎn)級(jí)別的基于Spring框架的項(xiàng)目,使用Spring Boot你可以不用或者只需要很...

    curlyCheng 評(píng)論0 收藏0
  • Spring Boot 參考指南(安裝 Spring Boot

    摘要:安裝可以與經(jīng)典開(kāi)發(fā)工具一起使用,也可以作為命令行工具安裝。下面的示例展示了一個(gè)典型的文件安裝命令行接口是一個(gè)命令行工具,你可以使用它來(lái)快速地實(shí)現(xiàn)的原型。 10. 安裝Spring Boot Spring Boot可以與經(jīng)典Java開(kāi)發(fā)工具一起使用,也可以作為命令行工具安裝。無(wú)論哪種方式,都需要Java SDK v1.8或更高版本。在開(kāi)始之前,你應(yīng)該使用以下命令檢查當(dāng)前的Java安裝: ...

    Donald 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<