随笔分类 - spring
摘要:1、背景 因为CVE-2022-22978安全问题 CVE-2022-22978 In Spring Security versions 5.5.6 and 5.5.7 and older unsupported versions, RegexRequestMatcher can easily be
阅读全文
摘要:1、背景 在当前这个快速开发的环境下,很多时候我们的应用都是测试好好的,正式环境并发一高就一团糟。不了解并发相关参数,看不懂压测报告,是很多程序猿的基本状态。本文重点分享长事务以及长连接导致的并发排查和优化思路和示例。 长事务会导致长连接,长连接未必是因为长事务,因果关系先搞清楚。 主要相关技术:
阅读全文
摘要:mybatis中数据加密与解密 数据加解密的实现方式多种多样,在mybatis环境中数据加解密变得非常简单易用,本文旨在提供参考,在生产中应尽可能完成单元测试,开展足够的覆盖测试,以验证可靠性、可用性、安全性。 1、需求 **原始需求:**数据在保存时进行加密,取出时解密,避免被拖库时泄露敏感信息。
阅读全文
摘要:FastDFS分布式文件系统环境搭建和代码测试 待配置的机器: 192.168.44.10 192.168.44.11 192.168.44.12 192.168.44.13 注意:关闭linux防火墙,或者开放FastDFS所需的一些列端口 一、安装必要的工具和依赖 1、工具 yum instal
阅读全文
摘要:1、背景 在WEB应用中可能存在简化入参的情况,比如:LoginInfo对象 @AllArgsConstructor @NoArgsConstructor @Data public class LoginInfo implements Serializable { private String us
阅读全文
摘要:1、应用的负载均衡,只要以不同端口号同时启动多个应用,通过SpringGateway自带的Ribbon可以自动实现负载均衡。 配置网关路由uri的时候使用lb://协议 例如: cloud: gateway: routes: - id: websocket_route uri: lb:ws://wo
阅读全文
摘要:前端nginx部署,后端springboot框架,前端和后端都要做相应的ssl加密部署。 ##1.生成证书 适用于测试阶段,正常情况下,证书应该向发证CA机构申请。 生成证书密钥库 keytool -genkeypair -alias honor -storetype PKCS12 -keyalg
阅读全文
摘要:Spring Bean 循环依赖为什么需要三级缓存 这里指的是单例的、非构造依赖的循环引用。很多人都知道Spring用了三层缓存来解决循环依赖,但是不知道其原因,为什么是三级缓存?二级缓存不行吗?一级缓存不可以 ? 三级缓存 Spring 解决循环依赖的核心就是提前暴露对象,而提前暴露的对象就是放置
阅读全文
摘要:勘正 1、常规代码 @JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) @DateTimeFormat(pattern = "y
阅读全文
摘要:###1、@Order注解与Ordered接口实现相同的逻辑 @Order实现的是同一类组件或者bean的执行顺序,不是实例化顺序,也不是组件在IOC容器的注入顺序。 逻辑解析: 存在多个同类(接口)组件,组件之间可能需要按某个顺序执行,使用@Order注解标注执行顺序; 组件会在各业务配置阶段被无
阅读全文
摘要:关于Spring中@Order 、@AutoConfigureBefore等与顺序相关注解的误区 1、@Order注解并非一定会给你的bean排序 @Order注解表示排序,但是它不能决定@Configuration或者是@Bean注解的实例化顺序。决定Spring里bean实例化或者注入顺序的
阅读全文
摘要:Spring Security从过滤器到认证授权的源码分析 Spring Security的实现包括认证(Authentication) 和 授权(Authorization)全部都是通过过滤器实现的,源码分析最后都会追寻到源头过滤器。 一、过滤器 1、WebSecurityConfigurer
阅读全文
摘要:1、接收的是字节数组 axios .get('/avatar', { params: param, responseType: 'arraybuffer' }) .then(response => { return 'data:image/png;base64,' + btoa( new Uint8
阅读全文
摘要:1、quartz的集群或者说高可用是通过数据库行锁实现的,所以,quartz的高可用性能其实并不高,但是可以适用大部分的中小型定时任务场景。 2、重要:根据官网说明,不要在同一个节点上启用集群,原因大约就是时钟的问题。 3、quartz集群与单节点实现上,主要差别是在配置文件上。Quartz实现动态
阅读全文
摘要:目标:定时任务持久化到数据库,动态调整数据库里保存的cron表达式使定时任务可以跟随变化。 1、核心依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</
阅读全文
摘要:1、Springboot全局跨域 @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfigurat
阅读全文
摘要:背景: 原项目是通过前端定时器获取消息,存在消息滞后、空刷服务器、浪费带宽和资源的问题,在springboot项目集成websocket可以实现实时点对点消息推送。 原项目是在header添加jwt令牌实现认证,由于websocket不支持在头部添加信息(或许是我打开的方式不对?),最终只能采用在u
阅读全文
摘要:目标:springboot,使用异步方式后台发送邮件。 关键点:异步服务不能在同类里调用。 1、mail依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</
阅读全文
摘要:1、BeanFactory 是ioc容器的底层实现接口,是ApplicationContext 顶级接口 spring不建议我们直接操作 BeanFactory bean工厂,开发者人建议使用ApplicationContext,它继承多个接口,其中包括BeanFactory 在ioc容器接口中提供
阅读全文
摘要:1、主要分析无session的情况下,即令牌模式,已经认证过的用户,如何进行资源访问控制,其原理与spring security类似,但是不同的是spring security不对令牌进行处理。 2、spring security第一次认证通过后,需要手动生成令牌,第二次访问,也需要自己编写过滤器手
阅读全文