1 分钟快速上手 Spring Cache

如果你现在有一个现成的工程,你想给你工程的某个接口增加缓存,再不可以分布式缓存的情况下,你可以通过以下两步完成 Spring Cache 接入:

阅读更多

SpringAop 代理模式及 AopContext 问题小记

AOP 称为面向切面编程,其底层原理就是动态代理;JAVA 中比较常见的动态代理有两种,分别是 JDK 动态代理和 CGLIB 动态代理,这点从 Spring Aop 的 AopProxy 的实现就可以得出验证。

1
2
3
AopProxy
--- JdkDynamicAopProxy
--- CglibAopProxy

Spring 作为 Java 应用领域最牛 X 的基础框架产品,在对于一些版本变更导致的兼容性问题的处理上一直被诟病,对于这两种代理方式的选择上,Spring 不同版本存在一定的差异,这也是本文产生的一个原因。

阅读更多

聊一聊 BeanPostProcessor 不生效

关于 BeanPostProcessor 各位一定不陌生,在 SpringBoot 源码系列-Bean 的生命周期与扩展 这篇文章中,我有介绍过 bean 的创建流程及相关扩展,就有提到 BeanPostProcessor,包括它的作用时机及如何使用,这篇文章提到的这种属于比较常规的流程,因此在绝大多数场景下,都是符合我们认知的。但是最近在排查一个问题时,发现在某些场景下,BeanPostProcessor 不生效了…

阅读更多

SpringSession系列-集成SpringBoot

springSessionspring 旗下的一个项目,把 servlet 容器实现的 httpSession替换为springSession,专注于解决session管理问题。可简单快速且无缝的集成到我们的应用中。本文通过一个案例,使用SpringBoot来集成 SpringSession,并且使用Redis作为存储来实践下SpringSession 的使用。

阅读更多

SpringSession系列-请求与响应重写

我们知道,HttpServletRequsetHttpServletResponseServlet标准所指定的Java语言与Web容器进行交互的接口。接口本身只规定java语言对web容器进行访问的行为方式,而具体的实现是由不同的web容器在其内部实现的。

那么在运行期,当我们需要对HttpServletRequsetHttpServletResponse的默认实例进行扩展时,我们就可以继承HttpServletRequestWrapperHttpServletResponseWrapper来实现。

阅读更多

SpringSession系列-存储机制之Redis&Map

在之前的文章中已经对SpringSession的功能结构,请求/响应重写等做了介绍。本文将继续来介绍下SpringSession中存储部分的设计。存储是分布式session中算是最核心的部分,通过引入三方的存储容器来实现session的存储,从而有效的解决session共享的问题。

阅读更多

SpringSession系列-sessionId解析和Cookie读写策略

原文:https://blog.csdn.net/sinat_25518349/article/details/85042029

首先需求在这里说明下,SpringSession的版本迭代的过程中肯定会伴随着一些类的移除和一些类的加入,目前本系列使用的版本是github上对象的master的代码流版本。如果有同学对其他版本中的一些类或者处理有疑惑,欢迎交流。

本篇将来介绍下SpringSession中两种sessionId解析的策略,这个在之前的文章中其实是有提到过的,这里再拿出来和SpringSessionCookie相关策略一起学习下。

阅读更多

聊一聊 Spring 中的扩展机制之 NamespaceHandler

原文:https://juejin.cn/post/6844903665262657544

前一篇 聊一聊 Spring 中的扩展机制(一) 中聊到了ApplicationListenerApplicationContextAwareBeanFactoryAware三种机制。本篇将介绍 NamespaceHandler 的扩展使用。

相信很多小伙伴对于这几个类都不陌生,基本基于java实现的RPC框架都会使用,比如 Dubbo , SOFARpc 等。本文先从几个小demo入手,了解下基本的概念和编程流程,然后分析下 SOFARpc 中是如何使用的。

阅读更多

聊一聊 Spring 中的扩展机制之 Listener & Awre

之前 Spring 源码系列文章中大多是底层源码的分析,通过源码可以让我们能够清晰的了解 Spring 到底是什么,而不是停留于表面的认知。比如当我们要使用 @Autowired 注解时,可以拿到我们想要的 bean ,但是为什么可以是值得思考的。– 关于阅读源码

Spring源码的阅读结合日常的使用,可以帮助我们更好的掌握这个庞大的技术体系,实际的开发工作中有很多地方可以借鉴它的一些思想来帮助我们更好的实现自己的业务逻辑。本篇将以扩展点为切入点,来了解下在Spring生命周期中扩展Spring中的Bean功能。

阅读更多