此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3! |
写作
当需要将某些内容写入您的控制台时,您始终可以
使用 JDK 的System.out
然后直接进入 JDK 自己的流中。
其他推荐的方法是使用 JLine 的Terminal
并从那里获取 Writer 实例。
如果使用目标终端节点,即不需要的 consumer
返回任何给定的CommandContext
包含对Terminal
和 Writer 都可以从那里访问。
CommandRegistration.builder()
.command("example")
.withTarget()
.consumer(ctx -> {
ctx.getTerminal().writer().println("hi");
ctx.getTerminal().writer().flush();
})
.and()
.build();
如果使用@Command
您可以访问CommandContext
并获取Terminal
从那里开始。
@Command
public void example(CommandContext ctx) {
ctx.getTerminal().writer().println("hi");
ctx.getTerminal().writer().flush();
}
可以自动装配Terminal
以访问其编写器。
@Autowired
Terminal terminal;
@ShellMethod
public void example() {
terminal.writer().println("hi");
terminal.writer().flush();
}