我经常使用Spring Boot我的演示中的框架。最新的也没什么不同。它展示了如何实现命令查询职责分离使用两种不同的代码路径:
- 命令部分通过以下方式实现春季数据JPA
- 查询部分通过jOOQ
我的用例是一个银行应用程序,它提供了一个REST层,允许客户调用任何部分。演示查询部分很容易curl由于URL并不复杂:
curl localhost:8080/balance/123 // 1
- 查询账户余额123
另一方面,创建一个新的操作,例如信用要求将数据传递给curl。虽然这样做是可行的,但有效载荷的结构本身存在复杂,因为它是JSON的一部分。因此,使用它是有风险的curl在现场观众面前演示指挥部分。我倾向于避免不必要的风险,所以我考虑了一些替代方案。
我的第一个想法是提前准备命令,在演示过程中进行复制粘贴。我想做几个不同的手术,所以我必须:
- 要么准备一个命令,粘贴它并在运行它之前更改它
- 或者准备所有不同的命令
对我来说,两者都太尴尬了。
另一个选择是创建另一个@SpringBootApplication同一项目中带注释的类:
@SpringBootApplication
public class GeneratorApplication {
@Bean
public CommandLineRunner run() {
var template = new RestTemplate();
return args -> {
var operation = generateRandomOperati