Spring 注解 @Qualifier 详细解析
1. 概述 今天带你了解一下 Spring 框架中的 @Qualifier 注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 @Primary 注解的不同之处。更多的技术解析请访问 felord.cn 2. 痛点 使用 @Autowired 注解是 Spring 依赖注…
一步一步教你使用Spring框架中的事件订阅发布
1. 前言 Java 开发中有些逻辑是这样的,完成了A操作,再继续B操作,在继续C操作。这么描述好像有点不清楚。打个比方把,你吃晚饭,通知你老婆(女友)来收碗筷,然后通知你的线上兄弟告诉他们你回来了准备开黑。至于你老婆(女友)来不来收拾无所谓,反正你告诉她了。至于你兄弟你也是通…
Spring Boot 2 实战:如何自定义 Servlet Filter
有些时候我们需要在 Spring Boot Servlet Web 应用中声明一些自定义的 Servlet Filter 来处理一些逻辑。比如简单的权限系统、请求头过滤、防止 XSS 攻击等。本篇将讲解如何在 Spring Boot 应用中声明自定义 Servlet Filte…
一天入门 Python 的一些心得
1. 前言 好久没写文了。最近在搞一些好玩的技术用到了 Python 。我原以为要花些时日,谁知道第一天入门之后便没有再刻意地去学习它了。这里就写写其中的一些关键点吧。如果我去学一门语言不是因为它火了而是我用到它了。曾经闲着没事干的时候把 Kotlin 、Vue、React 学…
你知道你对 JSON Web Token 的认识存在误解吗
图文并茂教你学会使用 IntelliJ IDEA 进行远程调试
1. 前言 今天线上出现了个 Bug ,而且比较坑的是涉及到微信相关的东西不能线下调试。传统方式是在代码中各种的日志 log 埋点然后重新部署进行调试,再根据 log 中的信息进行分析。如果你的 log 埋点不合理,就要不停的修改代码、不停的打包部署。有没有什么骚操作避免上面的…
Java 是如何优雅地处理NPE问题的
1. 前言 对于 Java 开发者来说,null 是一个令人头疼的类型,一不小心就会发生 NPE (空指针) 问题。也是 Java 语言为人诟病的一个重要原因之一。在我们消除可恶的 NPE 问题之前我们要回顾一下 Java 中 null 的概念。 2. Java 中的 null…
Spring Security 实战干货:动态权限控制(下)实现
1. 前言 Spring Security 实战干货:内置 Filter 全解析 中提到的第 32 个 Filter 不知道你是否有印象。它决定了访问特定路径应该具备的权限,访问的用户的角色,权限是什么?访问的路径需要什么样的角色和权限? 它就是 FilterSecurityI…
Java 8 Stream Api 中的 map和 flatMap 操作
Spring Security 实战干货:动态权限控制(上)思路
Java 8 Stream Api 中的 peek 操作
1. 前言 我在 Java 8 Stream API中的 map 和flatMap 中讲述了Java8 Stream API中 map 操作和 flatMap 操作的区别。然后有小伙伴告诉我 peek 操作 也能实现元素的处理。但是你知道 map 和 peek 的区别吗? ma…
Spring Security 实战干货:SecurityContext相关的知识
1. 前言 欢迎阅读 Spring Security 实战干货 系列文章 。在前两篇我们讲解了 基于配置 和 基于注解 来配置访问控制。今天我们来讲一下如何在接口访问中检索当前认证用户信息。 我们先讲一下具体的场景。通常我们在认证后访问需要认证的资源时需要获取当前认证用户的信息…
你知道如何自动保存 Spring Boot 应用进程号吗
1. 前言 欢迎阅读 Spring Boot 2 实战 系列文章。 PID 对于系统运维来说并不陌生,但是对于一些开发者特别是新手还是要简单介绍一下的。它是 Process ID 的简称,是系统分配给一个进程的唯一标识符,是各进程的身份标识符,程序一运行系统就会自动分配给进程一…
Spring Security 实战干货:基于注解的接口角色访问控制
1. 前言 欢迎阅读 Spring Security 实战干货 系列文章 。在上一篇 基于配置的接口角色访问控制 我们讲解了如何通过 javaConfig 的方式配置接口的角色访问控制。其实还有一种更加灵活的配置方式 基于注解 。今天我们就来探讨一下。DEMO 获取方式在文末。…
Spring 中异常处理的各种姿势
Docker 构建脚本 Dockerfile 指令全解析
1. 前言 Dockerfile 是用来构建自定义 Docker 镜像的文本文档。我们通过docker build 命令用于从Dockerfile 文件构建镜像。 如果你要构建自定义镜像,Dockerfile 是你必须学会的技能之一。 2. Dockerfile 的基本结构 D…
开源模式面临的生存危机
对于知名容器厂商 Docker 公司来说昨天是一个值得铭记的日子。先是 Mirantis 宣布收购 Docker 企业级服务部门获得融资3500万美元。值得注意的是,这次收购并不包括Docker Desktop。据称,Mirantis和Docker将共同开发核心的上游技术,为开…
Spring Security 实战干货:基于配置的接口角色访问控制
1. 前言 欢迎阅读 Spring Security 实战干货 系列文章 。对于受限的访问资源,并不是对所有认证通过的用户开放的。比如 A 用户的角色是会计,那么他就可以访问财务相关的资源。B 用户是人事,那么他只能访问人事相关的资源。我们在RBAC概念 一文中也对基于角色的访…
Java 8 Stream Api 中的 skip 和 limit 操作
1. 前言 Java 8 Stream API 中的skip()和limit()方法具有类似的作用。它们都是对流进行裁剪的中间方法。今天我们来探讨一下这两个方法。 2. skip() skip(lang n) 是一个跳过前 n 个元素的中间流操作。我们编写一个简单的方法来进行s…
Spring Security 实战干货: RBAC权限控制概念的理解