Action
介绍
一个类加上了 ActionController 注解表示为一个 action 类, 而在 action 类中定义的方法上添加了 ActionMethod 注解的,表示这是一个 action (即一个业务动作)。
标准的 action 是非静态的,且访问权限为 public 的方法。
action 映射规则
- 业务方法上添加注解 ActionMethod。
 - 业务方法的访问权限必须是:public
 - 业务方法不能是:static
 - 业务方法需要是在 action 类中声明的方法
 
在 action 类中提供的业务方法通常称为 action,action 的职责是处理具体的业务逻辑
- @ActionController 主路由 (作用在业务类上)
 - @ActionMethod 子路由(作用在业务方法上)
 
action 的定义
action 就是一个普通的 java 方法。
- 方法的参数表示请求端传入的数据。
 - 方法的返回值表示服务器响应给请求端的数据。
 
@ActionController(1)
public class DemoAction {
    @ActionMethod(0)
    public HelloMessage here(HelloMessage message) {
        message.name = message.name + ", I'm here ";
        return message;
    }
    @ActionMethod(1)
    public HelloMessage say(HelloMessage message) {
        message.name = message.name + ", I'm say ";
        return message;
    }
}
如果只负责编写游戏业务,那么对于业务框架的学习可以到此为止了。
可以看出游戏编程就是如此简单!
业务参数
现在,我们定义一个数据协议 HelloMessage,用于客户端与服务器的数据交互。
这是一个 jprotobuf 的 pb 对象,
jprotobuf 是对 google protobuf 的简化使用,性能同等。
@ProtobufClass
public class HelloMessage {
    public String name;
}
Action 的返回值
Action 是可以有返回值的,当 action 执行完成后,业务框架会把返回值设置到 FlowContext.methodResult 属性中。
业务框架会通过结果包装器,把返回值设置到 ResponseMessage.data 中。一般情况下是无需关心返回值的,因为业务框架最终会把返回值给到请求端。