spring 源码阅读笔记-从浅到深的解析
目录
第一章 源码安装
文章目录
- 目录
- 前言
- 一、spring源码下载
- 二、构建源码及使用
- 1.源码构建
- 2.使用构建源码
- 总结
前言
由于spring的源码常常以语言和高深莫测的地位存在,而源码解析少之又少,遂此系列文章出现,本系列将使用浅显的语言和图解进行描述。但是由于技术的性质,此系列依旧对理解能力有要求,面向使用过spring的开发者
全是干货,带水的不要!好戏开场了!
一、spring源码下载
首先需要下载源代码
地址:https://github.com/spring-projects/spring-framework
本次使用的Spring版本:5.3.8
导入项目到IDEA,直接使用open打开即可,会直接导入,使用Gradle管理依赖。
向build.gradle添加仓库
repositories {mavenCentral()maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}maven { url "https://repo.spring.io/libs-spring-framework-build" }}
配置完成之后点击刷新,然后等待依赖导入,大概时间30min。
二、构建源码及使用
1.源码构建
构建源码其实就是build,依旧使用gradle,在构建源码的时候需要先将
spring-aspects模块unload,此模块会影响构建,暂时先取消加载。
然后再重复构建一次,此时最终显示build sucess
2.使用构建源码
代码如下(示例):
package com.frame.test;/*** @program: spring* @description: 1* @author: WFX1024* @create: 2021-06-16 14:13**/
public class Entry1 {private String name;private String id;public Entry1(String name, String id) {this.name = name;this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}
}
package com.frame.test;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @program: spring* @description: 1* @author: WFX1024* @create: 2021-06-16 14:12**/
@Configuration
public class TmpConfig {@Beanpublic Entry1 entry1(){return new Entry1("zszxz","123");}
}
package com.frame.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;/*** @program: spring* @description: 测试* @author: WFX1024* @create: 2021-06-16 14:06**/
public class Test {public static void main(String[] args) {// 获取容器ApplicationContext ac =new AnnotationConfigApplicationContext(TmpConfig.class);// 获取 beanEntry1 user = (Entry1) ac.getBean("entry1");System.out.println(user.toString());}
}
在主方法内测试常规的spring bean能力,运行结果正常即可
总结
至此就完成了源码的构建,源码的使用。下一章节我们开始走读源码。
spring 源码阅读笔记-从浅到深的解析相关推荐
- Spring源码阅读笔记(一):整体架构与核心技术
本篇的主要是根据Spring的官方文档加以整理,旨在理解Spring的整体架构与核心技术的基本概念,建立Spring的基本模型. 1. Spring整体架构 Spring框架是一种分层架构,它包含了一 ...
- spring源码阅读笔记09:循环依赖
前面的文章一直在研究Spring创建Bean的整个过程,创建一个bean是一个非常复杂的过程,而其中最难以理解的就是对循环依赖的处理,本文就来研究一下spring是如何处理循环依赖的. 1. 什么是循 ...
- Transformers包tokenizer.encode()方法源码阅读笔记
Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode
- 源码阅读笔记 BiLSTM+CRF做NER任务 流程图
源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...
- 代码分析:NASM源码阅读笔记
NASM源码阅读笔记 NASM(Netwide Assembler)的使用文档和代码间的注释相当齐全,这给阅读源码 提供了很大的方便.按作者的说法,这是一个模块化的,可重用的x86汇编器, 而且能够被 ...
- spring源码阅读(3)-- 容器启动之BeanFactoryPostProcessor
接着上文<spring源码阅读(2)-- 容器启动之加载BeanDefinition>,当spring加载完所有BeanDefinition时,并不会马上去创建bean,而是先配置bean ...
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http:// ...
- Yii源码阅读笔记 - 日志组件
2015-03-09 一 By youngsterxyf 使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category); Yii: ...
- AQS源码阅读笔记(一)
AQS源码阅读笔记 先看下这个类张非常重要的一个静态内部类Node.如下: static final class Node {//表示当前节点以共享模式等待锁static final Node SHA ...
最新文章
- 二值logit模型的适用条件_一文读懂条件Logistic回归
- android:HTTP通信 .
- mysql排序空的放后面_mysql排序让空值NULL排在数字后边-Fun言
- Atitit main函数的ast分析 数组参数调用的ast astview解析
- 手机之家在线签名_选择苹果企业签名的原因有哪些?
- Android Loader 异步加载详解一:基础概念
- csadcascascsacsa
- 管理之道(三) - 不要吝惜赞美
- 2020 最烂密码 TOP 200 大曝光,一不小心就中枪了
- 双栏模板图片标题无法居中_没想到吧,只用一张图片,你就可以做一份PPT!
- 一个男人具备什么样的条件,才能结婚?
- java中synized_ConcurrentHashMap和Collection s.SynizedMap(Map)
- Hive练习求给出2017年1月的新客数
- FreeMarker中获取Map内容
- 【测试沉思录】5. 测试人员如何快速熟悉新业务?
- RabbitVCS安装
- 文件服务器 协同编辑,在 Office 365 中协同共享一同编辑文件
- Android 接入支付宝在手机未安装支付宝客户端的情况下掉不起支付宝sdk的h5页面
- QT使用log4cpp日志库
- Brpc 服务端收包源码分析(一)
热门文章
- 下载网页视频的方法:网站视频下载方法技术分享 或者用遨游5浏览器(下载视频)...
- 如何实现和破解网站上禁止复制粘贴的其中一种方法
- 怎样预防雏鹅痛风 鹅痛风是什么原因引起的 雏鹅病毒性痛风 鹅痛风病的预防
- 支付宝免签约 免手续费 支付接口API
- 【摄影图集】————1、建筑
- Python 结束程序——如何在终端中退出 Python 程序
- 2022年千元入耳式耳机推荐?高性价比蓝牙耳机推荐
- windows系统的ODBC数据源创建
- 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)
- Nacos 的AP和CP模式