This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site-v2
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git


The following commit(s) were added to refs/heads/asf-site-v2 by this push:
     new 4764546e83b deploy: 935d791bcc526ddef8d24555669aac84a7c7f833
4764546e83b is described below

commit 4764546e83b818049a6bf42480d5c8755766222d
Author: baerwang <[email protected]>
AuthorDate: Sun Feb 4 06:22:07 2024 +0000

    deploy: 935d791bcc526ddef8d24555669aac84a7c7f833
---
 sitemap.xml                                        |  2 +-
 .../index.html"                                    |  8 ++------
 zh-cn/blog/java/codeanalysis/3.0.8/index.xml       | 22 +++++++++++++++++-----
 zh-cn/sitemap.xml                                  |  2 +-
 zh-cn/tags/java/index.xml                          | 22 +++++++++++++++++-----
 .../index.xml"                                     | 22 +++++++++++++++++-----
 6 files changed, 55 insertions(+), 23 deletions(-)

diff --git a/sitemap.xml b/sitemap.xml
index 23dfa041fa3..07319ce0857 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2024-02-04T09:59:42+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2024-02-01T17:47:34+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2024-02-04T14:17:35+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2024-02-01T17:47:34+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git 
"a/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\345\210\235\345\247\213\345\214\226\347\232\204/index.html"
 
"b/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\34
 [...]
index 07ad48a7e07..dc4ab9640c1 100644
--- 
"a/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\345\210\235\345\247\213\345\214\226\347\232\204/index.html"
+++ 
"b/zh-cn/blog/2022/08/02/02-\345\220\257\345\212\250\346\234\215\345\212\241\345\211\215\346\234\215\345\212\241\351\205\215\347\275\256serviceconfig\347\261\273\345\236\213\346\230\257\345\246\202\344\275\225\345\210\235\345\247\213\345\214\226\347\232\204/index.html"
@@ -1,5 +1,5 @@
 <!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=canonical 
href=https://dubbo.apache.org/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/><meta
 charset=utf-8><meta name=viewport 
content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta 
name=generator content="Hugo 0.122.0"><l [...]
-<meta property="og:description" content="Dubbo 源码解析之 ServiceConfig 
类型是如何初始化的?"><meta property="og:type" content="article"><meta property="og:url" 
content="https://dubbo.apache.org/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/";><meta
 property="article:section" content="blog"><meta 
property="article:published_time" content="2022-08-02T0 [...]
+<meta property="og:description" content="Dubbo 源码解析之 ServiceConfig 
类型是如何初始化的?"><meta property="og:type" content="article"><meta property="og:url" 
content="https://dubbo.apache.org/zh-cn/blog/2022/08/02/02-%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%89%8D%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AEserviceconfig%E7%B1%BB%E5%9E%8B%E6%98%AF%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84/";><meta
 property="article:section" content="blog"><meta 
property="article:published_time" content="2022-08-02T0 [...]
 <label for=m-zh-cnblognews-check><a href=/zh-cn/blog/news/ class="align-left 
pl-0 td-sidebar-link td-sidebar-link__section" 
id=m-zh-cnblognews><span>社区动态</span></a></label><ul class="ul-2 foldable"><li 
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" 
id=m-zh-cnblog20221201dubbo-java-314-e6ada3e5bc8fe58f91e5b883-li><input 
type=checkbox 
id=m-zh-cnblog20221201dubbo-java-314-e6ada3e5bc8fe58f91e5b883-check>
 <label for=m-zh-cnblog20221201dubbo-java-314-e6ada3e5bc8fe58f91e5b883-check><a 
href=/zh-cn/blog/2022/12/01/dubbo-java-3.1.4-%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/
 title="Dubbo Java 3.1.4 正式发布" class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" 
id=m-zh-cnblog20221201dubbo-java-314-e6ada3e5bc8fe58f91e5b883><span>dubbo-java 
3.1.4</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" 
id=m-zh-cnblog20221022e8819ae784a6e7a8b3e5ae9ae680 [...]
 <label 
for=m-zh-cnblog20221022e8819ae784a6e7a8b3e5ae9ae680a7dubbo-java-e58f91e78988e8a784e58892e585ace5b883-check><a
 
href=/zh-cn/blog/2022/10/22/%E8%81%9A%E7%84%A6%E7%A8%B3%E5%AE%9A%E6%80%A7dubbo-java-%E5%8F%91%E7%89%88%E8%A7%84%E5%88%92%E5%85%AC%E5%B8%83/
 title="聚焦稳定性,Dubbo Java 发版规划公布" class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" 
