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

写作

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

如果使用目标终端节点,即不需要的 consumer 返回任何给定的CommandContext包含对Terminal和 Writer 都可以从那里访问。spring-doc.cadn.net.cn

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

如果使用@Command您可以访问CommandContext并获取Terminal从那里开始。spring-doc.cadn.net.cn

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

可以自动装配Terminal以访问其编写器。spring-doc.cadn.net.cn

@Autowired
Terminal terminal;

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

APP信息