万物皆要实例化

站在架构师的角度,任何注入的对象都要实例化。

Consider defining a bean of type 'com.xxx.xxx.xxxx.xxxx.service.data.IDataAuthService' in your configuration.

大家应该都遇到过如上错误吧:需实例化对象的错误
刚学习Spring时,以为在对象上加注入标签@Autowired即可,其实这些注入对象也是要实例化的,真正的实例化是在其对应实现类上加标签@Service,
在这里插入图片描述
在这里插入图片描述
如果其对应实现类上无@Service即报如上错误。
当发现该实现类上已经加了标签@Service,则要查看启动类@ComponentScan(basePackages = {“xxx”,“yyy” })或者@EnableFeignClients(basePackages = “com.xxxx.service.thirdParty.xxxx”)中是否设置所在包的扫描路径或者设置的扫描路径错误;
在这里插入图片描述
再附加一种情况,微服务A模块要调用微服务B模块的对象
为了独立性,每个微服务我们都分成api模块(定义对象或者接口),service模块(对象实例化),模块之间只在pom.xml中引用api模块,当微服务A模块要调用微服务B模块的对象时,无法获取微服务B中service模块对对象的实例化,就会报如上错误。
在这里插入图片描述
在这里插入图片描述解决方案:在微服务A的service模块也实例微服务B的对象。微服务A的service模块增加对应对象的初始化类XXXXXConfiguration在代码运行期初始化对象。
在这里插入图片描述
其中ConsumerDataAuthService就是普通的声明式调用@FeignClient
在这里插入图片描述
其对应微服务B模块要写出对应的生产者模块
在这里插入图片描述

最近刚开始接触架构师的工作,初有感悟:
万物皆要实例化;
架构师和开发人员的思考层面果然不一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值