id=m-zh-cnblog20221022e8819ae784a6e7a8b3e5ae9ae680a7dubbo-java-e58f91e78988e8a784e58892e585ace5b883><span>Dubbo
 Java 发版规划</span></a></label>< [...]
@@ -220,11 +220,7 @@
 </span></span><span style=display:flex><span>}
 
</span></span></code></pre></div><p>上面这几行代码虽然看似简单,仅仅几行的启动,但是完全掌握也得下一翻大功夫,接下来我们重点看启动代码中的第一行,创建一个服务配置对象:</p><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-java data-lang=java><span 
style=display:flex><span>ServiceConfig<span 
style=color:#719e07>&lt;</span>DemoServiceImpl<span 
style=color:#719e07>&gt;</span> service <span style=color:#719e07>=</span> 
<span style=color:#719e07>new</span> ServiceC [...]
 </span></span></code></pre></div><h2 id=22-了解一下服务配置的建模>2.2 
了解一下服务配置的建模</h2><p>下面是一个简单的UML继承关系图,当然这个图很是简单的,这里仅仅列出了当前服务提供者的相关服务配置继承关系, 
服务提供者独有的配置标注颜色为蓝色,一些可能与服务引用配置所共有的父类型我们用红色背景,当然这里为了简便起见不会提起服务引用相关的配置类型,这里列举了如下服务提供者类型,他们各司其职:
-<img src=/imgs/blog/source-blog/2-ServiceConfig.png 
alt=在这里插入图片描述></p><center>图2.1 
服务引用类继承关系UML</center><ul><li>AbstractConfig<ul><li><strong>抽象的配置类型</strong>,也是最顶层的服务配置类型,封装着解析配置的实用方法和公共方法,比如服务id的设置,服务标签名字的处理,服务参数的添加,属性的提取等等</li></ul></li><li>AbstractMethodConfig<ul><li><strong>抽象的方法配置</strong>,同样这个类型也是见名知意,服务方法的相关配置处理,这个类型主要用于对服务方法的一些配置信息建模比如服务方法的调用超时时间,重试次数,最大并发调用数,负载均衡策略,是否异步调用,是否确认异步发送等等配置信息.</li></ul></li><li>AbstractInterfaceConfig<ul><li><strong>抽象的接口配置</strong>,与前面介绍的方法配置类似,这个类型
 [...]
-- 
<strong>抽象的服务配置</strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴露服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.</li><li>ServiceConfigBase
-- 
<strong>服务的基础配置类</strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService</li><li>ServiceConfig
-- <strong>服务配置实现类</strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.</li><li>ServiceBean
-- <strong>服务工厂Bean</strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置. -</li></ul><h2 
id=23-serviceconfig构造器的初始化调用链>2.3 
ServiceConfig构造器的初始化调用链</h2><p>有了上面的类型继承关系我们就比较好分析了,接下来我们开始创建服务配置对象如下代码所示:</p><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-java data-lang=java><span 
style=display:flex><span>ServiceConfig<span 
style=color:#719e07>&lt;</span>DemoServiceImpl<span style=color:#719e07 [...]
+<img src=/imgs/blog/source-blog/2-ServiceConfig.png 
alt=在这里插入图片描述></p><center>图2.1 
服务引用类继承关系UML</center><ul><li>AbstractConfig<ul><li><strong>抽象的配置类型</strong>,也是最顶层的服务配置类型,封装着解析配置的实用方法和公共方法,比如服务id的设置,服务标签名字的处理,服务参数的添加,属性的提取等等</li></ul></li><li>AbstractMethodConfig<ul><li><strong>抽象的方法配置</strong>,同样这个类型也是见名知意,服务方法的相关配置处理,这个类型主要用于对服务方法的一些配置信息建模比如服务方法的调用超时时间,重试次数,最大并发调用数,负载均衡策略,是否异步调用,是否确认异步发送等等配置信息.</li></ul></li><li>AbstractInterfaceConfig<ul><li><strong>抽象的接口配置</strong>,与前面介绍的方法配置类似,这个类型
 [...]
 
</span></span></code></pre></div><p>根据Java基础的构造器知识,在每个构造器的第一行都会有个super方法来调用父类的构造器,当前这个super方法我们可以不写但是Java编译器底层还是会为我们默认加上这么一行super()代码来调用父类构造器的.</p><p>对于上面我提到的这几个构造器<strong>根据代码被调用的先后顺序</strong>,这里重点说几个重要的,这里我仍旧按代码执行的先后顺序来说:</p><h3
 id=231-父类型abstractmethodconfig构造器的初始化>2.3.1 
