用 SpringBoot 實現(xiàn)一個命令行應用

前言

前面我們介紹的 SpringBoot 都是在將如何實現(xiàn)一個獨立運行的 web 應用。不過在實際應用場景中卢鹦,很多時候我們也需要使用獨立運行的程序來實現(xiàn)一些任務。那么在 SpringBoot 中如何來實現(xiàn)這樣一個命令行模式的應用呢绳锅。其實也很簡單飒焦,只要讓 SpringBoot 的啟動類實現(xiàn)一個 org.springframework.boot.CommandLineRunner 接口就可以了那槽。

操作步驟

首先按照標準的方式在 IDEA 中建立一個標準的 springboot 的工程悼沿。在這個 SpringBoot 工程的啟動類上實現(xiàn) org.springframework.boot.CommandLineRunner 接口的 run 方法即可。如下所示

package com.yanggaochao.demo;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CommandDemoApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(SpiderDemoApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("sldkjfslkdjf");
    }
}

這樣的 SpringBoot 的執(zhí)行方式就不再是一個獨立運行的 web 的方式骚灸,而是一個命令行的方式糟趾。那么他和非 SpringBoot 命令行方式的不同在哪里呢?主要是他能夠利用 SpringBoot 的其他所有功能。例如他可以自動裝配工程中的其他服務類义郑,并進行調(diào)用蝶柿。例如,我們有一個服務如下非驮。

package com.yanggaochao.demo;

import org.springframework.stereotype.Service;

/**
 * 服務樣例
 *
 * @author : 楊高超
 * @since : 2018-11-19
 */
@Service
public class HelloService {
    public String sayHello(String name) {
        return "Hello," + name;
    }
}

那么交汤,我們在 SpringBoot 的命令行程序中就可以調(diào)用他了。原來的啟動類代碼改變?yōu)?/p>

package com.yanggaochao.demo;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CommandDemoApplication implements CommandLineRunner {
    private final HelloService helloService;

    public CommandDemoApplication(HelloService helloService) {
        this.helloService = helloService;
    }

    public static void main(String[] args) {
        SpringApplication.run(SpiderDemoApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        if (args.length == 0) {
            System.out.println(helloService.sayHello(args[0]));
        } else {
            System.out.println(helloService.sayHello("nobody"));
        }
    }
}

這樣劫笙,我們?nèi)绻斎胍粋€參數(shù) “world” 的時候執(zhí)行這個命令行程序芙扎,則會輸出 “Hello,world” 。如果不輸入?yún)?shù)或者輸入不止一個參數(shù)邀摆,則會輸出 “Hello,nobody”

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纵顾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子栋盹,更是在濱河造成了極大的恐慌,老刑警劉巖敷矫,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件例获,死亡現(xiàn)場離奇詭異,居然都是意外死亡曹仗,警方通過查閱死者的電腦和手機榨汤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怎茫,“玉大人收壕,你說我怎么就攤上這事」旄颍” “怎么了蜜宪?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長祥山。 經(jīng)常有香客問我圃验,道長,這世上最難降的妖魔是什么缝呕? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任澳窑,我火速辦了婚禮,結(jié)果婚禮上供常,老公的妹妹穿的比我還像新娘摊聋。我一直安慰自己,他們只是感情好栈暇,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布麻裁。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悲立。 梳的紋絲不亂的頭發(fā)上鹿寨,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音薪夕,去河邊找鬼脚草。 笑死,一個胖子當著我的面吹牛原献,可吹牛的內(nèi)容都是我干的馏慨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姑隅,長吁一口氣:“原來是場噩夢啊……” “哼写隶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讲仰,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤慕趴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鄙陡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冕房,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年趁矾,在試婚紗的時候發(fā)現(xiàn)自己被綠了耙册。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡毫捣,死狀恐怖详拙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔓同,我是刑警寧澤饶辙,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站牌柄,受9級特大地震影響畸悬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜珊佣,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一蹋宦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咒锻,春花似錦冷冗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拇泛。三九已至,卻和暖如春思灌,著一層夾襖步出監(jiān)牢的瞬間俺叭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工泰偿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熄守,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓耗跛,卻偏偏與公主長得像裕照,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子调塌,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容