Spring
杨小帆_
沉下心来做技术
展开
-
Spring 源码解析——SpringMVC 源码解析(@Controller 和 @RequestMapping 的作用机制)(四)
目录一、概述二、功能简介2.1RequestMappingHandlerMapping2.2RequestMappingHandlerAdapter三、类继承树3.1RequestMappingHandlerMapping3.2RequestMappingHandlerAdapter四、源码解析4.1 扫描 Handler 并将其注册为映射关系(Requ...原创 2019-10-14 18:46:59 · 1173 阅读 · 0 评论 -
Spring 源码解析——IOC 源码解析(BeanPostProcessor 系列之 AutowiredAnnotationBeanPostProcessor)(五)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在前面的一篇博文中我们已经分析了ApplicationContextAwareProcessor 这个 BeanPostProcessor实现类,在这篇博文中我们将继续前行来分析 Spring 当中另一个至关重要的AutowiredAnnotationBeanPostProcessor,这...原创 2019-09-30 19:50:56 · 1459 阅读 · 2 评论 -
Spring 源码解析——AOP 源码解析(BeanPostProcessor 系列之 AbstractAutoProxyCreator)(一)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在前面的两篇关于BeanPostProcessor 的系列博文中我们分别分析了有关属性自动注入以及 *Aware 相关接口的代码实现原理,这两个部分从一定程度上来说更贴合于 Spring 当中的 IOC 功能,在这篇文章中我们会来分析一个新的 BeanPostProcessor,即Abstr...原创 2019-10-03 17:39:56 · 967 阅读 · 0 评论 -
Spring 源码解析——IOC 源码解析(BeanPostProcessor 系列之体系概述)(六)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在前面的 BeanPostProcessor 系列博文中我们已经对几个常用的 BeanPostProcessor 实现类的源码进行了解析,但是在分析的过程中我慢慢的发现因为缺少对 BeanPostProcessor 整个体系的认知和了解,导致对每一个 BeanPostProcessor 实现类的...原创 2019-10-04 18:43:52 · 687 阅读 · 0 评论 -
Spring 源码解析——IOC 源码解析(BeanPostProcessor 系列之 InitDestroyAnnotationBeanPostProcessor)(七)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在前面的博文中我们已经陆陆续续的分析了一个比较核心的 BeanPostProcessor 实现类,并对 BeanPostProcessor 的整个体系进行了一个大概的梳理,在本篇博文中我们将继续探索另一个与我们经常使用的 @PostConstruct 和 @PreDestroy 注解密切相关的 ...原创 2019-10-05 15:04:14 · 2191 阅读 · 2 评论 -
Spring 源码解析——SpringMVC 源码解析(Spring 整合 Spring MVC )(一)
目录一、概述二、涉及技术2.1 SPI 机制2.2 Servlet 中的ServletContainerInitializer 接口2.3Spring MVC 中的层级容器(Context Hierarchy)及其配置三、源码解析(基于注解配置)3.1Spring Web 容器初始化器(示例代码仅提供思路引导)3.2调用 Spring Web 容器初始化器...原创 2019-10-09 15:13:51 · 895 阅读 · 1 评论 -
Spring 源码解析——SpringMVC 源码解析(SpringMVC 处理请求流程)(二)
目录一、概述二、流程图(第一版)三、源码分析3.1 DispatcherServlet 接收请求3.2 DispatcherServlet 处理请求3.3 DispatcherServlet 分发请求(核心处理逻辑)3.4 HandlerAdapter 调用流程(RequestMappingHandlerAdapter)—— 调用处理器方法3.5HandlerA...原创 2019-10-11 21:05:25 · 506 阅读 · 0 评论 -
Spring 源码解析——SpringMVC 源码解析(初探 HandlerMapping、HandlerExecutionChain 和 HandlerAdapter)(三)
目录一、概述二、功能介绍和部分源码解析2.1 HandlerMapping2.2 HandlerExecutionChain2.3 HandlerAdapter三、内容总结写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述通过上一篇博文中对SpringMVC 处理请求流程的源码分析,已经对 SpringMVC 中...原创 2019-10-12 20:11:55 · 712 阅读 · 1 评论 -
Spring 源码解析——IOC 源码解析(BeanPostProcessor 系列之 ApplicationContextAwareProcessor)(四)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述这是已经 Spring 源码解析的第四篇博文了,在前面的博文中我们已经通过源码大致分析过了 Spring 当中 Bean 实例化和初始化的流程,并且详细分析了 Spring 当中解决单例 Bean 循环依赖问题的方案,在前面的博文中我们跳过了很多 Spring 实例化和初始化过程中的细节代码,这...原创 2019-09-28 20:05:12 · 533 阅读 · 0 评论 -
Spring 源码解析——IOC 源码解析(单例 Bean 的循环依赖解决方案)(三)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在上一篇博文中我们已经重点分析了 Bean 的实例化和初始化的主体流程,在这篇博文中我们会在其基础上进一步探究 Bean 的初始化过程,并通过源码来分析在 Spring 中是怎样解决Bean 循环依赖问题的。但是在这里我们需要明确的一点是我们在这里所分析的是 Bean 的作用范围为单例(S...原创 2019-09-27 19:03:44 · 441 阅读 · 0 评论 -
Spring 集成 Redis 实现商品信息内存缓存(Redis 数据缓存分析)
一、Redis 内存数据库简介Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets...原创 2019-09-03 16:00:24 · 3523 阅读 · 0 评论 -
Java 秒杀系统性能优化(初始化篇)
一、背景介绍秒杀系统顾名思义是在有限的时间里售出指定数量的商品,这个功能在网上购物项目中是很常见的,同时也是很多大厂面试出现频率很高的知识点,之前自己在阅读面经和学习一些框架和中间件的时候也经常遇到这个功能,如何保证在高并发的情况下不出现超买超卖的情况,如何保证系统能进行比较快速的操作响应,这都是在设计秒杀系统的时候经常需要考虑的问题。在结束了暑期的腾讯实习后,自己对技术有了更多地思考,同...原创 2019-09-07 17:26:50 · 687 阅读 · 1 评论 -
从零开始搭建单服务器 zookeeper 注册中心(Ubuntu虚拟机 + SpringBoot)
一、Ubuntu 虚拟机安装为了便于调试,因此我在这里选择使用虚拟机作为远程服务器来实现注册中心,其中对于虚拟的操作系统选择一般是有 Ubuntu 或者 CentOS,因为之前在云服务器上安装的就是 CentOS 系统,所以这里就选择了使用 Ubuntu 。1.1 虚拟机对于虚拟机的选择因为我刚开始是尝试使用 Win 自带的 hyper-v ,但是在尝试多次之后都以莫名其妙的原因失败了...原创 2019-09-10 19:50:27 · 264 阅读 · 0 评论 -
Java 秒杀系统性能优化(zookeeper 实时同步集群 JVM 缓存 )
一、概述在该系列的前面几篇博文中我们已经分析过了使用不同的技术对初始版的秒杀系统进行性能优化,同时在上一篇博文中我们使用了 JVM 缓存技术来对系统进行优化。在单机的情况下我们使用 JVM 缓存技术来对已售罄的商品进行缓存是没有问题的,可以在一定程度上优化系统的性能,并且在代码抛出异常时我们也只需进行简单的回滚(移除列表中的商品)即可。但是当我们的系统需要应对更多的流量时,我们可能会采用集...原创 2019-09-12 19:49:33 · 2162 阅读 · 2 评论 -
Spring 源码解析——@Configuration 作用及其实现原理(一)
目录一、概述二、相关技术2.1 @Configuration 作用2.2 BeanDefinition 和BeanDefinitionMap2.3 CGLIB 简介三、源码解析3.1 概述3.2register(Bean 注册流程)3.3 refresh(BeanClass 的替换)四、内容总结写文章不易,转载请标明出处。同时,如果你喜欢我的文...原创 2019-09-21 20:29:49 · 3595 阅读 · 0 评论 -
Spring 源码解析——IOC 源码解析(Bean 的扫描、注册和实例化)(一)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述在前面的博文中我们已经对 Spring 当中 @Configuration 注解的源码部分进行了大概的分析,但其实在分析 @Configuration 源码的过程中我们已经涉及到了 Spring 的 IOC 流程,大概分析了 Spring 容器对Bean 的注册流程,以及大概了解了 BeanD...原创 2019-09-23 17:52:24 · 559 阅读 · 0 评论 -
Spring 源码解析——IOC 源码解析(聚焦 Bean 实例化和初始化流程)(二)
写文章不易,转载请标明出处。同时,如果你喜欢我的文章,请关注我,让我们一起进步。一、概述本来是想在这篇博文中分析 Spring 解决 Bean 循环依赖的思路和源码, 但是在经过自己的梳理之后发现想讲清楚说明白这个解决的方式着实不容易,因为在它的解决代码是整个嵌入在 Bean 的实例化和初始化的代码之中的,加之上一篇博文中对于 Bean 的实例化和初始化分析比较笼统,所以打算通过这...原创 2019-09-25 21:20:02 · 338 阅读 · 0 评论 -
Spring 集成 Redis 内存缓存实现购物车功能
越努力,越幸运。 一、功能背景在前面博文开源的 “网上购物子系统” 中,存在一个项目的需求,即实现一个购物车功能。对于购物车其主要的功能就是保存用户之前选取的商品以及其对应的购买数量等信息,在用户再次登录或进入网页时可以再次查询到并展示出之前所添加的商品的相关信息,为用户提供一个更加流畅的购物体验,因此这是在许多的类似的在线购物项目中都会实现的一个功能。二、功能分析这个功...原创 2019-08-30 15:07:09 · 2412 阅读 · 0 评论