父类型AbstractMethodConfig构造器的初始化</h3><p>根据super调用链这里先来看AbstractMethodConfig抽象方法配置</p><div
 class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class [...]
 </span></span><span style=display:flex><span>        <span 
style=color:#268bd2>super</span>(ApplicationModel.defaultModel().getDefaultModule());
 </span></span><span style=display:flex><span>    }
diff --git a/zh-cn/blog/java/codeanalysis/3.0.8/index.xml 
b/zh-cn/blog/java/codeanalysis/3.0.8/index.xml
index 0938644ee14..04320e1fffd 100644
--- a/zh-cn/blog/java/codeanalysis/3.0.8/index.xml
+++ b/zh-cn/blog/java/codeanalysis/3.0.8/index.xml
@@ -8951,17 +8951,29 @@ FrameworkModel 重置默认的应用模型对象 resetDefaultAppModel()方法
 &lt;/li>
 &lt;li>AbstractInterfaceConfig
 &lt;ul>
-&lt;li>&lt;strong>抽象的接口配置&lt;/strong>,与前面介绍的方法配置类似,这个类型是对服务接口的建模,主要的配置信息有暴露服务的接口名字,服务接口的版本号,客户/提供方将引用的远程服务分组,&lt;strong>服务元数据&lt;/strong>,服务接口的本地impl类名,服务监控配置,对于生成动态代理的策略,可以选择两种策略:jdk和javassist,容错类型等等配置&lt;/li>
+&lt;li>&lt;strong>抽象的接口配置&lt;/strong>,与前面介绍的方法配置类似,这个类型是对服务接口的建模,主要的配置信息有暴漏服务的接口名字,服务接口的版本号,客户/提供方将引用的远程服务分组,&lt;strong>服务元数据&lt;/strong>,服务接口的本地impl类名,服务监控配置,对于生成动态代理的策略,可以选择两种策略:jdk和javassist,容错类型等等配置&lt;/li>
 &lt;/ul>
 &lt;/li>
 &lt;li>AbstractServiceConfig
-- 
&lt;strong>抽象的服务配置&lt;/strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴露服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>抽象的服务配置&lt;/strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴漏服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceConfigBase
-- 
&lt;strong>服务的基础配置类&lt;/strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务的基础配置类&lt;/strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceConfig
-- &lt;strong>服务配置实现类&lt;/strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务配置实现类&lt;/strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceBean
-- &lt;strong>服务工厂Bean&lt;/strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置. -&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务工厂Bean&lt;/strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;/ul>
 &lt;h2 id="23-serviceconfig构造器的初始化调用链">2.3 ServiceConfig构造器的初始化调用链&lt;/h2>
 &lt;p>有了上面的类型继承关系我们就比较好分析了,接下来我们开始创建服务配置对象如下代码所示:&lt;/p>
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index 44fca6a452e..34229caa7c2 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/zh-cn/overview/mannual/jav
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/zh-cn/overview/mannual/jav
 [...]
\ No newline at end of file
diff --git a/zh-cn/tags/java/index.xml b/zh-cn/tags/java/index.xml
index f9e94a98a48..c46a48ff65a 100644
--- a/zh-cn/tags/java/index.xml
+++ b/zh-cn/tags/java/index.xml
@@ -10843,17 +10843,29 @@ FrameworkModel 重置默认的应用模型对象 resetDefaultAppModel()方法
 &lt;/li>
 &lt;li>AbstractInterfaceConfig
 &lt;ul>
-&lt;li>&lt;strong>抽象的接口配置&lt;/strong>,与前面介绍的方法配置类似,这个类型是对服务接口的建模,主要的配置信息有暴露服务的接口名字,服务接口的版本号,客户/提供方将引用的远程服务分组,&lt;strong>服务元数据&lt;/strong>,服务接口的本地impl类名,服务监控配置,对于生成动态代理的策略,可以选择两种策略:jdk和javassist,容错类型等等配置&lt;/li>
+&lt;li>&lt;strong>抽象的接口配置&lt;/strong>,与前面介绍的方法配置类似,这个类型是对服务接口的建模,主要的配置信息有暴漏服务的接口名字,服务接口的版本号,客户/提供方将引用的远程服务分组,&lt;strong>服务元数据&lt;/strong>,服务接口的本地impl类名,服务监控配置,对于生成动态代理的策略,可以选择两种策略:jdk和javassist,容错类型等等配置&lt;/li>
 &lt;/ul>
 &lt;/li>
 &lt;li>AbstractServiceConfig
