一种对某个操作前置后置一系列处理的优化经验|优化经验背景与优化思路在项目的某几个接口,例如流程提交接口,在“调用工作流引擎,改变工作流状态”这个操作的前后,都会有一系列的处理,而且改动频繁,基本上新增一块业务功能就需要在流程提交接口中做些校验或者更新的操作。原本的流程提交代码类似于这样:
123456789// 提交前1:当XX时 ...
Read more
一种方案完整性校验方法|优化经验背景一个完整的业务方案,包括几个模块,如下图所示:
用户填写完每个模块的内容后,点击“提交申请”按钮,后台需要对这些内容做“完整性校验”,每个模块都有自己的校验规则,如在“业务基本信息”中,当且仅当业务类型=XXX时,业务币种必填。模块之间还有联动校验规则,如“业务低风险标志为是时,业务明细数 ...
Read more
Shiro 认证与授权流程|Shiro前言只要是权限校验框架,就离不开两个步骤:认证(Authentication)和授权(Authorization)。认证即“用户登录”,授权即“允许用户访问目标URI”。这篇博客介绍了Shiro 1.3.2版本认证与授权这两个过程的执行链条,未涉及到更高级的功能(如单点登录、RememberMe) ...
Read more
SpringShiroFilter原理|Shiro前言Spring 或 SpringBoot 集成 Shiro 后,无论在 Shiro 配置文件中配置了多少个 Shiro 过滤器(包括 Shiro 已实现的或自定义实现的),这些过滤器在ApplicationFilterChain(tomcat定义的过滤器链)中只以“一个过滤器”的身份存在。这个过滤 ...
Read more
Tomcat过滤器链原理责任链模式Tomcat 采用“责任链模式”设计了过滤器链。该模式的含义是,一个请求进入后会经过一系列处理逻辑,这些处理逻辑可以分别写在不同的地方,每个逻辑处理完后将请求传给下一个处理逻辑。
这样做的好处是:处理逻辑之间解耦,每个逻辑只管做好自己的事,不需要知道自己的前后的处理逻辑;可以快速在这个逻辑 ...
Read more
Shiro过滤器基类介绍|Shiro前言Shiro 已经实现的过滤器有以下几种:
1234567891011121314public enum DefaultFilter { anon(AnonymousFilter.class), authc(FormAuthenticationFilter.class), / ...
Read more
Java8 Stream API 常用方法|Java以下面的 User 类和 userList 为例:
12345678910111213141516171819202122232425public class User { private int userId; private String userName; priv ...
Read more
Spring Bean的生命周期——Bean定义|SpringSpring Bean 的生命周期有4个阶段:Bean 定义、Bean 初始化、Bean 生存期、Bean 销毁。因为“Bean 生存期”阶段就是程序启动后我们使用 Bean 的过程,所以不需要介绍。这篇博客介绍的是“Bean 定义”阶段。
源码版本:SpringBoot 2.3.0,Spring ...
Read more
Java类的生命周期|Java类的生命周期加载 -> 链接 -> 初始化 -> 使用 -> 卸载
加载一个 Java 源代码文件(后缀 .java),通常被称为“编译单元”。每个编译单元中只能有一个 public 类,可以有其他非 public 类。.java 文件名与文件中这个唯一的 public 类同 ...
Read more
6大设计原则|设计模式单一职责原则(SRP)应该有且仅有一个原因引起类的变更,换句话说,类的职责应尽量单一。
为什么?如果类的职责单一,那么只有它负责的部分出现了变化,它才会被修改。这个类被修改的次数越少,那么其他模块依赖它的部分修改的次数也就少了。这可以提高系统的可维护性。
该原则试用于接口、类、方法。
实际使用时,因 ...
Read more