美文网首页
从spring容器中获取Bean的三种方式

从spring容器中获取Bean的三种方式

作者: 叫我不矜持 | 来源:发表于2019-02-13 18:59 被阅读2次

    一.ClassPathXmlApplicationContext方式

    从类路径下查找spring配置文件

    @Test
    public void testGetBean01(){
      //通过实例化ClassPathXmlApplicationContext对象完成加载spring配置文件
      //这种方式在加载配置文件时就会把bean标签对应的类实例化,加载到内存中
      ApplicationContext app = new ClassPathXmlApplication("applicationContext.xml");
      //调用getBean方法,从容器中获取相应的bean 
      someService someService = app.getBean("someService",SomeService.class);
    }
    

    二.FileSystemApplicationContext方式

    从本地文件系统中查找加载spring配置文件

    @Test
    public void testGetBean02(){
      //通过实例化FileSystemApplicationContext对象完成加载spring配置文件
      //这种方式在加载配置文件时就会把bean标签对应的类实例化,加载到内存中
      ApplicationContext app = new ClassPathXmlApplication("applicationContext.xml");
      //调用getBean方法,从容器中获取相应的bean 
      someService someService = app.getBean("someService",SomeService.class);
    }
    

    三.XmlBeanFactory方式

    这种方式只是加载配置文件,只有真正调用getBean()方法的时候,才会去实例化相应的对象,和前两者有些不同

    @Test
    public void testGetBean03(){
        
        XmlBeanFactory xbf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
        SomeService someService = (SomeService) xbf.getBean("someServiceImpl");
    }
    

    总结

    1.前两种方式
    优点:在容器初始化的时候就会将所有对象创建完毕,获取对象的效率更高
    缺点:占用内存

    2.XmlBeanFactory方式
    优点:节省内存
    缺点:获取对象的效率相对来说会低

    相关文章

      网友评论

          本文标题:从spring容器中获取Bean的三种方式

          本文链接:https://www.haomeiwen.com/subject/zvzdeqtx.html