Skip to main content

Action

介绍

一个类加上了 ActionController 注解表示为一个 action 类, 而在 action 类中定义的方法上添加了 ActionMethod 注解的,表示这是一个 action (即一个业务动作)。


标准的 action 是非静态的,且访问权限为 public 的方法。

action 映射规则

  1. 业务方法上添加注解 ActionMethod。
  2. 业务方法的访问权限必须是:public
  3. 业务方法不能是:static
  4. 业务方法需要是在 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 中。一般情况下是无需关心返回值的,因为业务框架最终会把返回值给到请求端。