在上一篇文章中,我费了九牛二虎之力,终于把源码编译好并且导入了eclipse,接下来就准备大刀阔斧的进行源码分析啦,首先得建立一个测试项目。
1、导入源码
这一步其实上面一篇文章已经完成啦,不过这里还是要说明下,导入的时候选的是Existing Projects into Workspace,然后注意
选择的是spring的根文件夹,当然你也可以选择具体项目,但是这样子可能要考虑后面项目之间的依赖问题,当如后如下:
记得注意JDK版本问题和groovy插件问题,具体可以参考我的上一篇文章:https://www.suibibk.com/topic/758756909506363392
2、新建测试项目
我这里建立的测试项目是一个maven项目,当然你也可以建立一个最最最简单的Java Project,结构如下
奇怪为什么会报错呢?难道这理还不能直接用Spring的类,是的,我们需要引入依赖,那引入哪个最好呢,这里建议spring-context,原因如下图
spring-context该有的都有了,所以我们引入这个就可以了,引入后果然不报错了。
3、测试
我们这里因为是研究Spring的源码,所以先从xml配置文件的方式开始,目录结构如上,具体代码如下:
App.java
public class App {
@SuppressWarnings("resource")
public static void main(String[] args) {
//获取上下文对象ApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取实例,配置文件
User user = (User)context.getBean("user");
user.setUsername("suibibk.com");
user.setAge(18);
System.out.println(user);
}
}
User.java
public class User {
private String username;
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [username=" + username + ", age=" + age + "]";
}
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--编写对应的配置信息-->
<bean class="com.suibibk.spring.User" id="user"></bean>
<!-- 开启注解
<context:component-scan base-package="com.suibibk.spring"/>
-->
</beans>
这里也先不开启注解先。
执行代码,输出如下结果:
User [username=suibibk.com, age=18]
完成!