未找到命令
默认情况下,缺少的命令通过CommandNotFoundResultHandler
并输出一条简单的消息:
shell:>missing
No command found for 'missing'
内部CommandNotFoundResultHandler
正在使用CommandNotFoundMessageProvider
这是一个简单的函数,它采用ProviderContext
并返回文本
消息。下面是自定义消息提供程序的示例。
class CustomProvider implements CommandNotFoundMessageProvider {
@Override
public String apply(ProviderContext context) {
// parsed commands without options
List<String> commands = context.commands();
// actual error, usually CommandNotFound exception
Throwable error = context.error();
// access to registrations at this time
Map<String, CommandRegistration> registrations = context.registrations();
// raw text input from a user
String text = context.text();
return "My custom message";
}
}
可以通过将其定义为 bean 来更改此实现。
@Bean
CommandNotFoundMessageProvider provider1() {
return new CustomProvider();
}
CommandNotFoundResultHandler
是一个功能接口,因此它可以
作为 lambda 编写。
@Bean
CommandNotFoundMessageProvider provider2() {
return ctx -> "My custom message";
}