-- 
&lt;strong>抽象的服务配置&lt;/strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴露服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>抽象的服务配置&lt;/strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴漏服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceConfigBase
-- 
&lt;strong>服务的基础配置类&lt;/strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务的基础配置类&lt;/strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceConfig
-- &lt;strong>服务配置实现类&lt;/strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务配置实现类&lt;/strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceBean
-- &lt;strong>服务工厂Bean&lt;/strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置. -&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务工厂Bean&lt;/strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;/ul>
 &lt;h2 id="23-serviceconfig构造器的初始化调用链">2.3 ServiceConfig构造器的初始化调用链&lt;/h2>
 &lt;p>有了上面的类型继承关系我们就比较好分析了,接下来我们开始创建服务配置对象如下代码所示:&lt;/p>
diff --git 
"a/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml" 
"b/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml"
index 53d4447bd32..6608a6e932e 100644
--- "a/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml"
+++ "b/zh-cn/tags/\346\272\220\347\240\201\350\247\243\346\236\220/index.xml"
@@ -10049,17 +10049,29 @@ FrameworkModel 重置默认的应用模型对象 resetDefaultAppModel()方法
 &lt;/li>
 &lt;li>AbstractInterfaceConfig
 &lt;ul>
-&lt;li>&lt;strong>抽象的接口配置&lt;/strong>,与前面介绍的方法配置类似,这个类型是对服务接口的建模,主要的配置信息有暴露服务的接口名字,服务接口的版本号,客户/提供方将引用的远程服务分组,&lt;strong>服务元数据&lt;/strong>,服务接口的本地impl类名,服务监控配置,对于生成动态代理的策略,可以选择两种策略:jdk和javassist,容错类型等等配置&lt;/li>
+&lt;li>&lt;strong>抽象的接口配置&lt;/strong>,与前面介绍的方法配置类似,这个类型是对服务接口的建模,主要的配置信息有暴漏服务的接口名字,服务接口的版本号,客户/提供方将引用的远程服务分组,&lt;strong>服务元数据&lt;/strong>,服务接口的本地impl类名,服务监控配置,对于生成动态代理的策略,可以选择两种策略:jdk和javassist,容错类型等等配置&lt;/li>
 &lt;/ul>
 &lt;/li>
 &lt;li>AbstractServiceConfig
-- 
&lt;strong>抽象的服务配置&lt;/strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴露服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>抽象的服务配置&lt;/strong>,这个就与我们的服务提供者有了具体的关系了,主要记录了一些服务提供者的公共配置,如服务版本,服务分组,服务延迟注册毫秒数,是否暴漏服务,服务权重,是否为动态服务,服务协议类型,是否注册等等.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceConfigBase
-- 
&lt;strong>服务的基础配置类&lt;/strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务的基础配置类&lt;/strong>,这个类型仍旧是个抽象的类型提取了一些基础的配置:导出服务的接口类,服务名称,接口实现的引用类型,提供者配置,是否是通用服务GenericService&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceConfig
-- &lt;strong>服务配置实现类&lt;/strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务配置实现类&lt;/strong>, 
上面的类型都是抽象类型不能做为具体存在的事物,这个类型是我们出现的第一个服务配置实现类型,服务配置实现类已经从父类型中继承了这么多的属性,这里主要为实现服务提供了一些配置如服务的协议配置,服务的代理工厂JavassistProxyFactory是将生成导出服务代理的ProxyFactory实现,是其默认实现,服务提供者模型,是否导出服务,导出的服务列表,服务监听器等等.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;li>ServiceBean
-- &lt;strong>服务工厂Bean&lt;/strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置. -&lt;/li>
+&lt;ul>
+&lt;li>&lt;strong>服务工厂Bean&lt;/strong> 
,这个主要是Spring模块来简化配置的一个服务工厂Bean这里就先不详细介绍Spring相关的配置.&lt;/li>
+&lt;/ul>
+&lt;/li>
 &lt;/ul>
 &lt;h2 id="23-serviceconfig构造器的初始化调用链">2.3 ServiceConfig构造器的初始化调用链&lt;/h2>
 &lt;p>有了上面的类型继承关系我们就比较好分析了,接下来我们开始创建服务配置对象如下代码所示:&lt;/p>

Reply via email to