实现流程: 自定义拦截器——注入拦截器——获取请求IP——对比IP是否一致——请求返回 文章背景: 接口添加IP白名单限制,只有规定的IP可以访问项目。 实现思路: 添加拦截器,拦截项目所有的请求,获取请求的网络IP,查询IP是否在白名单之中,白名单设置在数据库中,用一张表存储,若在表中有此IP则进行下一步,不在则进行请求拦截,返回到客户端。 实现方式:…
本文将介绍一下 @Validated 和 @Valid 两者之间的区别和Spring Boot参数校验的进阶使用。 区别 先总结一下它们的区别: 来源 @Validated :是Spring框架特有的注解,属于Spring的一部分,也是 JSR 303 的一个变种。它提供了一些 @Valid 所没有的额外功能,比如分组验证。 @Valid :Java…
前言 在 web 开发中,静态资源的访问是必不可少的,如图片、js、css等资源的访问 1、通过继承 WebMvcConfigurerAdapter 来实现 即如果使用了 @EnableWebMvc ,则自动配置类 WebMvcAutoConfiguration 会失效,因此默认映射路径 /static , /public , META-…
redisson解决redis的主节点和从节点一致性的问题。从而解决锁被错误获取的情况。 实际开发中我们会搭建多台redis服务器,但这些服务器分主次,主服务器负责处理写的操作(增删改),从服务器负责处理读的操作,当从主务器坏了,会从次服务器中选出一个服务器重新作为主服务器。 这样会出现主从一致性问题(存储的信息不一致)…
1、spring、springmvc、springBoot之间有什么区别和联系? spring是一个一站式的轻量级java开发框架核心是控制反转和面向切面 springmvc是spring基础之上的mvc框架,主要处理web路径映射和视图渲染,属于spring框架中web层开发的一部分…
Java Stream API对于 Java 开发人员来说就像一把瑞士军刀 — 它用途广泛、结构紧凑,并且可以轻松处理各种任务。 它为开发人员提供了一种函数式和声明式的方式来表达复杂的数据转换和操作,使代码更加简洁和富有表现力。 但能力越大,责任越大,有效地使用Stream API需要对最佳实践和常见陷阱有深入的了解。 今天,我们将探讨使用Java…
日志服务是作为软件开发架构的必备服务之一,一直都是我们所关注,所考虑的服务关键点,一个优秀的日志服务可以为项目的维护提供有力的支持,提高了系统的可靠性。 前言…
完成需求,不只在于速度,更要考虑质量。在规定的时间内完成需求的情况下,如果还有时间,应当想一下还能怎么优化,从性能、代码可读性、可扩展性层面考虑。进步就是这样一点点积累的。 昨天写的那篇有点小失误,在此修正一下。其实 mybatis-plus 提供的优化器做得非常好,它不仅仅只是在优化后的 sql 之上加一层 select count(1) from…
学习Drools,我们可以通过一个简单的案例来了解该规则引擎的使用过程。以下是一个样例工程的步骤: 首先,我们需要创建一个 Maven 工程。在 pom.xml 文件中添加 Drools 的依赖: <dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artifactId>…