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标签 // // // // 包裹为构造器的参数 // // // // // // // 变成调用全参构造器 // // // // // // // // // } }