Spring Data REST 远程代码执行漏洞(CVE-2017-8046)分析与复现

前言 2009年9月Spring 3.0 RC1发布后,Spring就引入了SpEL(Spring Expression Language)。对于开发者而言,引入新的工具显然是令人兴奋的,但是对于运维人员,也许是噩耗的开始。类比Struts…

hello hello 发布于 2023-09-15

如何使用Spring Retry减少1000 行代码

问题介绍 在我的日常工作中,我主要负责开发一个庞大的金融应用程序。当客户发送请求时,我们使用他们的用户 ID…

hello hello 发布于 2023-09-12

Mybatis一级缓存

Mybatis一级缓存的配置方式: <setting name="localCacheScope" value="SESSION"/> value有两个值可选: session:缓存对一次会话中所有的执行语句有效,也就是SqlSession级别的。 statement:缓存只对当前执行的这一个Statement有效。 BaseExecutor…

hello hello 发布于 2023-09-12

带你了解 Java 8 Stream:掌握流处理中的收集器技巧

Java 8 引入的 Stream 极大地简化了集合数据的处理,提供了一种现代、函数式的方式来处理数据。然而,在处理流时,我们经常需要将流的结果汇总到集合中或者进行各种统计计算。这就是收集器(Collectors)发挥作用的地方。本文将深入探讨 Java 8 Stream 中的收集器,介绍收集器的各种用法和技巧,帮助你更好地利用收集器处理数据。…

hello hello 发布于 2023-09-11

【Spring】事务的执行原理(二)

前置知识 事务的执行步骤如下: 获取事务管理器 创建事务 执行目标方法 捕捉异常,如果出现异常进行回滚 提交事务 public abstract class TransactionAspectSupport implements BeanFactoryAware, InitializingBean { @Nullable protected Object…

hello hello 发布于 2023-09-11

【Spring】事务的执行原理(三)

事务的回滚 如果获取事务属性不为空,并且抛出的异常是RuntimeException或者Error类型,调用事务管理器中的rollback方法进行回滚 如果事务属性为空或者抛出的异常不是RuntimeException,也不是Error,将继续提交事务 public abstract class TransactionAspectSupport…

hello hello 发布于 2023-09-11

【Spring】事务的执行原理(一)

在使用事务的时候需要添加@EnableTransactionManagement注解来开启事务,那么就从@EnableTransactionManagement入手查看一下事务的执行原理。 @EnableTransactionManagement Spring事务底层是通过AOP来完成的,而Spring AOP基于动态代理实现…

hello hello 发布于 2023-09-11

如何通过三级缓存解决 Spring 循环依赖

以下内容基于 Spring6.0.4。 这个其实是一个特别高频的面试题,也一直很想和大家仔细来聊一聊这个话题,网上关于这块的文章很多,但是我一直觉得要把这个问题讲清楚还有点难度,今天我来试一试,看能不能和小伙伴们把这个问题梳理清楚。 1. 循环依赖 1.1 什么是循环依赖 首先,什么是循环依赖?这个其实好理解,就是两个 Bean 互相依赖,类似下面这样:…

hello hello 发布于 2023-09-11

聊聊MyBatis缓存机制

前言 MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。…

hello hello 发布于 2023-09-11

Java 21 新特性:String Templates

在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: 使用 + 拼接 使用 StringBuffer 和 SpringBuilder String::format and String::formatted 使用…

hello hello 发布于 2023-09-10
上一页 下一页