zoukankan      html  css  js  c++  java
  • Spring3.x企业应用开发笔记之BeanFactory与ApplicationConText区别

    SpringIoC容器就是一个实现了BeanFactory接口的可实例化类。事实上,Spring提供了两种不同的容器:一种是最基本的BeanFactory,另一种是扩展的ApplicationContext。BeanFactory 仅提供了最基本的依赖注入支持,而 ApplicationContext 则扩展了BeanFactory ,提供了更多的额外功能。实例化这两种容器时是有区别的:

    (1)BeanFactory

    public class BeanFactoryTest {
        public static void main(String[] args) throws Throwable{
           ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
           Resource res = resolver.getResource("classpath:com/baobaotao/beanfactory/beans.xml");
           System.out.println(res.getURL());
           BeanFactory bf = new XmlBeanFactory(res);
           System.out.println("init BeanFactory.");
           
           Car car = bf.getBean("car",Car.class);
           System.out.println("car bean is ready for use!");
           car.introduce();
        }
    }

    (2)ApplicationContext

    public class XmlApplicationContextTest {
    
        public static void main(String[] args) {
    //如果配置文件放置在类路径下,用户可以优先使用ClassPathXmlApplicationContext实现类 ApplicationContext ctx
    = new ClassPathXmlApplicationContext("com/baobaotao/context/*.xml"); Car car1 = ctx.getBean("car",Car.class);
    //如果配置文件放置在文件系统的路径下,则可以优先考虑使用FileSystemXmlApplicationContext实现类
    // ctx = new FileSystemXmlApplicationContext("D:/masterSpring/chapter3/src/com/baobaotao/context/*.xml"); // Car car2 = ctx.getBean("car",Car.class); } }

      ApplicationContext的初始化和BeanFactory有一个重大的区别:BeanFactory在初始化容器时,并未实例化Bean,直到第一次访问某个Bean时才实例目标Bean;而ApplicationContext则在初始化应用上下文时就实例化所有的单实例的Bean。因此ApplicationContext的初始化时间会比BeanFactory稍长一些.

  • 相关阅读:
    H50062:meta 定义浏览器的渲染方式
    PHPJN0004:PHP文件上传被安全狗拦截处理
    APP0006- 提示弹窗
    MySQL0002:命令行操作数据库常用命令
    APP0005- data属性的定义
    CSS0018: 字体超长自动隐藏
    JS_0041:JS加载JS文件 异步同步加载js文件
    CSS0017: DIV 上下左右都居中样式
    CSS0016: 多个DIV并排均匀分布 box-sizing
    H50061:html 中引入外部 html 片段
  • 原文地址:https://www.cnblogs.com/andgoo/p/2607242.html
Copyright © 2011-2022 走看看