Spring框架专栏
文章平均质量分 87
基于Spring5.x版本分析Spring核心原理,没有太多基础细节,主要关注架构、设计思路和源码。
IT BOY
这个作者很懒,什么都没留下…
展开
-
00. Spring框架学习开篇
终于要开始整理Spring框架的学习笔记了。很久以前,就一直想要学习Spring的源码,但是尝试了几次最终都败北了。都说Spring源码经典,但说实话学习起来并不容易,结构复杂,源代码庞大,需要花费大量时间及精力去思考和总结,很容易迷失自己。在庞大的代码库中,很容易纠结于细节,越陷越深,最终感受到无尽的绝望而放弃。在前几次尝试中,我就是犯了这样的错误,感觉读不完的源码,最终没有坚持下去。其实,在源码的学习中,要关注于主干和整体设计思维,而不要过多纠结于细节。当感觉越陷越深就果断放弃这..原创 2021-05-06 21:39:02 · 236 阅读 · 0 评论 -
01. Spring编程思想
01 Spring编程思想Pt1 Spring设计初衷我基本算是从Struts2时代开始软件开发的,虽然周围接触的还有很多Struts1时代遗留的产物,但是Struts2 + Hibernate已经成为了主流的搭配,后来没过多久Spring开始流行,MVC大行其道,SSH组合成为风靡一时的Java开发框架。那时候要在SSH框架中集成各种组件,都要自己进行装配,也没有JdbcTemplate,每个项目要自己写很多模板代码,更不用说用Servlet开发的年代了。程序员不只要考虑业务代码的实现,...原创 2021-05-07 22:33:59 · 289 阅读 · 0 评论 -
02. Spring版本命名规范
目录03. Spring版本命名规范Pt1 Semantic Versioning 2.0.0Pt1.1 摘要Pt1.2 规范Pt2 常用修饰词Pt3 Spring版本修饰词03. Spring版本命名规范无论是Jar包还是服务,越来越多都是基于版本号来发布。我现在的公司里,项目中的版本命名风格各异,或者可以理解为很混乱,拿到别人的Maven坐标都不知道是beta版本、测试版本还是最终版本,很多人用snapshot做生产版本。所以,统一的版本命名规范非常重要,学习Spring原创 2021-05-06 22:23:18 · 662 阅读 · 0 评论 -
03.Spring5系统架构
目录03 Spring5系统架构Pt1 Core ContainerPt2 AOP and InstrumentationPt3 MessagingPt4 Data Access/IntegrationPt5 WebPt6 Test附录:参考资料03 Spring5系统架构基于Spring 5.3.4版本来说,包含了22个模块,模块可以单独存在,也可以集合多个模块存在。这些模块从大类上可以分为Core Container(核心容器),Data Access/Integ原创 2021-05-06 22:52:48 · 231 阅读 · 0 评论 -
04. Spring注解详解
04 Spring注解详解Pt1 发展历史(1) Spring Framework 1.x 注解驱动启蒙时代从Spring Framework 1.2.0版本开始,开始支持Annotation,虽然框架层面均已经支持@managedResource和@Transactional等注解,但主要还是以XML配置为准。(2) Spring Framework 2.x 注解驱动过渡时期Spring Framework 2.0在Anonotation支持方面添加了新的成员,@Requi...原创 2021-05-07 22:55:35 · 303 阅读 · 3 评论 -
05. 手写Spring核心框架
目录05 手写Spring核心框架Pt1 手写IoC/DIPt1.1 流程设计Pt1.2 基础配置application.propertiespom.xmlweb.xmlPt1.3 注解定义@MyController@MyService@MyAutowired@[email protected] 核心代码DispatcherServletApplicationContextBeanDefinition原创 2021-05-07 23:20:36 · 4762 阅读 · 32 评论 -
06. 基于Gradle搭建Spring环境
目录06 基于Gradle搭建Spring环境Pt1 资源准备Pt1.1 安装GradlePt1.2 IDEA配置Pt1.3 导入源码Pt2 构建源码Pt2.1 Gradle BuildPt2.2 Idea Build ProjectPt3 验证Pt4 采坑分享Pt4.1 IDEA和Gradle版本不匹配Pt4.2 多余的插件Pt4.3 程序包jdk.jfr不存在06 基于Gradle搭建Spring环境Pt1 资源准备 IntelliJ I原创 2021-05-07 23:33:02 · 2094 阅读 · 5 评论 -
07. Spring IoC源码解析
07 Spring IoC源码解析目录Pt1 IoC 和 DIPt2 IoC容器核心类Pt2.1 ApplicationContextPt2.2 BeanFactoryPt2.3 Environment(1) Profile(2) PropertiesPt2.4 ResourceLoaderPt2.5 BeanDefinitionPt2.6 BeanDefinitionReaderPt2.7 BeanDefinitionHolderPt2.8 Resour原创 2021-05-09 21:15:50 · 467 阅读 · 1 评论 -
09. Spring MVC源码解析
09 Spring MVC源码解析目录09 Spring MVC源码解析Pt1 Spring MVC架构Pt1.1 ServletPt1.2 Servlet MVCPt1.3 Spring MVCPt2 Spring MVC九大组件Pt2.1 HandlerMappingPt2.2 HandlerAdapterPt2.3 HandlerExceptionResolverPt2.4 ViewResolverPt2.5 RequestToViewNameTrans原创 2021-05-09 21:49:42 · 567 阅读 · 3 评论 -
08. Spring DI源码解析
08 Spring DI源码解析目录08 Spring DI源码解析Pt1 DI核心类库Pt1.1 FactoryBeanPt1.2 ObjectFactoryPt1.3 BeanWrapperPt1.4 BeanDefinitionBeanDefinitionAbstractBeanDefinitionRootBeanDefinitionChildBeanDefinitionGenericBeanDefinitionPt2 循环依赖Pt2.1 什么是原创 2021-05-12 20:42:24 · 472 阅读 · 2 评论 -
10. Spring AOP源码解析
10 Spring AOP源码解析目录10 Spring AOP源码解析Pt1 Spring AOP基础知识Pt1.1 AOP核心概念Pt1.2 AOP切点配置规则(1) execution(2) within(3) argsPt2 Spring AOP使用示例Pt2.1 AOP日志(XML)pom.xmlspring.xml配置AOP信息加载spring.xml定义切面定义Controller运行ControllerPt2.2 JDBC(原创 2021-05-09 22:22:53 · 1236 阅读 · 11 评论 -
11. Spring5新特性
11 Spring5新特性目录11 Spring5新特性Pt1 升级到Java SE 8 和Java EE 7Pt2 反应式编程模型Pt3 支持函数式编程Pt4 对HTTP/2 支持Pt5 Kotlin 和Spring WebFluxPt6 使用Lambda 表达式注册BeanPt7 包清理和弃用Pt8 使用JUnit 5 执行条件和并发测试参考资料Spring 5 于2017 年9 月发布了通用版本(GA),它标志着自2013 年12 月以来第一个主要Spr原创 2021-05-09 22:25:06 · 207 阅读 · 1 评论 -
12. 高频面试题
12 高频面试题目录12 高频面试题Pt1 什么是Spring 框架?Spring 框架有哪些主要模块?Pt2 使用Spring 框架能带来哪些好处?Pt3 什么是IOC?什么是DI?Pt4 在Java中依赖注入有哪些方式?Pt5 BeanFactory 和ApplicationContext 有什么区别?Pt6 Spring 提供几种配置方式来设置元数据?Pt7 如何使用XML 配置的方式配置Spring?Pt8 Spring 提供哪些配置形式?Pt9 怎样用注原创 2021-05-09 22:31:23 · 291 阅读 · 1 评论 -
13. Spring收尾
Spring源码的章节到这里就结束了。这两天我看到评论里很多人说手写部分跑不起来,我把一些关联文件都贴出来,大家可以参照下。在我本地运行时没有什么问题的,如果有问题,可以再提出来具体分析。我本地的settings.xml<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributo..原创 2021-05-12 20:55:40 · 345 阅读 · 1 评论