This is an automated email from the ASF dual-hosted git repository. iluo pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new a3fa315 update quick start doc a3fa315 is described below commit a3fa315e023488c7fa7b5c0147f15fa90012d731 Author: beiwei30 <ian....@gmail.com> AuthorDate: Wed Sep 5 15:46:40 2018 +0800 update quick start doc --- build/blog.js | 6 +++--- build/blogDetail.js | 6 +++--- build/community.js | 6 +++--- build/documentation.js | 6 +++--- build/home.js | 6 +++--- docs/en-us/user/quick-start.md | 5 ++--- docs/zh-cn/user/quick-start.md | 2 +- en-us/docs/user/quick-start.html | 7 +++---- en-us/docs/user/quick-start.json | 2 +- zh-cn/docs/user/quick-start.html | 4 ++-- zh-cn/docs/user/quick-start.json | 2 +- 11 files changed, 25 insertions(+), 27 deletions(-) diff --git a/build/blog.js b/build/blog.js index bd221da..9fa054f 100644 --- a/build/blog.js +++ b/build/blog.js @@ -1,6 +1,6 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=77) [...] - Copyright (c) 2017 Jed Watson. +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...] + Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var u in r)i.call(r,u)&&r[u]&&e.push(u)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...] \ No newline at end of file +!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function r(e,t,r){var o=r.configurable,u= [...] \ No newline at end of file diff --git a/build/blogDetail.js b/build/blogDetail.js index 445dc5f..9c0acfe 100644 --- a/build/blogDetail.js +++ b/build/blogDetail.js @@ -1,6 +1,6 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=78) [...] - Copyright (c) 2017 Jed Watson. +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=80) [...] + Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var u in r)i.call(r,u)&&r[u]&&e.push(u)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...] \ No newline at end of file +!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function r(e,t,r){var o=r.configurable,u= [...] \ No newline at end of file diff --git a/build/community.js b/build/community.js index 0045cda..f490e67 100644 --- a/build/community.js +++ b/build/community.js @@ -1,6 +1,6 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=79) [...] - Copyright (c) 2017 Jed Watson. +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=81) [...] + Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var l in r)i.call(r,l)&&r[l]&&e.push(l)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...] \ No newline at end of file +!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function r(e,t,r){var o=r.configurable,l= [...] \ No newline at end of file diff --git a/build/documentation.js b/build/documentation.js index 0d0f07a..05be6d5 100644 --- a/build/documentation.js +++ b/build/documentation.js @@ -1,6 +1,6 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=80) [...] - Copyright (c) 2017 Jed Watson. +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=82) [...] + Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var l=n.apply(null,r);l&&e.push(l)}else if("object"===o)for(var a in r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...] \ No newline at end of file +!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var l in r)i.call(r,l)&&r[l]&&e.push(l)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function r(e,t,r){var o=r.configurable,a= [...] \ No newline at end of file diff --git a/build/home.js b/build/home.js index 2d2fa1c..2834a1f 100644 --- a/build/home.js +++ b/build/home.js @@ -1,6 +1,6 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=81) [...] - Copyright (c) 2017 Jed Watson. +!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/build/",t(t.s=83) [...] + Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)&&r.length){var a=n.apply(null,r);a&&e.push(a)}else if("object"===o)for(var u in r)i.call(r,u)&&r[u]&&e.push(u)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?(n.default=n,e.exports=n):(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";funct [...] \ No newline at end of file +!function(){"use strict";function n(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r))e.push(n.apply(null,r));else if("object"===o)for(var a in r)i.call(r,a)&&r[a]&&e.push(a)}}return e.join(" ")}var i={}.hasOwnProperty;void 0!==e&&e.exports?e.exports=n:(r=[],void 0!==(o=function(){return n}.apply(t,r))&&(e.exports=o))}()},function(e,t,n){"use strict";function r(e,t,r){var o=r.configurable,u= [...] \ No newline at end of file diff --git a/docs/en-us/user/quick-start.md b/docs/en-us/user/quick-start.md index 6025dea..1c0fd7e 100644 --- a/docs/en-us/user/quick-start.md +++ b/docs/en-us/user/quick-start.md @@ -1,10 +1,9 @@ # Quick start -The most common way to configure Dubbo is to use Spring. -If you don't want to use the Spring configuration, you can try using [API configuration](./configuration/api.md). +The most common way to use Dubbo is to run it in Spring framework. The following content will guide you to develop a Dubbo application with Spring framework's [XML configuration](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html). -The following content will guide you to start dubbo using Spring configuration. +If you don't want to rely on Spring, you can try using [API configuration](./configuration/api.md). First let's create a root directory called dubbo-demo: diff --git a/docs/zh-cn/user/quick-start.md b/docs/zh-cn/user/quick-start.md index 3bb484b..03370e9 100644 --- a/docs/zh-cn/user/quick-start.md +++ b/docs/zh-cn/user/quick-start.md @@ -1,7 +1,7 @@ # 快速启动 -Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 扩展进行加载。 +Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 [Spring 的 Schema 扩展](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html) 进行加载。 如果不想使用 Spring 配置,可以通过 [API 的方式](./configuration/api.md) 进行调用。 diff --git a/en-us/docs/user/quick-start.html b/en-us/docs/user/quick-start.html index 3b6df81..0679d6c 100644 --- a/en-us/docs/user/quick-start.html +++ b/en-us/docs/user/quick-start.html @@ -12,10 +12,9 @@ <link rel="stylesheet" href="/build/documentation.css" /> </head> <body> - <div id="root"><div class="documentation-page" data-reactroot="" data-reactid="1" data-react-checksum="278659617"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/en-us/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">中</span><div class="header-menu" data-reactid="7"><img class="header-menu-to [...] -<p>The most common way to configure Dubbo is to use Spring. -If you don't want to use the Spring configuration, you can try using <a href="./configuration/api.md">API configuration</a>.</p> -<p>The following content will guide you to start dubbo using Spring configuration.</p> + <div id="root"><div class="documentation-page" data-reactroot="" data-reactid="1" data-react-checksum="-1558039792"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/en-us/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">中</span><div class="header-menu" data-reactid="7"><img class="header-menu- [...] +<p>The most common way to use Dubbo is to run it in Spring framework. The following content will guide you to develop a Dubbo application with Spring framework's <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">XML configuration</a>.</p> +<p>If you don't want to rely on Spring, you can try using <a href="./configuration/api.md">API configuration</a>.</p> <p>First let's create a root directory called dubbo-demo:</p> <pre><code>mkdir dubbo-demo cd dubbo-demo diff --git a/en-us/docs/user/quick-start.json b/en-us/docs/user/quick-start.json index dc6cbaa..d5e84e9 100644 --- a/en-us/docs/user/quick-start.json +++ b/en-us/docs/user/quick-start.json @@ -1,4 +1,4 @@ { "filename": "quick-start.md", - "__html": "<h1>Quick start</h1>\n<p>The most common way to configure Dubbo is to use Spring.\nIf you don't want to use the Spring configuration, you can try using <a href=\"./configuration/api.md\">API configuration</a>.</p>\n<p>The following content will guide you to start dubbo using Spring configuration.</p>\n<p>First let's create a root directory called dubbo-demo:</p>\n<pre><code>mkdir dubbo-demo\ncd dubbo-demo\n</code></pre>\n<p>Next, we are going to create 3 sub-directories unde [...] + "__html": "<h1>Quick start</h1>\n<p>The most common way to use Dubbo is to run it in Spring framework. The following content will guide you to develop a Dubbo application with Spring framework's <a href=\"https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html\">XML configuration</a>.</p>\n<p>If you don't want to rely on Spring, you can try using <a href=\"./configuration/api.md\">API configuration</a>.</p>\n<p>First let's create a root directory [...] } \ No newline at end of file diff --git a/zh-cn/docs/user/quick-start.html b/zh-cn/docs/user/quick-start.html index ef0d978..5457791 100644 --- a/zh-cn/docs/user/quick-start.html +++ b/zh-cn/docs/user/quick-start.html @@ -12,8 +12,8 @@ <link rel="stylesheet" href="/build/documentation.css" /> </head> <body> - <div id="root"><div class="documentation-page" data-reactroot="" data-reactid="1" data-react-checksum="-1993487352"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/zh-cn/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">En</span><div class="header-menu" data-reactid="7"><img class="header-menu [...] -<p>Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 扩展进行加载。</p> + <div id="root"><div class="documentation-page" data-reactroot="" data-reactid="1" data-react-checksum="-248908780"><header class="header-container header-container-normal" data-reactid="2"><div class="header-body" data-reactid="3"><a href="/zh-cn/index.html" data-reactid="4"><img class="logo" src="/img/dubbo_colorful.png" data-reactid="5"/></a><span class="language-switch language-switch-normal" data-reactid="6">En</span><div class="header-menu" data-reactid="7"><img class="header-menu- [...] +<p>Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">Spring 的 Schema 扩展</a> 进行加载。</p> <p>如果不想使用 Spring 配置,可以通过 <a href="./configuration/api.md">API 的方式</a> 进行调用。</p> <h2>服务提供者</h2> <p>完整安装步骤,请参见:<a href="../admin/install/provider-demo.md">示例提供者安装</a></p> diff --git a/zh-cn/docs/user/quick-start.json b/zh-cn/docs/user/quick-start.json index 4b4806b..ccd6890 100644 --- a/zh-cn/docs/user/quick-start.json +++ b/zh-cn/docs/user/quick-start.json @@ -1,4 +1,4 @@ { "filename": "quick-start.md", - "__html": "<h1>快速启动</h1>\n<p>Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 扩展进行加载。</p>\n<p>如果不想使用 Spring 配置,可以通过 <a href=\"./configuration/api.md\">API 的方式</a> 进行调用。</p>\n<h2>服务提供者</h2>\n<p>完整安装步骤,请参见:<a href=\"../admin/install/provider-demo.md\">示例提供者安装</a></p>\n<h3>定义服务接口</h3>\n<p>DemoService.java <sup class=\"footnote-ref\"><a href=\"#fn1\" id=\"fnref1\">[1]</a></sup>:</p>\n<pre><code class=\"language-java\"><span class=\"hljs-keywor [...] + "__html": "<h1>快速启动</h1>\n<p>Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 <a href=\"https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html\">Spring 的 Schema 扩展</a> 进行加载。</p>\n<p>如果不想使用 Spring 配置,可以通过 <a href=\"./configuration/api.md\">API 的方式</a> 进行调用。</p>\n<h2>服务提供者</h2>\n<p>完整安装步骤,请参见:<a href=\"../admin/install/provider-demo.md\">示例提供者安装</a></p>\n<h3>定义服务接口</h3>\n<p>DemoService.java <sup class=\"footnote-ref\ [...] } \ No newline at end of file