This commit is contained in:
40
service.html
40
service.html
@@ -37,26 +37,46 @@
|
||||
|
||||
<div class="highlight"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">UserService</span> <span class="kd">implements</span> <span class="n">Service</span> <span class="o">{</span>
|
||||
|
||||
<span class="c1">//用户简单信息缓存</span>
|
||||
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Map</span><span class="o"><</span><span class="n">Integer</span><span class="o">,</span> <span class="n">UserInfo</span><span class="o">></span> <span class="n">users</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ConcurrentHashMap</span><span class="o"><>();</span>
|
||||
|
||||
<span class="c1">//存放手机号码与userid的对应关系</span>
|
||||
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Map</span><span class="o"><</span><span class="n">Long</span><span class="o">,</span> <span class="n">Integer</span><span class="o">></span> <span class="n">mobileToUserids</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ConcurrentHashMap</span><span class="o"><>();</span>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">final</span> <span class="n">String</span> <span class="nf">testLocalNodeName</span><span class="o">()</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="s">"本地节点名"</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="c1">//查询用户信息</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">findUserInfo</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">users</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">userid</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="c1">//根据手机号码查询用户ID,没有返回0</span>
|
||||
<span class="kd">public</span> <span class="kt">int</span> <span class="nf">findUserid</span><span class="o">(</span><span class="kt">long</span> <span class="n">mobile</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">Integer</span> <span class="n">rs</span> <span class="o">=</span> <span class="n">mobileToUserids</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">mobile</span><span class="o">);</span>
|
||||
<span class="k">return</span> <span class="n">rs</span> <span class="o">==</span> <span class="kc">null</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="n">rs</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="c1">//缓存用户信息</span>
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">putUserInfo</span><span class="o">(</span><span class="n">UserInfo</span> <span class="n">user</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">users</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">user</span><span class="o">.</span><span class="na">getUserid</span><span class="o">(),</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="k">if</span> <span class="o">(</span><span class="n">user</span><span class="o">.</span><span class="na">getMobile</span><span class="o">()</span> <span class="o">></span> <span class="mi">0</span><span class="o">)</span> <span class="n">mobileToUserids</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">user</span><span class="o">.</span><span class="na">getMobile</span><span class="o">(),</span> <span class="n">user</span><span class="o">.</span><span class="na">getUserid</span><span class="o">());</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="c1">//登录</span>
|
||||
<span class="kd">public</span> <span class="n">RetResult</span><span class="o"><</span><span class="n">UserInfo</span><span class="o">></span> <span class="nf">login</span><span class="o">(</span><span class="n">LoginBean</span> <span class="n">bean</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="c1">// 登陆逻辑</span>
|
||||
<span class="k">return</span> <span class="k">new</span> <span class="n">RetResult</span><span class="o"><>(</span><span class="mi">100</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="c1">//注册</span>
|
||||
<span class="nd">@MultiRun</span>
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">register</span><span class="o">(</span><span class="n">UserInfo</span> <span class="n">user</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">this</span><span class="o">.</span><span class="na">users</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">user</span><span class="o">.</span><span class="na">getUserid</span><span class="o">(),</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="c1">//更新用户名</span>
|
||||
<span class="nd">@MultiRun</span><span class="o">(</span><span class="n">diffrun</span> <span class="o">=</span> <span class="kc">false</span><span class="o">)</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">updateUsername</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">,</span> <span class="n">String</span> <span class="n">username</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">UserInfo</span> <span class="n">user</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="na">users</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">userid</span><span class="o">);</span>
|
||||
@@ -154,7 +174,7 @@
|
||||
<p> 动态生成的远程模式UserService:</p>
|
||||
<div class="highlight"><pre><span class="nd">@Resource</span><span class="o">(</span><span class="n">name</span> <span class="o">=</span> <span class="s">""</span><span class="o">)</span>
|
||||
<span class="nd">@SncpDyn</span><span class="o">(</span><span class="n">remote</span> <span class="o">=</span> <span class="kc">true</span><span class="o">)</span>
|
||||
<span class="nd">@ResourceType</span><span class="o">({</span><span class="n">UserService</span><span class="o">.</span><span class="kd">class</span><span class="o">})</span>
|
||||
<span class="nd">@ResourceType</span><span class="o">({</span><span class="n">UserService</span><span class="o">.</span><span class="na">class</span><span class="o">})</span>
|
||||
<span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="nc">_DynRemoteUserService</span> <span class="kd">extends</span> <span class="n">UserService</span> <span class="o">{</span>
|
||||
|
||||
<span class="nd">@Resource</span>
|
||||
@@ -186,19 +206,29 @@
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">2</span><span class="o">,</span> <span class="n">userid</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="kt">int</span> <span class="nf">findUserid</span><span class="o">(</span><span class="kt">long</span> <span class="n">mobile</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">3</span><span class="o">,</span> <span class="n">mobile</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="n">RetResult</span><span class="o"><</span><span class="n">UserInfo</span><span class="o">></span> <span class="nf">login</span><span class="o">(</span><span class="n">LoginBean</span> <span class="n">bean</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">3</span><span class="o">,</span> <span class="n">bean</span><span class="o">);</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">4</span><span class="o">,</span> <span class="n">bean</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">putUserInfo</span><span class="o">(</span><span class="n">UserInfo</span> <span class="n">user</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">5</span><span class="o">,</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">register</span><span class="o">(</span><span class="n">UserInfo</span> <span class="n">user</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">4</span><span class="o">,</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">6</span><span class="o">,</span> <span class="n">user</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="nd">@Override</span>
|
||||
<span class="kd">public</span> <span class="n">UserInfo</span> <span class="nf">updateUsername</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">,</span> <span class="n">String</span> <span class="n">username</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">5</span><span class="o">,</span> <span class="n">userid</span><span class="o">,</span> <span class="n">username</span><span class="o">);</span>
|
||||
<span class="k">return</span> <span class="n">_client</span><span class="o">.</span><span class="na">remote</span><span class="o">(</span><span class="n">_convert</span><span class="o">,</span> <span class="n">_transport</span><span class="o">,</span> <span class="mi">7</span><span class="o">,</span> <span class="n">userid</span><span class="o">,</span> <span class="n">username</span><span class="o">);</span>
|
||||
<span class="o">}</span>
|
||||
<span class="o">}</span>
|
||||
</pre></div>
|
||||
@@ -257,7 +287,7 @@
|
||||
<span class="n">source</span><span class="o">.</span><span class="na">update</span><span class="o">(</span><span class="n">values</span><span class="o">);</span>
|
||||
<span class="k">if</span> <span class="o">(</span><span class="n">handler</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="n">handler</span><span class="o">.</span><span class="na">completed</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="n">values</span><span class="o">);</span>
|
||||
<span class="o">}</span></pre></div>
|
||||
<p> 如上图DataSourceService的源码,当DataSource为本地实例时,异步接口(含<b>CompletionHandler</b>参数的)与同步接口执行流程相同。当DataSource为远程模式时,调用异步接口时,通信接口发到远程服务器时CompletionHandler参数的值传<b>null</b>,返回数据后再调用本地的CompletionHandler参数值执行。</p>
|
||||
<p> 如上图DataSourceService的源码,当DataSource为本地实例时,异步接口(含<b>CompletionHandler</b>参数的)与同步接口执行流程相同。当DataSource为远程模式时,调用异步接口时,通信接口发到远程服务器时CompletionHandler参数的值传<b>null</b>,返回数据后再调用本地的CompletionHandler参数值执行。</p>
|
||||
<footer class="site-footer">
|
||||
<span class="site-footer-owner"><a href="https://github.com/wentch/redkale">RedKale</a> © <a href="https://github.com/wentch">wentch</a> 欢迎加入RedKale技术交流QQ群: 527523235</span>
|
||||
</footer>
|
||||
|
||||
Reference in New Issue
Block a user