### Java后端开发规范
* Idea统一安装阿里Java代码开发规约插件:```Alibaba Java Coding Guidelines```,完成代码开发之后进行编码规约扫描,不允许存在红色块警告(```Error```、```Blocker```)
* 使用```lombok```简化掉```pojo```的```get```、```set```代码
* 表单校验统一使用```hibernate-validator```完成校验
* 业务检查判断统一使用封装好的断言工具类```AssertUtil```
* 接口的出入口日志统一由框架处理,但是业务层关键日志一定要加上。日志统一使用```logback```框架,添加```lombok```的```@Slf4j```使用
* 除了JDK工具类之外的第三方工具类都不允许直接调用,统一再次封装到```util```包中,避免第三方工具类版本升级可能会导致大面积代码修改,也方便后续工具类统一升级管理
* 所有异常通过```throws```方式统一往外抛出,除非是可以内部消化的异常,比如资源释放失败,重新释放。否则统一往外抛出异常
* Dao层统一继承```tk.mybatis的Mapper```,简化MyBatis的Mapper编写
* Service层要有接口、实现类
* Controller层统一继承```BaseController```,接口返回值类型统一使用```ResponseEntity```,返回值封装统一调用```BaseController```的```response```方法
* 方法参数尽量直观,避免使用```request```、```response```、```map```、```json```之类的复杂数据对象,建议明确好参数具体有哪些,做到一个方法只做一件事情,如果参数数量实在太多,可以使用```Java Bean```传参
推荐一篇文章,共同学习下:http://blog.didispace.com/cxy-wsm-zml-10/