一、搭建测试环境
1 将对消费者方法的调用语句注释掉,使消费者暂时不调用消费者方法
public class ConsumerRun {
public static void main(String[] args) {
ApplicationContext ac =
new ClassPathXmlApplicationContext("spring-consumer.xml");
SomeService service = (SomeService) ac.getBean("someService");
// String hello = service.hello("China");
// System.out.println(hello);
}
}
2 运行测试
3 修改配置文件
4 再次运行
正常
二、分析
默认情况下,若服务消费者先于服务提供者启动,则消费者端会报错。因为默认情况下 消费者会在启动时查检其要消费的服务的提供者是否已经注册,若未注册则抛出异常。可以 在消费者端的 spring 配置文件中添加 check=”false”属性,则可关闭服务检查功能
只要注意启动顺序,该属性看似可以不使用。但在循环消费场景下是必须要使用的。即 A 消费 B 服务,B 消费 C 服务,而 C 消费 A 服务。这是典型的循环消费。在该场景下必须至 少有一方要关闭服务检查功能,否则将无法启动任何一方。
本文地址:https://blog.csdn.net/xyajia/article/details/107677754
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论