作者回复: 这个应该和编译器环境因素相关,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的转换。 课程第六章《服务测试设计和实践》,有解释分层和对象分类。
作者回复: 课程做了简化仅支持英文。实际可以根据需要支持多语言,只要client端能够传递语言代码(或国家代码),server端就可以根据语言代码给出面向特定语言的消息。
作者回复: 非常不错的源码分析,这样学习课程的收获会更大。后面会出一个规模较大的电商中台项目,基于Spring + GraphQL + Angular技术技术栈,请继续关注波波的后续课程。
作者回复: lombok插件在IDE里头装了码?