如何在spring-boot中使用ApplicationArguments

时间:2016-08-06 08:48:16

标签: spring-boot

我正在学习Spring-Boot(我是新手),阅读Spring Boot Document。在 23.6访问应用程序参数中,它讨论 ApplicationArguments ,代码为:

package com.example.project;

import org.springframework.boot.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;

import java.util.*;

@Component
public class MyBean {
  @Autowired
  public MyBean(ApplicationArguments args) {
    boolean debug = args.containsOption("debug");
    List<String> files = args.getNonOptionArgs();
    System.out.println(debug);
    System.out.println(files);
  }
}

它表示如果使用&#34; - debug logfile.txt&#34; debug = true,files = [&#34; logfile.txt&#34;]。

但在我的项目中,我不知道如何运行它。我使用Maven创建了spring-boot:Project Structure the

3 个答案:

答案 0 :(得分:3)

在Spring Boot中,文档ApplicationArguments在bean中自动装配。这是一个更实际的例子,它在Main方法中使用。

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application implements ApplicationRunner {

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

    @Override
    public void run(ApplicationArguments args) throws Exception {
        boolean debug = args.containsOption("debug");
        List<String> files = args.getNonOptionArgs();
        System.out.println(debug);
        System.out.println(files);
    }
}

答案 1 :(得分:1)

一句话,比如一千: IDE 字段中以 -- 为前缀的“程序参数”与“ApplicationArguments”中预期的“Option”名称相同。

因此您可以匹配 --debug 和 "args.containsOption("debug")"。

答案 2 :(得分:0)

假设您有一个带有注解@SpringBootApplication的Application类,就像a.b.d提供的答案中一样。

要在IntelliJ IDEA环境中提供参数,您需要首先运行main方法,然后编辑“ Run / Debug Configurations”,并在Main Class填充程序参数字段下使用“ --debug logfile.txt”:

enter image description here

相关问题