Dubbo Spi

1、当前 person 2中存在对应的 Adapitve 标注的方法,就会拿到该 person2 的一个代理对象。
当调用对应的代理的方法时,就会获取对应得url 中的参数去进行调用
Person2 adaptiveExtension = extensionLoader.getAdaptiveExtension();
URL url = new URL("x", "localhost", 8080);
url = url.addParameter("person2", "two");
adaptiveExtension.test(url);

2、Person 对象中存在一个 属性为其余的 Spi的扩展接口类,并且存在对应的 Adapitve 方法就会生成一个对应的代理对像返回
ExtensionLoader extensionLoader = ExtensionLoader.getExtensionLoader(Person.class);
Person person = extensionLoader.getExtension("black"); // BlackPerson
URL url = new URL("x", "localhost", 8080);
url = url.addParameter("car", "black");
System.out.println(person.getCar().getCarName(url)); // 代理逻辑

你可能感兴趣的:(javadubbo)