作者回复: 这个应该和编译器环境因素相关,javac编译的时候需要加参数-parameters,否则feign会找不到参数名而报错。其实在项目的父pom里头的maven-compiler-plugin里头已经加了<arg>-parameters</arg>,我这边编译测试没有问题,有些人会报你说的问题,估计这个参数没有启用,和环境有关。
你可以尝试在javac编译的时候加上参数-parameters。
参考:
https://stackoverflow.com/questions/31845676/how-to-compile-spring-boot-applications-with-java-8-parameter-flag
https://stackoverflow.com/questions/44313482/feign-client-with-spring-boot-requestparam-value-was-empty-on-parameter-0
作者回复: 作为一个微服务演示案例,为保持简单易于理解,我没有在项目中引入复杂的分层,也没有引入太多XXO之类的对象分类。
基本上就是三层+两类对象
1. 底层是数据访问Repository,操作的对象称为数据模型对象(DMO),是和持久化相关的对象。
2. 上层是Controller,有一些验证逻辑,几乎没有业务逻辑。Controller层的输入输出称为DTO(数据传输对象),因为这些对象是在网络上交互传输用的。注意request/response也是属于DTO范畴。
2. 中间有一个Service,相当于一个聚合层,有少量业务流程逻辑,上层和Controller交互,底层通过Repository操作数据库。Service层会做DTO和DMO的转换。
课程第六章《服务测试设计和实践》,有解释分层和对象分类。
作者回复: lombok插件在IDE里头装了码?