TestUser.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.sf.ioc;
  2. import com.sf.ioc.helloworld.Role;
  3. import com.sf.ioc.helloworld.User;
  4. import org.junit.jupiter.api.Test;
  5. import org.springframework.context.ApplicationContext;
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;
  7. /**
  8. * src/main/java/com/sf
  9. * src/test/java/com/sf
  10. * 编写一个对user的测试类
  11. */
  12. public class TestUser {
  13. @Test
  14. public void test() {
  15. // 先引入spring容器 然后查找user的bean
  16. // ApplicationContext 是应用上下文 容器的意思
  17. ApplicationContext context = new ClassPathXmlApplicationContext("ioc/spring-beans.xml");
  18. User user = (User) context.getBean("user");
  19. System.out.println(user);
  20. User user1 = (User) context.getBean("user1");
  21. System.out.println(user1);
  22. User user2 = (User) context.getBean("user2");
  23. System.out.println(user2);
  24. User user3 = (User) context.getBean("user3");
  25. System.out.println(user3);
  26. User user4 = (User) context.getBean("user4");
  27. System.out.println(user4);
  28. Role role = (Role) context.getBean("role");
  29. System.out.println(role);
  30. }
  31. @Test
  32. public void testNew() {
  33. ApplicationContext context = new ClassPathXmlApplicationContext("ioc/spring-beans-new.xml");
  34. User user = (User) context.getBean("user");
  35. System.out.println(user);
  36. User user1 = (User) context.getBean("user1");
  37. System.out.println(user1);
  38. User user2 = (User) context.getBean("user2");
  39. System.out.println(user2);
  40. // role只被创建一次 比较不同user的role对象 是同一个
  41. System.out.println(user.getRole() == user1.getRole());
  42. Role role = (Role) context.getBean("role1");
  43. System.out.println(role);
  44. Role role2 = (Role) context.getBean("role2");
  45. System.out.println(role2);
  46. Role role4 = (Role) context.getBean("role4");
  47. System.out.println(role4);
  48. }
  49. @Test
  50. public void test1(){
  51. // User user = new User("wangwu","sth");
  52. // Role role = new Role("admin");
  53. // user.setRole(role);
  54. // Role role = new Role("admin");
  55. // User user = new User("wangwu","sth",role);
  56. // 在配置文件中生效
  57. // 声明一个对象 对应一个bean标签
  58. // <bean class="com.sf.helloworld.Role">
  59. // <constructor-arg name="name" value="admin"/>
  60. // </bean>
  61. // 包裹为构造器的参数
  62. // <constructor-arg name="name" value="wangwu"></constructor-arg>
  63. // <constructor-arg name="role">
  64. // <bean class="com.sf.helloworld.Role">
  65. // <constructor-arg name="name" value="admin"/>
  66. // </bean>
  67. // </constructor-arg>
  68. // 变成调用全参构造器
  69. // <bean id="user1" class="com.sf.helloworld.User">
  70. // <constructor-arg name="name" value="wangwu"></constructor-arg>
  71. // <constructor-arg name="desc" value="普通用户"></constructor-arg>
  72. // <constructor-arg name="role">
  73. // <bean class="com.sf.helloworld.Role">
  74. // <constructor-arg name="name" value="admin"/>
  75. // </bean>
  76. // </constructor-arg>
  77. // </bean>
  78. }
  79. }