IoC之两种获得Bean容器的方法与区别

来源:互联网 发布:深圳淘宝免费运营 编辑:程序博客网 时间:2024/06/05 15:20

在applicationContext.xml里面注册完各类bean之后,需要获得spring的上下文容器,一般而言会有两种不同的获得容器的方法:


方法一:ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

Service service = (Service)ac.getBean("myService");

方法二:BeanFactory方式:

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

 Service service = (Service)bf.getBean("myService");


ApplicationContext容器(A),BeanFactory容器(B) 区别:
A:初始化时会将所有的bean进行创建
优点:响应速度快          缺点:占用内存 CPU


B:容器初始化时不创建对象,要用对象时才创建。
优点:占用资源少          缺点:响应速度慢
创建的时机不同


实际上,基本都用A比较多,因为响应速度直接关系到用户体验,而占用资源这一问题交给硬件就好了。


注:A的实例化方法还有另外一种方法:

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

        而这个他会在系统的根路径下面找有没有applicationContext.xml,如果没有则报错。而事实上一般会将这个配置文件放在src路径下,所以这种实例化方法用的比较少。