话说异常 「欲渡黄河冰塞川,将登太行雪满天」,无论生活还是计算机世界难免发生异常,上一篇文章RESTful API 返回统一JSON数据格式 说明了统一返回的处理,这是请求一切正常的情形;这篇文章将说明如何统一处理异常,以及其背后的实现原理,老套路,先实现,后说明原理,有了上一篇文章的铺底,相信,理解这篇文章就驾轻就熟了 实现 新建业务异常 新建 BusinessException.class 类表示业务异常,注意这是一个 Runtime 异常 1 2 3 4 5 6 7 8 9 @Data @AllArgsConstructor public final class Busine
关于 Spring 的全局处理,我有两方面要说: 1. 统一数据返回格式 2. 统一异常处理 为了将两个问题说明清楚,将分两个章节分别说明,本章主要说第一点 有童鞋说,我们项目都做了这种处理,就是在每个 API 都单独工具类将返回值进行封装,但这种不够优雅;我想写最少的代码完成这件事,也许有童鞋说,加几个注解就解决问题了,说的没错,但这篇文章主要是为了说明为什么加了几个注解就解决问题了,目的是希望大家知其所以然。 为了更好的说明问题,本文先说明如何实现,然后再详细剖析实现原理(这很关键) 为什么要做统一数据返回格式 前后端分离是当今服务形式的主流,如何设计一个好的
写在前面 在一款应用的整个生命周期,我们都会谈及该应用的数据安全问题。用户的合法性与数据的可见性是数据安全中非常重要的一部分。但是,一方面,不同的应用对于数据的合法性和可见性要求的维度与粒度都有所区别;另一方面,以当前微服务、多服务的架构方式,如何共享Session,如何缓存认证和授权数据应对高并发访问都迫切需要我们解决。Shiro的出现让我们可以快速和简单的应对我们应用的数据安全问题 Shiro介绍 Shiro简介 这个官网解释不抽象,所以直接用官网解释:Apache Shiro™是一个强大且易用的 Java 安全框架,可以执行身份验证、授权、加密和会话管理等。基于 Shiro 的易于理解
上一篇文章 你应该知道的 @ConfigurationProperties 注解的使用姿势,这一篇就够了 介绍了如何通过 @ConfigurationProperties 注解灵活读取配置属性,这篇文章将介绍如何灵活配置 Spring Bean 写在前面 当我们构建一个 Spring 应用的时候,有时我们想在满足指定条件的时候才将某个 bean 加载到应用上下文中, 在Spring 4.0 时代,我们可以通过 @Conditional 注解来实现这类操作 我们看到 @Conditional 注解接收的参数是 extends Condition 接口的泛型类,也就是说,我们要使用 @Con
写在前面 红黑树,对很多童鞋来说,是既熟悉又陌生。学校中学过,只了解大概;工作中不怎么使用,但面试又是重点。每次需要查看红黑树内容时都很难以更生动形象的方式来理解其内容。没错,本文内容就是要解决这个问题,用简单的语言,搭配静图和动图(利用大脑图形记忆方式),让你对红黑树有更深入的了解和更清晰的记忆,希望小伙伴们再次遇到红黑树的问题不至于头大,建议读该文章姿势: 打开两个页面,一个页面看图片和内容,一个页面看公式,像玩魔方一样,多玩几次就明白了 通过工具 (公众号回复「工具」—>那些可以提高效率的工具—>红黑树) 动态感受红黑树的转换过程 俺家司令买完东西后,我俩经常会发生这样的一段对话
现状 现阶段的开发模式多以前后端分离形式存在,前后端开发人员需要通过大量 API 来进行数据交互,如果在交互过程中前后端人员经常遭遇如下问题: * 前端人员不能快速理解接口字段含义及接口字段变化 * 后端人员想复用某些接口,但是不能快速从接口 URL 的定义中明确该接口的含义,需要进一步读代码确认 * URL中的英文单词使用五花八门,搜索某个接口不知道具体的关键字 * 请求方法动词如 POST GET 随意使用 * 完成当前业务接口对接,前端人员经常会询问下一步业务流程的接口定义在哪里,对接形式是什么样的 以上只是前后端人员通过接口交互的一小部分问题,这些问题就好比”牙痛”,不致
前言 最近在做基础数据的整理,数据存放在 Word 表格中,要将大量的数据整理好并导入到数据库中着实需要费些力气,于是需要笨方法和巧方法一起用 整理过程 首先应用笨方法,将 Word 中的数据表格拷贝到 Excel 中,貌似这是必须的,由于拷贝过来的表格有合并单元格的情况,所以我们要将 Excel 中的表格标准化 Excel通过公式拼接字符串换行 我们通常都会通过Excel公式**=CONCATENATE(Text1,[Text2])来拼接字符串,当我们需要拼接的字符串中需要换行时我们可以使用CHAR(10)**来完成拼接换行符,请看如下例子 =CONCATENATE("hello",C
双亲委派模型 在介绍这个Java技术点之前,先试着思考以下几个问题: 1. 为什么我们不能定义同名的 String 的 java 文件? 2. 多线程的情况下,类的加载为什么不会出现重复加载的情况? 3. 下面代码,虚拟机是怎样初始化注册 Mysql 连接驱动(Driver)的? 1 2 Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?characterEncoding=GBK", "
通过理解SSL握手过程解决客户端证书问题最近做项目,调用远程服务器突然出现如下错误: 1 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 很明显,客户端找不到服务器端返回的public certificate,所以我们需要拿到服务器给客户端的证书,并且存放到Keystore中,这就涉及到SSL握手(handshake)获取信任的过程。 图解



Copyright 2018-2019 Tanθ's Blog   |   辽ICP备19017651号-1   |     站点总字数: 277.7k 字   |   载入天数...载入时分秒...   |  站点地图   |  站长统计
  总访问量:  次  总访问人数:  人

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议