在阅读了Spring Boot文档中的远程shell之后,我开始玩它。我实现了一个新的Command
,它生成了一个名为company的数据库实体的Stream。
这很好用。所以我想在控制台中输出我的公司流。这是通过默认调用toString()
来完成的。虽然这种接缝合理,但还有一种方法可以通过使用渲染器获得更好的结果。
实施一个应该是直截了当的,因为我可以将大部分工作委托给其中一个已经存在的工作。我使用MapRenderer
。
class CompanyRenderer extends Renderer<Company> {
private final mapRenderer = new MapRenderer()
@Override Class<Company> getType() { Company }
@Override LineRenderer renderer(Iterator<Company> stream) {
def list = []
stream.forEachRemaining({
list.add([id: it.id, name: it.name])
})
return mapRenderer.renderer(list.iterator())
}
}
正如您所看到的,我只是从我的实体中取出一些字段,将它们放入Map
,然后委托给MapRenderer
的实例来完成实际工作。
唯一的问题是:如何将我的Renderer
注册到CRaSH?