zoukankan      html  css  js  c++  java
  • [Js-Spring]Spring中的容器对象,ApplicationContext与BeanFactory接口容器

    Spring 配置容器的两种方式:

    第一种:ApplicationContext 接口容器

    ApplicationContext 接口的继承结构图如下

    A、配置在类路径下,使用 ClassPathXMlApplicationContext 实现类加载

    1 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

    B、配置在本地磁盘目录下,用 FileSystemXmlApplicationContext 实现类加载

    1 ApplicationContext ac = new FileSystemXmlApplicationContext("D:/applicationContext.xml");

    C、配置在项目根目录下(与 src 包同级),同样用 FileSystemXmlApplicationContext 实现类加载

    1 ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");

    获取了 ApplicationContext 容器之后,可以使用 getBean() 方法获取 Bean 对象 

    1 ISomeService service = (ISomeService) ac.getBean("someService");

    第二种:BeanFactory接口容器

    BeanFactory 接口对象也可以作为 Spring 容器出现。BeanFactory 接口是 ApplicationContext 接口的父类。

    若要创建 BeanFactory 容器,需要使用其实现类 XmlBeanFactory ,该类可以加载 Spring 配置文件,而 Spring 配置文件以 Resource 的形式出现在 XMLBeanFactory 的构造参数中,Resource 是一个接口,其具体有两个实现类,

    ClassPathResource:指定类路径下的资源文件

    FileSystemResource:指定项目根路径或者本地磁盘路径下的资源文件 

    1 BeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

    同样创建 BeanFactory 之后可以调用重载的 getBean() 方法获取指定的 Bean 对象

    1 ISomeService service = (ISomeService) bf.getBean("someService");

    两个容器的区别:

      装配时机不同,

      ApplicationContext 容器会在容器对象初始化的时候,将其中所有的对象一次性全部装配好,以后在要使用这些对象的时候,直接从容器中获取即可。执行效率较高,但是占用内存。

      BeanFactory 容器,对容器中对象的装配和加载采用延迟加载的策略,即在第一次调用 getBean() 方法的时候,才真正装配对象

  • 相关阅读:
    用webclient.DownloadFile下载exe文件时大小为0
    C# ,asp.net 获取当前,相对,绝对路径(转)
    c#读取进程列表判断程序是否已经启动(转)
    如何提升页面渲染效率
    前端知识点总结——VUE
    ie7ajax 跨域 no transport 解决办法
    酷炫网址
    框架学习官网
    JavaScript数组方法大全(推荐)
    rem是如何实现自适应布局的
  • 原文地址:https://www.cnblogs.com/jiasq/p/8594725.html
Copyright © 2011-2022 走看看