Optimus-Xs' Blog

SpringSecurity 实现方法级别的权限验证

背景 在前文SpringSecurity 使用方法中实通过SpringSecurity配置实现了请求路径得用户权限验证,但是只实现了已登录得用户有权限可以访问被保护的资源,但是不同的资源对不同用户的访问权限不一致,例如某个资源是A用户的私有资源,而B应该无权访问,或者R为A共享的资源,B可以访问但不能修改。 而且由于使用Restful风格,对统一资源的CURD操作请求路径一致,而是通过HT...

SpringBoot 实现全局异常处理

将返回值统一封装时我们没有考虑当接口抛出异常的情况。当接口抛出异常时让用户直接看到服务端的异常肯定是不够友好的,而我们也不可能每一个接口都去try/catch进行处理,此时只需要使用@ExceptionHandler注解即可无感知的全局统一处理异常。 前言 实现思路 使用全局异常处理来处理校验逻辑的思路很简单,首先我们需要通过@ControllerAdvice注解定义一个全局异常的处理...

在 SpringBoot 中实现统一API返回格式

实现思路 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 具体的实现思路为设计设计一个封装类用其一个泛型成员变量对原本返回的数据进行封装,同时提供API对请求的执行状况和消息 示例代码 CommonResult 返回格式封装类 public final class CommonResult...

Java 多线程概览

前言 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。 其中的一些概念不够明确,如同步、并发等等,让我们先建立一个数据字典,以免产生误会。 多线程:指的是这个程...