Spring Security 中的 hasRole 和 hasAuthority 的区别

我相信很多小伙伴在初次接触 Spring Security 时,一定会被这个问题所困扰,例如如下两段配置: http.authorizeRequests() .antMatchers("/admin/**").hasAuthority("admin") .antMatchers("/user/**").hasAuthority("user")…

hello hello 发布于 2023-12-28

SpringBoot对象拷贝

[toc] 概述 众所周知,java世界是由 类 构成的,各种各样的类,提供各种各样的作用,共同创造了一个个的java应用。对象是类的实例,在SpringBoot框架中,对象经常需要拷贝,例如数据库实体拷贝成业务实体,导入实体转换为业务实体,各种数据传输对象之间的拷贝等等。日常开发工作中用到的地方和频率是相当的高。本文就围绕 对象拷贝 来聊聊常用的 姿势…

hello hello 发布于 2023-12-28

Spring Cloud 2023 新特性:同步网关

网关不支持传统 Servlet 容器 Spring Cloud Gateway 需要运行在提供的 Netty 运行时。它不能在传统的 Servlet 容器中工作,也不能在构建为 WAR 时工作。WebFlux 使用了异步非阻塞的编程模型,相较于传统的 MVC Servlet 需要理解和适应新的编程范式和响应式编程概念,因此学习曲线可能较陡峭。 如果在…

hello hello 发布于 2023-12-27

Spring Boot 如何热加载jar实现动态插件?

一、背景 动态插件化编程是一件很酷的事情,能实现业务功能的 解耦 便于维护,另外也可以提升 可扩展性 随时可以在不停服务器的情况下扩展功能,也具有非常好的 开放性 除了自己的研发人员可以开发功能之外,也能接纳第三方开发商按照规范开发的插件。 常见的动态插件的实现方式有 SPI 、 OSGI 等方案,由于脱离了 Spring IOC…

hello hello 发布于 2023-12-22

Spring Boot 集成 Groovy 脚本

在我们的应用中引入脚本能力,可以很好的提升灵活性,我们的核心开发工作可以集中在核心平台能力的开发上,具体场景的功能可以通过脚本来实现,例如jenkins就可以通过groovy脚本来编写pipeline,可以很灵活的定制构建过程。…

hello hello 发布于 2023-12-13

Spring 使用 Kafka 的三种方式

本文介绍spring中使用Kafka的三种方式,其中container方式最灵活,但是开发相对较复杂,stream方式使用最简便,listener方式由于提供的最早,使用的较普遍。 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-kafka 一、概述…

hello hello 发布于 2023-12-13

Spring Cache 自定义 resolver,增强@Cache注解的能力

本文介绍spring中自定义缓存resolver,通过自定义resolver,可以在spring的cache注解中增加附加处理。 具体的代码参照 示例项目 https://github.com/qihaiyan/springcamp/tree/master/spring-redis-resolver 一、概述 cache-…

hello hello 发布于 2023-12-12

Spring Cloud Gateway 动态转发后端服务

API网关的核心功能是统一流量入口,实现路由转发,SpringCloudGateway是API网关开发的技术之一,此外比较流行的还有Kong和ApiSix,这2个都是基于OpenResty技术栈。…

hello hello 发布于 2023-12-11

Spring Boot 3 的 AOT(GraalVM Native Image)应用开发

GraalVM Native Images是一个利用AOT(Ahead-of-Time)技术把java程序直接编译成可执行程序的编译工具,编译出来的程序在运行时不再依赖JRE,同时启动速度快,资源消耗低,这对传统java程序来说都是极大的优势。同时云原生应用来说,GraalVM Native…

hello hello 发布于 2023-12-07

Spring RestTempate 打印请求和响应内容日志

系统中经常需要调用第三方接口实现业务功能,为了方便调试和定位问题,我们通常需要将接口调用参数和返回结果打印到日志文件中。在Spring项目中一般会用RestTemplate来调用第三方接口。 通过在RestTemplate调用过程中统一打印日志,可以保持代码的整洁,也可以统一日志格式,比在业务逻辑中到处打印接口调用日志要方便的多。 具体的代码参照 示例项目…

hello hello 发布于 2023-12-07
上一页 下一页