此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Shell 3.3.3spring-doc.cn

写作

当需要将某些内容写入您的控制台时,您始终可以 使用 JDK,然后直接进入 JDK 自己的流。 其他推荐的方法是使用 JLine 并从那里获取 writer 实例。System.outTerminalspring-doc.cn

如果使用目标终端节点,即不需要的 consumer 要返回任何内容,可以从那里访问给定的包含引用和 writer。CommandContextTerminalspring-doc.cn

CommandRegistration.builder()
	.command("example")
	.withTarget()
		.consumer(ctx -> {
			ctx.getTerminal().writer().println("hi");
			ctx.getTerminal().writer().flush();
		})
		.and()
	.build();

如果使用,您可以访问并从那里获得。@CommandCommandContextTerminalspring-doc.cn

@Command
public void example(CommandContext ctx) {
	ctx.getTerminal().writer().println("hi");
	ctx.getTerminal().writer().flush();
}

可以通过 autowire 来访问它的 writer。Terminalspring-doc.cn

@Autowired
Terminal terminal;

@ShellMethod
public void example() {
	terminal.writer().println("hi");
	terminal.writer().flush();
}