This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new 8cf6111 Automated deployment: Tue Jan 7 07:58:50 UTC 2020 221e2dc75d5650b315bf2b195708e2c4db1c1390 8cf6111 is described below commit 8cf6111e92573b91f015e66651a0ef487edacda6 Author: lovepoem <lovep...@users.noreply.github.com> AuthorDate: Tue Jan 7 07:58:51 2020 +0000 Automated deployment: Tue Jan 7 07:58:50 UTC 2020 221e2dc75d5650b315bf2b195708e2c4db1c1390 --- zh-cn/docs/source_code_guide/adaptive-extension.html | 2 +- zh-cn/docs/source_code_guide/adaptive-extension.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/docs/source_code_guide/adaptive-extension.html b/zh-cn/docs/source_code_guide/adaptive-extension.html index 76906d2..f8c2113 100644 --- a/zh-cn/docs/source_code_guide/adaptive-extension.html +++ b/zh-cn/docs/source_code_guide/adaptive-extension.html @@ -36,7 +36,7 @@ .getExtensionLoader(WheelMaker<span class="hljs-class">.<span class="hljs-keyword">class</span>).<span class="hljs-title">getExtension</span>(<span class="hljs-title">wheelMakerName</span>)</span>; <span class="hljs-comment">// 3.调用目标方法</span> - <span class="hljs-keyword">return</span> wheelMaker.makeWheel(URL url); + <span class="hljs-keyword">return</span> wheelMaker.makeWheel(url); } } </code></pre> diff --git a/zh-cn/docs/source_code_guide/adaptive-extension.json b/zh-cn/docs/source_code_guide/adaptive-extension.json index bd72f6c..71f3a68 100644 --- a/zh-cn/docs/source_code_guide/adaptive-extension.json +++ b/zh-cn/docs/source_code_guide/adaptive-extension.json @@ -1,6 +1,6 @@ { "filename": "adaptive-extension.md", - "__html": "<h2>1.原理</h2>\n<p>在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并不想在框架启动阶段被加载,而是希望在拓展方法被调用时,根据运行时参数进行加载。这听起来有些矛盾。拓展未被加载,那么拓展方法就无法被调用(静态方法除外)。拓展方法未被调用,拓展就无法被加载。对于这个矛盾的问题,Dubbo 通过自适应拓展机制很好的解决了。自适应拓展机制的实现逻辑比较复杂,首先 Dubbo 会为拓展接口生成具有代理功能的代码。然后通过 javassist 或 jdk 编译这段代码,得到 Class 类。最后再通过反射创建代理类,整个过程比较复杂。为了让大家对自适应拓展有一个感性的认识,下面我们通过一个示例进行演示。这是一个与汽车相关的例子,我们有一个车轮制造厂接口 WheelMaker:</p>\n<p re><code class=\"language-java\"><span class=\"hljs-keyword\">public</span> < [...] + "__html": "<h2>1.原理</h2>\n<p>在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并不想在框架启动阶段被加载,而是希望在拓展方法被调用时,根据运行时参数进行加载。这听起来有些矛盾。拓展未被加载,那么拓展方法就无法被调用(静态方法除外)。拓展方法未被调用,拓展就无法被加载。对于这个矛盾的问题,Dubbo 通过自适应拓展机制很好的解决了。自适应拓展机制的实现逻辑比较复杂,首先 Dubbo 会为拓展接口生成具有代理功能的代码。然后通过 javassist 或 jdk 编译这段代码,得到 Class 类。最后再通过反射创建代理类,整个过程比较复杂。为了让大家对自适应拓展有一个感性的认识,下面我们通过一个示例进行演示。这是一个与汽车相关的例子,我们有一个车轮制造厂接口 WheelMaker:</p>\n<p re><code class=\"language-java\"><span class=\"hljs-keyword\">public</span> < [...] "link": "/zh-cn/docs/source_code_guide/adaptive-extension.html", "meta": { "title": "SPI 自适应拓展",