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稍长一些.

  • 相关阅读:
    PAT (Basic Level) Practise 1013 数素数
    PAT (Basic Level) Practise 1014 福尔摩斯的约会
    codeforces 814B.An express train to reveries 解题报告
    KMP算法
    rsync工具
    codeforces 777C.Alyona and Spreadsheet 解题报告
    codeforces 798C.Mike and gcd problem 解题报告
    nginx + tomcat多实例
    MongoDB副本集
    指针的艺术(转载)
  • 原文地址:https://www.cnblogs.com/andgoo/p/2607242.html
Copyright © 2011-2022 走看看