在完成黑马微服务作业拆分的过程中遇到了不少的坑,总结我们解决策略:
一. 拆分用户微服务模块
配置类未被Spring扫描到
【解决措施】
- 在JwtProperties配置类中添加 @Component注解,注册成组件
- 或者在启动类中添加@EnableConfigurationProperties(JwtProperties.class)注解
- 虽然Spring Boot通常会自动扫描并注册带有
@ConfigurationProperties
注解的类,但如果您在一个非标准的包中放置了JwtProperties
,或者由于某种原因Spring Boot没有自动检测到它,您可能需要在配置类上显式启用它。
- 虽然Spring Boot通常会自动扫描并注册带有
二、拆分交易微服务模块
导类准则问题——冲突则以顶层api模块为准
我们基本上所有涉及到跨微服务的模块都会继承 hm-api模块。但是会出现这样一种问题:交易模块中导入了一个DTO对象,同时这个对象也被hm-api中相关的方法所导入了。这就导致冲突产生。具体的看下面的描述:
【在交易微服务模块中】
引入了OrderDetaDTO相关类
在实现类中导包导的是本微服务模块下的包
在实现类中,调用mybatisplus相关方法,到这里还没问题
注意了,此时OrderDetaDTO还是本包下的类。
现在调用api模块提供的client接口,同样需要传入detailDTOS对象
报错了,原因是类型不匹配了。itemClient接口需要的类实在api模块下的。
【解决方法】
所以如果跨服务请求中遇到这种冲突的情况,调用者微服务模块就把这个类删掉,让api类来安排就行了。