通俗易懂地玩转Spring框架中的事件订阅发布
场景java开发中有些逻辑是这样的,完成了A操作,再继续B操作,在继续C操作。这么描述好像有点不清楚。打个比方把,你吃晚饭,通知你老婆(女友)来收碗筷,然后通知你的线上兄弟告诉他们你回来了准备开黑。至于你老婆(女友)来不来收拾无所谓,反正你告诉她了。至于你兄弟你也是通知他们,人家也不一定组你,万一他
一文了解web无状态会话token技术JWT
前言目前web开发前后端已经算非常的普及了。前后端分离要求我们对用户会话状态要进行一个无状态处理。我们都知道通常管理用户会话是session。用户每次从服务器认证成功后,服务器会发送一个sessionid给用户,session是保存在服务端的,服务器通过session辨别用户,然后做权限认证等。那如
你java开发几年还是那么菜是因为你没有做到这些
前言大家好,我是码农小胖哥。今天聊一聊如何提高自己编码能力。授人与鱼不如授人与渔。这里说的我有点膨胀了。只是分享一下自己的心得和体会,希望对你有用。觉得可以的话点个赞关注一下。进入java开发之初,我也是菜的抠脚。记得曾经不少次被组里的大佬吐槽的代码。有几次甚至不给面子,当着同事的面吐槽。我是个很爱
Spring Boot 2 实战:自定义启动运行逻辑
1.前言不知道你有没有接到这种需求,项目启动后立马执行一些逻辑。比如缓存预热,或者上线后的广播之类等等。可能现在没有但是将来会有的。想想你可能的操作,写个接口上线我调一次行吗?NO!NO!NO!这种初级菜鸟才干的事。今天告诉你个骚操作使得你的代码更加优雅,逼格更高。2.CommandLineRunn
Spring Boot 2 实战:使用 Flyway 管理你数据库的版本变更
1.前言随着项目的不断迭代,数据库表结构、数据都在发生着变化。甚至有的业务在多环境版本并行运行。数据为王的时代,管理好数据库的版本也成为了迫切的需要。如何能做到像Git之类的版本控制工具来管理数据库?Java项目中常用Flyway和Liquibase来管理数据库版本。其中Flyway相对来说比较受欢
Spring Security 实战干货:基于配置的接口角色访问控制
1.前言欢迎阅读SpringSecurity实战干货系列文章。对于受限的访问资源,并不是对所有认证通过的用户开放的。比如A用户的角色是会计,那么他就可以访问财务相关的资源。B用户是人事,那么他只能访问人事相关的资源。我们在一文中也对基于角色的访问控制的相关概念进行了探讨。在实际开发中我们如何对资源进
Spring Security 实战干货: RBAC权限控制概念的理解
1.前言欢迎阅读SpringSecurity实战干货系列文章。截止到上一篇我们已经能够简单做到用户主体认证到接口的访问控制了,但是依然满足不了实际生产的需要。如果我们需要一个完整的权限管理系统就必须了解一下RBAC(Role-BasedAccessControl基于角色的访问控制)的权限控制模型。2
开源软件就不恰饭了吗
对于知名容器厂商Docker公司来说昨天是一个值得铭记的日子。先是Mirantis宣布收购Docker企业级服务部门获得融资3500万美元。值得注意的是,这次收购并不包括DockerDesktop。据称,Mirantis和Docker将共同开发核心的上游技术,为开源开发做出贡献。此外,Miranti
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用
1.前言生产上对Web应用的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于SpringBoot应用来说我们可以通过一个轻量级的监控工具SpringBootAdmin(SBA)来进行监控。2.SpringBootAdminSpr
Spring 中异常处理的各种姿势
1.前言统一的异常处理对于应用的重要性不言而喻。今天我们来介绍一下Spring如何来进行统一的Rest异常处理。同时我们也会简单比较一下它们之间的优劣。2.@Controller结合@ExceptionHandler在控制器中声明一个方法然后用@ExceptionHandler注解标记即可:@Con
Docker 构建脚本 Dockerfile 指令全解析
1.前言Dockerfile是用来构建自定义Docker镜像的文本文档。我们通过dockerbuild命令用于从Dockerfile文件构建镜像。如果你要构建自定义镜像,Dockerfile是你必须学会的技能之一。2.Dockerfile的基本结构Dockerfile一般分为:基础镜像、镜像元信息、
Java 8 Stream Api 中的 map和 flatMap 操作
1.前言Java8提供了非常好用的StreamAPI,可以很方便的操作集合。今天我们来探讨两个Stream中间操作map和flatMap2.map操作map操作是将流中的元素进行再次加工形成一个新流。这在开发中很有用。比如我们有一个学生集合,我们需要从中提取学生的年龄以分析学生的年龄分布曲线。放在J
Spring Security 实战干货:基于注解的接口角色访问控制
1.前言欢迎阅读SpringSecurity实战干货系列文章。在上一篇基于配置的接口角色访问控制我们讲解了如何通过javaConfig的方式配置接口的角色访问控制。其实还有一种更加灵活的配置方式基于注解。今天我们就来探讨一下。DEMO获取方式在文末。2.SpringSecurity方法安全Sprin
你知道如何自动保存 Spring Boot 应用进程号吗
1.前言欢迎阅读SpringBoot2实战系列文章。PID对于系统运维来说并不陌生,但是对于一些开发者特别是新手还是要简单介绍一下的。它是ProcessID的简称,是系统分配给一个进程的唯一标识符,是各进程的身份标识符,程序一运行系统就会自动分配给进程一个独一无二的PID。进程终止后,PID被系统回
使用 Gitea 快速搭建私有 Git 版本控制服务
1.前言分布式版本控制工具Git已经是现代软件源代码版本控制首选方案之一。公有Git服务提供商国外知名如GitHub国内网络延迟高,Gitlab涉嫌对中国的歧视不推荐。国内有Gitee、Coding生态还不错。但是一般公司的源代码除非开源项目是不会放在公有Git服务上的。所以我们就需要一款容易安装,
Spring Security 实战干货:动态权限控制(上)思路
1.前言欢迎阅读SpringSecurity实战干货系列文章。截止目前已经对基于配置和基于注解的角色访问控制进行了讲解。对于一些小项目来说基本是够用的。然而如果希望运营管理人员能够动态的配置和分配权限,以上两种方式显然是满足不了需求的。接下来我们来一起探讨一下思路。2.动态的权限控制同样依赖RBAC
Spring Security 实战干货:动态权限控制(下)实现
1.前言SpringSecurity实战干货:内置Filter全解析中提到的第32个Filter不知道你是否有印象。它决定了访问特定路径应该具备的权限,访问的用户的角色,权限是什么?访问的路径需要什么样的角色和权限?它就是FilterSecurityInterceptor,正是我们需要的那个轮子。2
Java 是如何优雅地处理NPE问题的
1.前言对于Java开发者来说,null是一个令人头疼的类型,一不小心就会发生NPE(空指针)问题。也是Java语言为人诟病的一个重要原因之一。在我们消除可恶的NPE问题之前我们要回顾一下Java中null的概念。2.Java中的null翻译自OracleJava文档Java语言中有两种类型,一种是
图文并茂教你学会使用 IntelliJ IDEA 进行远程调试
1.前言今天线上出现了个Bug,而且比较坑的是涉及到微信相关的东西不能线下调试。传统方式是在代码中各种的日志log埋点然后重新部署进行调试,再根据log中的信息进行分析。如果你的log埋点不合理,就要不停的修改代码、不停的打包部署。有没有什么骚操作避免上面的问题呢?2.远程调试当然有解决方案,这就是
你知道你对 JSON Web Token 的认识存在误解吗
1.前言JSONWebToken(JWT)其实目前已经广为软件开发者所熟知了,但是JOSE(JavascriptObjectSigningandEncryption)却鲜有人知道,我第一次知道它是在SpringSecurity的官方文档中,它改变了我对JWT的一些认识。目前国内能找到相关中文资料不是