我用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中某个类的服务,那谁先启动都会有问题啊。
怎么回事?