spring源码
一撸向北
啊哈哈,咦嘿嘿,哦呵呵。
展开
-
深入分析Spring MVC
Spring MVC基本概念顾名思义,需要了解m、v、c三个部分的概念,是熟悉和分析springmvc处理过程的首要条件。M部分M指的是model,也就是模型。在springmvc中的职责就是在后端进行页面的最后渲染时提供页面所需要的数据,这里所说的数据不仅仅是后端返回的业务数据,还包括模板引擎中的内置变量和工具类可以总结如下。spring框架中的model(业务数据) M...原创 2018-09-02 02:38:04 · 2668 阅读 · 0 评论 -
@Transactional注解不起作用解决办法及原理分析
Transactional失效场景介绍第一种Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用。例如以下代码。定义一个错误的@Transactional标注实现,修饰一个默认访问符的方法/** * @author zhoujy * @date 2018年12月06日 **/@Componentpublic class Te...原创 2018-12-09 00:21:50 · 39278 阅读 · 7 评论 -
spring源码阅读--IOC容器初始化之Bean实例化、依赖注入原理
在spring容器初始化过程中,在进行了BeanDefinition注册,processor应用等一系列处理之后, 接下来需要对非懒加载的Bean进行初始化处理。容器中的Bean实际初始化的过程在AbstractApplicationContext#refreshAbstractApplicationContext#finishBeanFactoryInitializationDefa...原创 2018-11-28 20:22:16 · 1754 阅读 · 2 评论 -
spring源码阅读--aop实现原理分析
aop实现原理简介首先我们都知道aop的基本原理就是动态代理思想,在设计模式之代理模式中有介绍过这两种动态代理的使用与基本原理,再次不再叙述。这里分析的是,在spring中是如何基于动态代理的思想实现aop的。为了方便了解接下来的源码分析,这里简单化了一个流程图分析aop的基本实现思想。so,基于上面的流程,一步步分析spring源码中的aop实现方式。采用一个简单的aop例子,利用基...原创 2018-12-04 22:34:05 · 8763 阅读 · 2 评论 -
spring源码阅读--IOC容器初始化之Beandefinition注册
经过这阵子对于spring源码的学习,对于spring框架的一些常见概念的实现原理有一定的了解,例如spring核心容器模块、spring aop的实现原理、spring mvc的实现原理、spring声明式事务实现原理等有一定的了解,在此记录下来自己的一些阅读源码经验。spring是一个非常庞大的框架,其中包含许多模块。但是任务模块的基础,都是spring的核心容器模块,所以最先了解的源码部分...原创 2018-11-26 23:37:21 · 438 阅读 · 0 评论 -
spring源码阅读--下载与编译
这里简单介绍如何下载编译spring源码项目,并且导入到idea或者eclipse中。首先是下载spring的源码压缩包,可取去github上面下载,地址:https://github.com/spring-projects/spring-framework,可以通过下载压缩包的方式或者git的方式下载。这里通过压缩包方式进行,下载后解压。安装gradle。spring源码需要使用gr...原创 2018-11-10 11:01:13 · 1010 阅读 · 0 评论 -
spring cloud Ribbon的使用和实现原理
简介这篇文章主要介绍一下ribbon在程序中的基本使用,在这里是单独拿出来写用例测试的,实际生产一般是配置feign一起使用,更加方便开发。同时这里也通过源码来简单分析一下ribbon的基本实现原理。基本使用这里使用基于zookeeper注册中心+ribbon的方式实现一个简单的客户端负载均衡案例。服务提供方首先是一个服务提供方。代码如下。application.properties配...原创 2018-09-26 22:32:41 · 32613 阅读 · 2 评论 -
@ComponentScan源码分析
之前有过一篇文章,介绍@Enable编程模型,其中提到在org.springframework.context.annotation.ConfigurationClassParser#doProcessConfigurationClass方法里面有对配置类上面的@ComponentScan处理的逻辑,文章里面对@ComponentScan的处理逻辑简单带过,着重奖了对@Import的注解处理逻辑,...原创 2018-09-15 13:51:12 · 7146 阅读 · 2 评论 -
spring boot@EnableXXXX注解编程模型分析
@EnableXXXX编程模型在spring boot中,@EnableXXX注解的功能通常是开启某一种功能。根据某些外部配置自动装配一些bean,来达到开启某些功能的目的。光说很抽象,要具体分析。@Enable模型的实现方式基本有3种。一个基本的@Enable注解的模型如下。@Target(ElementType.TYPE)@Retention(RetentionPolicy....原创 2018-09-15 13:42:49 · 1738 阅读 · 0 评论 -
分析spring boot中几种常见的依赖注入问题
最近有空总结一下之前在使用spring boot时遇到过的几种依赖注入时的坑,如果了解spring内部的处理过程,使用起来总是感觉有种迷糊。在分析场景前,需要大概了解一下spring对于bean的实例化过程是需要先注册BeanDefinition信息然后才进行实例化,在org.springframework.context.support.AbstractApplicationContext#r...原创 2018-09-25 00:15:11 · 22495 阅读 · 1 评论 -
深入分析RestController与Controller
@RestController和@Controller注解我们都知道RestController默认都只提供Rest风格接口返回值,针对不需要返回页面的Controller都采用RestController进行注解,下面根据源码简单分析一下两者处理上的区别。@RestController源码如下。@Target(ElementType.TYPE)@Retention(Retent...原创 2018-09-03 12:31:41 · 18632 阅读 · 2 评论 -
spring源码阅读--@Transactional实现原理
@Transactional注解简介@Transactional是spring中声明式事务管理的注解配置方式,相信这个注解的作用大家都很清楚。@Transactional注解可以帮助我们把事务开启、提交或者回滚的操作,通过aop的方式进行管理。通过@Transactional注解就能让spring为我们管理事务,免去了重复的事务管理逻辑,减少对业务代码的侵入,使我们开发人员能够专注于业务层面开发...原创 2018-12-07 00:33:31 · 60789 阅读 · 25 评论