01. Spring IOC容器源码探索之准备工作

工作了这么久,每次去面试都会被问“请谈谈你对Srping IOC的理解吧”,说实话每次都是按照网上面试题里说的,而且说完之后,面试官就把话题转到别的方向上了,说明对我的回答不是很满意,其实自己也知道一些基本的概念,但具体是如何实现的并且里面的细节并不是很熟悉,所以决定好好研究一下Spring的源码,来一探究竟。

一、下载源码

既然要研究源码就要先搞到源码,这一步还是很简单的,毕竟去GitHub随便一搜就能搞到,但这里我要说的是源码的编译,真是让人蛋疼,我下载的源码是Spring 5.2.1版本,发现是用Gradle搞的,而且里面还有个Kotlin啥玩意的,对于长期处于一线搬砖的我完全不知道这俩是干嘛的,好在也不算难搞。

我用的是Idea,编译完成之后试试看能不能查看类图,如果可以的话说明编译成功了。但接下来遇到的问题整整困扰了我两天。那就是自己照着人家的样子,创建了一个module,想用来写自己的测试代码,结果各种报错,最主要的错误就是那个狗*一样的Kotlin,一直提示我不兼容,我更新到最新的1.3.50版本还是不行....

直接说结果吧,在一个月黑风高的夜晚,已经钻被窝的我突然想到是不是我的Idea版本太老了(也不敢升级,毕竟激活也不是走的正常途径),想到这我就立马起床、穿衣、开机,最终还真是这个原因,升级完Idea之后之前的报错就消失了,而我的Idea也从2100年到期变成三个月后到期。

 

二、测试代码

既然开始研究Spirng,第一步肯定就是先搞明白IOC容器,所以我先写了一个十分简单的例子。

1、目录结构

 目录

User类就是用于测试扔到IOC容器管理的测试类

BeanConfiguration类是一个配置类,相当于老版本xml的作用

Application类是程序入口,里面有一个main函数

2、测试代码:

public class User {

	public User(){
		System.out.println("Hello User");
	}


}
@Configuration
public class BeanConfiguration {

	@Bean
	public User user(){
		return new User();
	}
}
public class Application {

	public static void main(String[] args) {

		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConfiguration.class);
		User user = context.getBean(User.class);
		System.out.println(user);
	}

}

如果以上代码执行没问题,那么准备工作算是完事了,接下来就是一步一步Debug,开始研究IOC容器的具体实现过程,希望自己能坚持下去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值