实验1.IOC容器创建对象,并为属性赋值


 

Hello World:(通过各种方式给容器中注册对象(注册会员))

以前是自己new对象,现在所有对象交给容器创建;给容器中注册组件

 

以后框架编写流程:

1.导包

  核心容器
  spring-beans-4.0.0.RELEASE.jar
  spring-context-4.0.0.RELEASE.jar
  spring-core-4.0.0.RELEASE.jar
  spring-expression-4.0.0.RELEASE.jar
  commons-logging-1.1.1.jar
  Spring运行的时候依赖一个日志包,没有会报错

 

 

2.写配置

  Spring的配置文件中,集合了Spring的IOC容器管理的所有组件(会员清单);

  创建一个Spring Bean Configuration File(Spring的bean配置文件);

 

 

 

 

 

 

 

 

3.测试

 

 

 

 

 

 

 

 

 

 

new ClassPathXmlApplicationContext(“ioc.xml”);  ioc容器的配置文件在类路径下

new FileSystemXmlApplicationContext(“D://ioc.cml”); ioc容器的配置文件在磁盘路径下

 

 

 

 

 

 

 

实验2.根据bean的类型从IOC容器中获取bean的实例


 

1.导包:与实验1一致

2.写配置:与实验1一致

3.测试:

 

 

 

 

 

 

 

 

 

 

 

实验3.通过构造器为bean的属性赋值(index,type属性介绍)、通过P名称空间为bean的属性赋值


 

1.导包:与实验1一致

2.写配置:

 

 

 

 

 

 

 

 

 

 

3.测试:

 

 

 

 

 

 

 

 

实验4.正确的为各种属性赋值

 


 

测试使用null值、引用类型赋值(引用其他bean、引用内部bean)、集合类型赋值(List、Map、Properties)、util名称空间创建集合类型的bean、级联属性赋值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 没有任何输出

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 级联属性可以修改属性的属性,注意:原来的bean的值可能会被修改

 

测试:

    //ApplicationContext代表ioc容器
    //当前应用的xml配置文件在ClassPath下
    //根据Spring的配置文件得到ioc容器对象
//    private ApplicationContext ioc=new ClassPathXmlApplicationContext(“ioc.xml”);
    private ApplicationContext ioc=new ClassPathXmlApplicationContext(“ioc2.xml”);
    
    /**
     * 实验4.正确的为各种属性赋值
            测试使用null值:默认引用类型就是null;基本类型是默认值
            引用类型赋值(引用其他bean、引用内部bean)、
            集合类型赋值(List、Map、Properties)、
            util名称空间创建集合类型的bean、
            级联属性赋值
     *
     */
    @Test
    public void test04() {
//        Person bean=(Person)ioc.getBean(“person01”);
//        System.out.println(“——-测试:测试使用null值———–“);
//        System.out.println(bean.getLastName()==null);
//        System.out.println(“——————————“);
//        
//        System.out.println();
//        System.out.println(“——-测试:引用类型赋值:引用其他bean———–“);
//        System.out.println(“person的car:”+bean.getCar());
//        Car bean2 = (Car)ioc.getBean(“car01”);
//        bean2.setCarName(“haha”);
//        System.out.println(“修改了容器中的car,person的car:”+bean.getCar());
//        Car car = bean.getCar();
//        System.out.println(car==bean2);
//        System.out.println(“——————————“);
        
//        System.out.println();
//        System.out.println(“——-测试:引用类型赋值:引用内部bean———–“);
//        System.out.println(“person的car:”+bean.getCar());
//        System.out.println(“——————————“);
        
//        Person bean2=(Person)ioc.getBean(“person02”);
//        System.out.println();
//        System.out.println(“——-测试:集合类型赋值 List———–“);
//        List<Book> books = bean2.getBooks();
//        System.out.println(books);
//        System.out.println(“——————————“);
        
        /**
         * 内部bean不能用id获取
         * org.springframework.beans.factory.NoSuchBeanDefinitionException:
         *  No bean named ‘carInner’ is defined
         */
//        Object bean=ioc.getBean(“carInner”);
//        System.out.println(bean);
        
        
//        Person bean2=(Person)ioc.getBean(“person02”);
//        System.out.println();
//        System.out.println(“——-测试:集合类型赋值 Map———–“);
//        Map<String, Object> maps = bean2.getMaps();
//        System.out.println(maps);
//        System.out.println(“——————————“);
        
//        Person bean2=(Person)ioc.getBean(“person02”);
//        System.out.println();
//        System.out.println(“——-测试:集合类型赋值 Properties———–“);
//        Properties properties = bean2.getProperties();
//        System.out.println(properties);
//        System.out.println(“——————————“);
        
//        Person bean3=(Person)ioc.getBean(“person03”);
//        System.out.println();
//        System.out.println(“——-测试:util名称空间创建集合类型的bean———–“);
//        Map<String, Object> maps = bean3.getMaps();
//        System.out.println(maps);
//        System.out.println(“——————————“);
//        Map<String,Object> map = (Map<String,Object>)ioc.getBean(“myMaps”);
//        System.out.println(map.getClass());
        
//        级联属性可以修改属性的属性,注意:原来的bean的值可能会被修改
        System.out.println(“——-测试:级联属性赋值———–“);
        Person bean4=(Person)ioc.getBean(“person04”);
        Object car = ioc.getBean(“car01”);
        System.out.println(“容器中的car:”+car);
        System.out.println(“Person中的car:”+bean4.getCar());
    }

版权声明:本文为maintest原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/maintest/p/12176699.html