第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實現(xiàn) cli 應(yīng)用程序的適當方法,該應(yīng)用程序也使用 Micronaut 的服務(wù)配置文件

實現(xiàn) cli 應(yīng)用程序的適當方法,該應(yīng)用程序也使用 Micronaut 的服務(wù)配置文件

蝴蝶刀刀 2023-06-14 11:13:47
我在創(chuàng)建 REST 服務(wù)器或 Picocli CLI 應(yīng)用程序時沒有問題。但是,如果我想在一個應(yīng)用程序中同時擁有這兩者怎么辦?問題是,我想要一個通過 REST 服務(wù)器提供一些業(yè)務(wù)邏輯的應(yīng)用程序(這沒問題),但在其他一些情況下,我想通過 CLI 觸發(fā)業(yè)務(wù)邏輯而不啟動 HTTP 服務(wù)器(例如,對于 CI/CD ).我不確定如果我通過啟動應(yīng)用程序 PicocliRunner.run(Application.class, args)并且是否給出了特定參數(shù)運行服務(wù)器是否會遇到問題Micronaut.run(Application.class);,因為它們創(chuàng)建了不同的上下文。有誰知道實現(xiàn)這一目標的正確方法?這就是我解決它的方法:import io.micronaut.configuration.picocli.PicocliRunner;import io.micronaut.runtime.Micronaut;import picocli.CommandLine.Command;import picocli.CommandLine.Parameters;@Command(        name = "RestAndCliExample",        description = "...",        mixinStandardHelpOptions = true)public class Application implements Runnable {    private enum Mode {serve, run}    @Parameters(index = "0", description = "Execution mode: ${COMPLETION-CANDIDATES}")    private Mode mode;    public static void main(String[] args) throws Exception {        args = new String[]{"run"};        PicocliRunner.run(Application.class, args);    }    public void run() {        if (Mode.serve.equals(mode)) {            // Start REST API            Micronaut.run(Application.class);        } else {            // TODO run code directly        }    }}
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

實現(xiàn)此目的的一種方法是@Inject進入ApplicationContext您的@Command-annotated 類。這允許您的命令使用相同的應(yīng)用程序上下文,而不是需要啟動一個單獨的應(yīng)用程序上下文。

然后,在您的方法中,您可以通過從應(yīng)用程序上下文run獲取并調(diào)用它來啟動 REST 服務(wù)器,或者您可以在沒有 REST 服務(wù)器的情況下直接執(zhí)行該功能。EmbeddedServerstart

查看完整回答
反對 回復(fù) 2023-06-14
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號