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 中。一般情况下是无需关心返回值的,因为业务框架最终会把返回值给到请求端。