1 分钟快速上手 Spring Cache
如果你现在有一个现成的工程,你想给你工程的某个接口增加缓存,再不可以分布式缓存的情况下,你可以通过以下两步完成 Spring Cache
接入:
如果你现在有一个现成的工程,你想给你工程的某个接口增加缓存,再不可以分布式缓存的情况下,你可以通过以下两步完成 Spring Cache
接入:
AOP 称为面向切面编程,其底层原理就是动态代理;JAVA 中比较常见的动态代理有两种,分别是 JDK 动态代理和 CGLIB 动态代理,这点从 Spring Aop 的 AopProxy 的实现就可以得出验证。
1 | AopProxy |
Spring 作为 Java 应用领域最牛 X 的基础框架产品,在对于一些版本变更导致的兼容性问题的处理上一直被诟病,对于这两种代理方式的选择上,Spring 不同版本存在一定的差异,这也是本文产生的一个原因。
关于 BeanPostProcessor 各位一定不陌生,在 SpringBoot 源码系列-Bean 的生命周期与扩展 这篇文章中,我有介绍过 bean 的创建流程及相关扩展,就有提到 BeanPostProcessor,包括它的作用时机及如何使用,这篇文章提到的这种属于比较常规的流程,因此在绝大多数场景下,都是符合我们认知的。但是最近在排查一个问题时,发现在某些场景下,BeanPostProcessor 不生效了…
springSession
是 spring
旗下的一个项目,把 servlet
容器实现的 httpSession
替换为springSession
,专注于解决session
管理问题。可简单快速且无缝的集成到我们的应用中。本文通过一个案例,使用SpringBoot
来集成 SpringSession
,并且使用Redis
作为存储来实践下SpringSession
的使用。
我们知道,HttpServletRequset
和HttpServletResponse
是Servlet
标准所指定的Java
语言与Web
容器进行交互的接口。接口本身只规定java
语言对web
容器进行访问的行为方式,而具体的实现是由不同的web
容器在其内部实现的。
那么在运行期,当我们需要对HttpServletRequset
和HttpServletResponse
的默认实例进行扩展时,我们就可以继承HttpServletRequestWrapper
和HttpServletResponseWrapper
来实现。
上一篇文章 SpringSession:集成SpringBoot 中介绍了如何在SpringBoot
中来集成 SpringSession
,整个过程非常简单,同时也简单分析了下SpringSession
的作用原理。继上一篇实践之后,本文主要来分析 SpringSession
的原理。
在之前的文章中已经对SpringSession
的功能结构,请求/响应重写等做了介绍。本文将继续来介绍下SpringSession
中存储部分的设计。存储是分布式session
中算是最核心的部分,通过引入三方的存储容器来实现session
的存储,从而有效的解决session
共享的问题。
原文:https://blog.csdn.net/sinat_25518349/article/details/85042029
首先需求在这里说明下,SpringSession的版本迭代的过程中肯定会伴随着一些类的移除和一些类的加入,目前本系列使用的版本是github上对象的master的代码流版本。如果有同学对其他版本中的一些类或者处理有疑惑,欢迎交流。
本篇将来介绍下SpringSession
中两种sessionId
解析的策略,这个在之前的文章中其实是有提到过的,这里再拿出来和SpringSession
中Cookie
相关策略一起学习下。
前一篇 聊一聊 Spring 中的扩展机制(一) 中聊到了ApplicationListener
、ApplicationContextAware
、BeanFactoryAware
三种机制。本篇将介绍 NamespaceHandler
的扩展使用。
相信很多小伙伴对于这几个类都不陌生,基本基于java
实现的RPC
框架都会使用,比如 Dubbo , SOFARpc 等。本文先从几个小demo
入手,了解下基本的概念和编程流程,然后分析下 SOFARpc
中是如何使用的。
之前 Spring 源码系列文章中大多是底层源码的分析,通过源码可以让我们能够清晰的了解 Spring 到底是什么,而不是停留于表面的认知。比如当我们要使用 @Autowired 注解时,可以拿到我们想要的 bean ,但是为什么可以是值得思考的。– 关于阅读源码
Spring源码的阅读结合日常的使用,可以帮助我们更好的掌握这个庞大的技术体系,实际的开发工作中有很多地方可以借鉴它的一些思想来帮助我们更好的实现自己的业务逻辑。本篇将以扩展点为切入点,来了解下在Spring生命周期中扩展Spring中的Bean功能。