Spring框架对Java Bean Validation API提供了很好的支持,允许你很容易地在Spring应用程序中进行请求消息验证。通过Validation结合全局异常拦截器,可以非常优雅实现对请求参数进行验证,并对异常进行二次转义,使之符合客户端响应标准。
那么,游戏开发能否借鉴web开发的思路,引入基于注解的消息验证,并通过全局异常拦截器进行拦截呢。我们尝试在游戏开发引入这项利器。
1.使用Validation进行入参验证
对于账号登录的请求,假设业务要求password长度为6到10个字符,登录类型为1到3。
@Data
public class ReqAccountLogin implements Message {
private long accountId;
private String password;
private int type;
}
业务代码需要进行以下参数验证
public void handleAccountLogin(IdSession session, long accountId, String password, int type) {
if (StringUtils.isEmpty(password) || password.length()< 6||password.length()>10) {
MessageUti