diff --git a/service.html b/service.html index 86d4c2fd5..673f6aef5 100644 --- a/service.html +++ b/service.html @@ -28,7 +28,7 @@

         Service 是Redkale最核心的组件,依赖于Convert、SNCP协议、Resource依赖注入。Service主要处理业务逻辑和操作数据层,是微服务架构中的单一原子服务。每一个Service实例分两种模式: 本地模式远程模式。其模式由 conf/application.xml 文件来配置。使用者在调用过程中通常不需要区分当前Service实例是哪种模式。
         为了能确保本地模式与远程模式自由切换,对Service的实现类有一定的约束:
                 1、Service实现类会被继承,不能修饰为 final
-                  2、带@MultiRun注解的方法会被重载,不能修饰为 final
+                  2、带@RpcMultiRun注解的方法会被重载,不能修饰为 final
         Redkale进程启动时扫描可加载的Service实现类,根据配置文件配置的模式采用JDK 8内置的ASM技术动态生成相应的Service临时类进行实例化,并注册到ResourceFactory同其他Service、Servlet依赖注入。

@@ -71,13 +71,13 @@ } //注册 - @MultiRun + @RpcMultiRun public void register(UserInfo user) { this.users.put(user.getUserid(), user); } //更新用户名 - @MultiRun(diffrun = false) + @RpcMultiRun(diffrun = false) public UserInfo updateUsername(int userid, String username) { UserInfo user = this.users.get(userid); if (user != null) user.setUsername(username); @@ -139,8 +139,8 @@ } } -

        由以上等价的代码可以看出来,本地模式Service会重载被@MultiRun注解的方法。@MultiRun有以下几个参数:

-
public @interface MultiRun {
+            

        由以上等价的代码可以看出来,本地模式Service会重载被@RpcMultiRun注解的方法。@RpcMultiRun有以下几个参数:

+
public @interface RpcMultiRun {
 
     boolean selfrun() default true; //当前本地实例是否运行指定操作;只有当指定操作的方法的返回值为void时,该值才能为true,否则忽略。
 
@@ -150,7 +150,7 @@
 
     boolean async() default true; //分布式运行是否采用异步模式
 } 
-

        在动态生成的远程模式UserService时会根据不同参数生成相应的方法。若一个Service类没有含@MultiRun注解的方法,那么动态类只会重载toString方法。当UserService服务仅需要部署一个进程,由于没有其他等同服务的进程因此在UserService实例化时_redkale_client会赋值为null。

+

        在动态生成的远程模式UserService时会根据不同参数生成相应的方法。若一个Service类没有含@RpcMultiRun注解的方法,那么动态类只会重载toString方法。当UserService服务仅需要部署一个进程,由于没有其他等同服务的进程因此在UserService实例化时_redkale_client会赋值为null。

<resources>  
     <group name="GROUP-A">
         <node addr="192.168.10.111" port="7070"/>