在程序开发过程中空值处理一直是一个令人头疼的问题,大牛Bob大叔特地在神作《Clean Code》的错误处理章节中专门开辟两节别返回null别传递null。问题是null似乎是无法避免的而随着微服务的兴起系统结构从单一大系统逐渐向众多微小系统转变null的问题愈演愈烈。在笔者进行开发过程中似乎可以通过AOP+Annovation+@ControllerAdvice相配合的方式在对主体业务代码尽可能少侵入的情况下对null进行更加优雅的处理。下面我进行详细介绍,如有误人子弟之处请各位看官不吝赐教。
首先定义标注用注解例如@NoNullReturned
定义注解
将注解标注到需要标注的方法上。
标注annovation
定义aop如下图去将需要标注的方法进行检查。
aop验证
最后定义Controller Advice去在最后对该Exception进行处理。
定义Controller Advice
利用Postman调用查看:
果然返回400还有Bad Request啦
只是暂时写了一个小demo跑通了流程,后面如果会整理一下上传github并尽量做成SDK方便大家使用。大家感兴趣的话可以持续关注呦