This commit is contained in:
RedKale
2016-02-16 10:18:31 +08:00
parent 555737107d
commit f9c0724a98

View File

@@ -280,7 +280,7 @@
<br/>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert 支持自定义Decode、Encode。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 通过Factory显式的注册</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 通过ConvertFactory显式的注册</p>
<div class="highlight"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">FileSimpleCoder</span><span class="o">&lt;</span><span class="n">R</span> <span class="kd">extends</span> <span class="n">Reader</span><span class="o">,</span> <span class="n">W</span> <span class="kd">extends</span> <span class="n">Writer</span><span class="o">&gt;</span> <span class="kd">extends</span> <span class="n">SimpledCoder</span><span class="o">&lt;</span><span class="n">R</span><span class="o">,</span> <span class="n">W</span><span class="o">,</span> <span class="n">File</span><span class="o">&gt;</span> <span class="o">{</span>
<span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">FileSimpleCoder</span> <span class="n">instance</span> <span class="o">=</span> <span class="k">new</span> <span class="nf">FileSimpleCoder</span><span class="o">();</span>
@@ -322,8 +322,8 @@
<span class="cm"> * 该方法提供给Convert组件自动加载。</span>
<span class="cm"> * 1) 方法名可以随意。</span>
<span class="cm"> * 2) 方法必须是static</span>
<span class="cm"> * 3方法的参数有且只能有一个 且必须是org.redkale.convert.Factory或子类。</span>
<span class="cm"> * —3.1) 参数类型为org.redkale.convert.Factory 表示适合JSON和BSON。</span>
<span class="cm"> * 3方法的参数有且只能有一个 且必须是org.redkale.convert.ConvertFactory或子类。</span>
<span class="cm"> * —3.1) 参数类型为org.redkale.convert.ConvertFactory 表示适合JSON和BSON。</span>
<span class="cm"> * —3.2) 参数类型为org.redkale.convert.json.JsonFactory 表示仅适合JSON。</span>
<span class="cm"> * —3.3) 参数类型为org.redkale.convert.bson.BsonFactory 表示仅适合BSON。</span>
<span class="cm"> * 4方法的返回类型必须是org.redkale.convert.Decodeable/org.redkale.convert.Encodeable/org.redkale.convert.SimpledCoder</span>
@@ -332,7 +332,7 @@
<span class="cm"> * @param factory</span>
<span class="cm"> * @return</span>
<span class="cm"> */</span>
<span class="kd">private</span> <span class="kd">static</span> <span class="n">SimpledCoder</span><span class="o">&lt;</span><span class="n">Reader</span><span class="o">,</span> <span class="n">Writer</span><span class="o">,</span> <span class="n">InnerCoderEntity</span><span class="o">&gt;</span> <span class="nf">createConvertCoder</span><span class="o">(</span><span class="kd">final</span> <span class="n">org</span><span class="o">.</span><span class="na">redkale</span><span class="o">.</span><span class="na">convert</span><span class="o">.</span><span class="na">Factory</span> <span class="n">factory</span><span class="o">)</span> <span class="o">{</span>
<span class="kd">private</span> <span class="kd">static</span> <span class="n">SimpledCoder</span><span class="o">&lt;</span><span class="n">Reader</span><span class="o">,</span> <span class="n">Writer</span><span class="o">,</span> <span class="n">InnerCoderEntity</span><span class="o">&gt;</span> <span class="nf">createConvertCoder</span><span class="o">(</span><span class="kd">final</span> <span class="n">org</span><span class="o">.</span><span class="na">redkale</span><span class="o">.</span><span class="na">convert</span><span class="o">.</span><span class="na">ConvertFactory</span> <span class="n">factory</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">new</span> <span class="n">SimpledCoder</span><span class="o">&lt;</span><span class="n">Reader</span><span class="o">,</span> <span class="n">Writer</span><span class="o">,</span> <span class="n">InnerCoderEntity</span><span class="o">&gt;()</span> <span class="o">{</span>
<span class="c1">//必须与EnMember[] 顺序一致</span>
@@ -393,7 +393,7 @@
<span class="o">}</span>
</pre></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由上可以看出Convert的自定义配置完全符合面向对象思想提倡在JavaBean内部去自定义非常规的构造函数或Decode、Encode方法通过Factory显式配置的方式通常用于非自己定义的数据类(如 java.io.File)。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由上可以看出Convert的自定义配置完全符合面向对象思想提倡在JavaBean内部去自定义非常规的构造函数或Decode、Encode方法通过ConvertFactory显式配置的方式通常用于非自己定义的数据类(如 java.io.File)。</p>
<br/>
<h3><a id="convert_bson_struct" class="anchor" href="#" aria-hidden="true"></a>BSON的协议格式</h3>