Spring源码学习:第1步--在Spring源码中添加最简单的Demo代码

为了最大程度地贴近Spring源码并进行学习,一种比较直接的做法是:直接在Spring源码中加入Demo代码,并进行调试。

参照以前使用Spring的经验,Spring最简单的使用方法是:一个实体类、一个Xml配置文件、再加个测试方法。而对于脱离源码的使用,需要至少引入 spring-context 依赖。于是,猜想,在Spring源码中是否可以直接在 spring-context 模块中添加上述最简单的代码呢?

说干就干,在 spring-context 模块中新建一个实体类(Person,位于 com.cyh 包下)、Xml配置文件(person.xml)、简单的测试方法(PersonTest),结构如下:

至于内容,那就更简单了:

  1. Person中内容为空(因为Spring只要求是个简单的POJO就可以了)
  2. person.xml 文件中,一行配置(最简单的Bean配置,如下图)
  3. PersonTest也是直接通过 ClassPathXmlApplicationContext 读取配置文件,然后获取配置的Bean再简单打印一下

一切正常,控制台顺利打印出下述内容:

person.getClass().getName(): com.cyh.Person

最简单的Demo代码,添加到Spring源码中并成功运行,搞定~

献上自己从GitHub Fork并“践踏”过的Spring源码地址:https://github.com/cyhbyw/spring-framework/tree/Branch_v4.2.5.RELEASE

原文地址:https://www.cnblogs.com/cyhbyw/p/8525441.html

时间: 2024-10-09 15:41:20

Spring源码学习:第1步--在Spring源码中添加最简单的Demo代码的相关文章

猫猫学iOS之二维码学习,快速打开相机读取二维码

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 上一篇文章写了怎么生成二维码,这儿就说说怎么读取吧,反正也很简单,iOS封装的太强大了 步骤呢就是这样: 读取二维码需要导入AVFoundation框架#import <AVFoundation/AVFoundation.h> 1:利用摄像头识别二维码中的内容(模拟器不行). 2:输入(摄像头). 3:由会话将摄像头采集到的二维码图像转换成字符串数据. 4:输

源码学习(一)——模拟Spring MVC

1.准备 1.1创建项maven项目,目录如下 1.2 导包 servlet-api: 模拟springmvc采用的是对同一个servlet进行处理 fastjson: JSONObject 是阿里自己封装的一个map,本人习惯使用,非必需 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

OpenFire源码学习之二十七:Smack源码解析

Smack Smack是一个用于和XMPP服务器通信的类库,由此可以实现即时通讯和聊天.Android中开发通讯APP也可以使用这个包.关于smack的中文开发文档,目前网上也有很多. 下面本,将从源码中分析smack的几个案例. 连接 关于smack的Connection是连接XMPP服务器的默认实现.他有两个构造函数,一个是XMPPConecttion(String) 接收服务器地址名的参数.这个是默认的比较常用的构造方法. l 查找一个DNS的SRC,首先需要找到它精确的服务器地址和端口默

Spring Boot 框架学习 (一)配置并运行Spring Boot 框架

下载开发工具: 下载完成打开以后,第一步检查环境 查看jdk是否配置: 接着一定要注意,maven通常情况下它是没有给你配置的,要自行配置: 右键新建: 然后依赖选择web.跟Mybatis就行了. 创建好项目后,会发现自带了这个Application.java,这个文件就是用来启动整个项目的. 不同于SpringMVC,SpringBoot它默认自带了一个内嵌的tomcat服务器. 所以只需要右键,run-->java application,项目就启动起来了. 这里就不需要再配置一个外置的s

我的angularjs源码学习之旅3——脏检测与数据双向绑定

前言 为了后面描述方便,我们将保存模块的对象modules叫做模块缓存.我们跟踪的例子如下 <div ng-app="myApp" ng-controller='myCtrl'> <input type="text" ng-model='name'/> <span style='width: 100px;height: 20px; margin-left: 300px;'>{{name}}</span> </di

Swoole源码学习记录(十五)——Timer模块分析

swoole版本:1.7.7-stable Github地址:点此查看 1.Timer 1.1.swTimer_interval_node 声明: // swoole.h 1045-1050h typedef struct _swTimer_interval_node { struct _swTimerList_node *next, *prev; struct timeval lasttime; uint32_t interval; } swTimer_interval_node; 成员 说明

spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:InternalResourceViewResolver讲解 2:自动配置静态

spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:自定义消息转换器 本文是<凯哥陪你学系列-框架学习之spring boot框架

Quartz学习总结(1)——Spring集成Quartz框架

一.Quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序.Jobs可以做成标准的Java组件或 EJBs.Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz 允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,