基础验证我一般放在 `controller` 层,对于不同接口,验证要求可能不一样,比如用户名验证,如果给后台接口,我可能不限制长度,如果对于前台接口,我可能限制长度至少3位。 如果是数据库之类的验证,比如唯一性,那是越靠后越好,我以前开发是三层(`dao`, `service`, `controller`),就放在现在`dao`层,现在用 `mybatis` 就两层(`service`, `controller`),那就放在 `service` 层了。 对于第三点我没理解什么意思,是不是一个表里面多个字段验证唯一性,用或(`OR`)那也是一条查询语句够了呀。