package com.sf.ioc;
import com.sf.ioc.helloworld.Role;
import com.sf.ioc.helloworld.User;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* src/main/java/com/sf
* src/test/java/com/sf
* 编写一个对user的测试类
*/
public class TestUser {
@Test
public void test() {
// 先引入spring容器 然后查找user的bean
// ApplicationContext 是应用上下文 容器的意思
ApplicationContext context = new ClassPathXmlApplicationContext("ioc/spring-beans.xml");
User user = (User) context.getBean("user");
System.out.println(user);
User user1 = (User) context.getBean("user1");
System.out.println(user1);
User user2 = (User) context.getBean("user2");
System.out.println(user2);
User user3 = (User) context.getBean("user3");
System.out.println(user3);
User user4 = (User) context.getBean("user4");
System.out.println(user4);
Role role = (Role) context.getBean("role");
System.out.println(role);
}
@Test
public void testNew() {
ApplicationContext context = new ClassPathXmlApplicationContext("ioc/spring-beans-new.xml");
User user = (User) context.getBean("user");
System.out.println(user);
User user1 = (User) context.getBean("user1");
System.out.println(user1);
User user2 = (User) context.getBean("user2");
System.out.println(user2);
// role只被创建一次 比较不同user的role对象 是同一个
System.out.println(user.getRole() == user1.getRole());
Role role = (Role) context.getBean("role1");
System.out.println(role);
Role role2 = (Role) context.getBean("role2");
System.out.println(role2);
Role role4 = (Role) context.getBean("role4");
System.out.println(role4);
}
@Test
public void test1(){
// User user = new User("wangwu","sth");
// Role role = new Role("admin");
// user.setRole(role);
// Role role = new Role("admin");
// User user = new User("wangwu","sth",role);
// 在配置文件中生效
// 声明一个对象 对应一个bean标签
//
//
//
// 包裹为构造器的参数
//
//
//
//
//
//
// 变成调用全参构造器
//
//
//
//
//
//
//
//
//
}
}