目录

第一章 源码安装


文章目录

  • 目录
  • 前言
  • 一、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 源码阅读笔记-从浅到深的解析相关推荐

  1. Spring源码阅读笔记(一):整体架构与核心技术

    本篇的主要是根据Spring的官方文档加以整理,旨在理解Spring的整体架构与核心技术的基本概念,建立Spring的基本模型. 1. Spring整体架构 Spring框架是一种分层架构,它包含了一 ...

  2. spring源码阅读笔记09:循环依赖

    前面的文章一直在研究Spring创建Bean的整个过程,创建一个bean是一个非常复杂的过程,而其中最难以理解的就是对循环依赖的处理,本文就来研究一下spring是如何处理循环依赖的. 1. 什么是循 ...

  3. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  4. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

  5. 代码分析:NASM源码阅读笔记

    NASM源码阅读笔记 NASM(Netwide Assembler)的使用文档和代码间的注释相当齐全,这给阅读源码 提供了很大的方便.按作者的说法,这是一个模块化的,可重用的x86汇编器, 而且能够被 ...

  6. spring源码阅读(3)-- 容器启动之BeanFactoryPostProcessor

    接着上文<spring源码阅读(2)-- 容器启动之加载BeanDefinition>,当spring加载完所有BeanDefinition时,并不会马上去创建bean,而是先配置bean ...

  7. CI框架源码阅读笔记4 引导文件CodeIgniter.php

    到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http:// ...

  8. Yii源码阅读笔记 - 日志组件

    2015-03-09 一 By youngsterxyf 使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category); Yii: ...

  9. AQS源码阅读笔记(一)

    AQS源码阅读笔记 先看下这个类张非常重要的一个静态内部类Node.如下: static final class Node {//表示当前节点以共享模式等待锁static final Node SHA ...

最新文章

  1. 二值logit模型的适用条件_一文读懂条件Logistic回归
  2. android:HTTP通信 .
  3. mysql排序空的放后面_mysql排序让空值NULL排在数字后边-Fun言
  4. Atitit main函数的ast分析  数组参数调用的ast astview解析
  5. 手机之家在线签名_选择苹果企业签名的原因有哪些?
  6. Android Loader 异步加载详解一:基础概念
  7. csadcascascsacsa
  8. 管理之道(三) - 不要吝惜赞美
  9. 2020 最烂密码 TOP 200 大曝光,一不小心就中枪了
  10. 双栏模板图片标题无法居中_没想到吧,只用一张图片,你就可以做一份PPT!
  11. 一个男人具备什么样的条件,才能结婚?
  12. java中synized_ConcurrentHashMap和Collection s.SynizedMap(Map)
  13. Hive练习求给出2017年1月的新客数
  14. FreeMarker中获取Map内容
  15. 【测试沉思录】5. 测试人员如何快速熟悉新业务?
  16. RabbitVCS安装
  17. 文件服务器 协同编辑,在 Office 365 中协同共享一同编辑文件
  18. Android 接入支付宝在手机未安装支付宝客户端的情况下掉不起支付宝sdk的h5页面
  19. QT使用log4cpp日志库
  20. Brpc 服务端收包源码分析(一)

热门文章

  1. 下载网页视频的方法:网站视频下载方法技术分享 或者用遨游5浏览器(下载视频)...
  2. 如何实现和破解网站上禁止复制粘贴的其中一种方法
  3. 怎样预防雏鹅痛风 鹅痛风是什么原因引起的 雏鹅病毒性痛风 鹅痛风病的预防
  4. 支付宝免签约 免手续费 支付接口API
  5. 【摄影图集】————1、建筑
  6. Python 结束程序——如何在终端中退出 Python 程序
  7. 2022年千元入耳式耳机推荐?高性价比蓝牙耳机推荐
  8. windows系统的ODBC数据源创建
  9. 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)
  10. Nacos 的AP和CP模式