如何使用自定义参数正确创建 Spring Cloud Task?

How to properly create Spring Cloud Task with custom parameters?

根据示例here(实际上是时间戳任务),我实现了一个小任务class:

@SpringBootApplication
@EnableTask
@EnableConfigurationProperties({ RestProcessorTaskProperties.class })
public class RestProcessorTaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(RestProcessorTaskApplication.class, args);
    }

    @Autowired
    private RestProcessorTaskProperties config;

    // some fields and beans

    @Bean
    public CommandLineRunner run(RestTemplate restTemplate) {
        return args -> {
            // doing some stuff
        };
    }
}

然后我创建了属性 class(在同一个包中)

@ConfigurationProperties("RestProcessor")
public class RestProcessorTaskProperties {
    private String host = "http://myhost:port";

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }
}

但是在我的本地 Spring 云数据服务器上注册任务后,我看到许多参数,我想这些参数是自动添加的。我的意思是像这样的参数:

abandon-when-percentage-full            java.lang.Integer       
abandoned-usage-tracking                java.lang.Boolean       
acceptors                               java.lang.Integer       
access-to-underlying-connection-allowed java.lang.Boolean

和其他人...

是否有可能以某种方式隐藏(或删除)它们,以便在启动任务时我只能配置那些由我添加的参数(单个 host 属性 在我上面的例子中)?

默认情况下Spring Cloud Data Flow 将向您显示启动应用程序的所有可用属性。但是,您可以创建一个您希望显示的属性的白名单。
这是 Spring 云数据流参考文档的 link,将讨论如何执行此操作:http://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#spring-cloud-dataflow-stream-app-whitelisting

这里是 link 时间戳入门应用程序,其中有一个例子:https://github.com/spring-cloud/spring-cloud-task-app-starters/tree/master/spring-cloud-starter-task-timestamp