Dubbo+SpringBoot整合: 依赖注入Null Pointer Exception的问题
我用Dubbo+SpringBoot搭建微服务
controller和service分别属于两个服务
里面分别有如下类
@RestController
@RequestMapping("product")
public class ProductController{
@Reference(version="1.0.0")
ProductService productService;
@GetMapping("create")
public String createProduct(){
return productService.createProduct();
}
}
@Component
@Service(version = "1.0.0")
public class ProductServiceImpl implements ProductService {
@Override
public String createProduct(){
return "created";
}
}
我发现如果我先启动service服务,后启动controller服务,运行OK
但是如果我先启动controller服务,后启动service服务,productService就是null,出现Null Pointer Exception
我的理解是:因为service后启动,所以controller中的productService依赖注入时找不到实例,注入失败。
但是这样的话,那假如有两个service微服务,A和B,A中的某个类需要B中某个类的服务,而B中某个类又需要A中某个类的服务,那谁先启动都会有问题啊。
怎么回事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
spring mvc注解和 dubbo注解配置在两个不同的context导致的
比较简单的解决办法是不要在controller里使用dubbo注解
dubbo=2.6.1
服务提供方
亲测是可以的,当然除了上面的如果有漏掉的,就不一定了。