1. 创建Maven项目
1.1 主项目
1.2 创建子模块
2.案例开发
2.1 引入依赖(依赖直接复制代码块即可)
<dependencies>
<!-- spring-context依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<!--junit -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.6.2</version>
</dependency>
</dependencies>
2.2 创建类与方法
2.3 创建并配置Spring配置文件
2.4 创建测试类进行测试
代码块
public class TestUser {
@Test
public void TestUserObject(){
//加载配置文件创建对象
ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml");
//第一次获取创建对象并调用方法
User user=(User) context.getBean("user");
System.out.println(user);
user.add();
//第二次获取创建对象并调用方法
User user1=(User) context.getBean("user");
System.out.println(user1);
user1.add();
//自己创建对象并调用方法
User user2=new User();
System.out.println(user2);
user2.add();
}
}
2.5 运行测试
PS:因为前面的bean没有设置scope属性,所以默认单实例singleton,在IOC容器初始化的时候创建 ,所以不管获取几次都只有一个实例;若设置scope属性为多实例prototype,那么就会在获取bean的时候创建,每次获取都是一个新的
3.分析对象是如何创建的
Spring通过反射创建对象,首先扫描配置文件(bean.xml),然后通过类名(bean标签的Class属性创建对象,将对象存在一个Map里)
3.1 反射创建对象的过程如下:
3.2 对象存储的Map
key:就是bean标签的ID
value:就是类的定义