Spring框架的作用:
主要解决了创建对象和管理对象的问题
在使用Spring框架后,当需要某个对象时,直接通过Spring获取此对象即可。
Spring可以保证类的对象的唯一性,使得各个组件出现依赖关系时,不会创建多个相同的对象。
由于Spring会创建很多对象并管理起来,开发者需要时直接获取即可,所以SPring也通常被称为Spring容器
通过Spring创建并管理对象–组件扫描
Spring提供了组件扫描的机制,他可以扫描指定的包并查找此包以及其子孙包下是否有组件类,判定组件类的标准是类上是否存在组件注解,基础的组件注解有:
@Component @Controller @Service @Repository
测试类的作用
测试类是对开发人员进行测试的类,在最终的build项目时,不会包含在项目中
对测试类进行编程,例如:
1.创建Demo类
@Component
public class Demo {
public Demo(){
System.out.println("这是构造方法");
}
@Override
public String toString(){
return "Hello World";
}
}
2.在测试类中对Demo对象进行测试
package com.example.educationtest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@SpringBootTest
class EducationTestApplicationTests {
@Autowired
AnnotationConfigApplicationContext acac;
@Test
void contextLoads() {
Demo demo = acac.getBean("demo", Demo.class);
System.out.println(demo);
}
@Test
void singleton(){
Demo demo1 = acac.getBean("demo", Demo.class);
Demo demo2 = acac.getBean("demo", Demo.class);
System.out.println(demo1 == demo2);
//返回结果为TRUE,验证了Spring创建对象的唯一性
}
}
@Autowired:自动装配,直接去Spring容器中找相应的对象,如果有,会自动完成new的过程,即直接拿到对象,可以完成对象的相关操作