Spring总结篇(2):IOC容器以及bean的一些细节
2018-05-03 本文已影响0人
唐伟耀
1.IOC的两种方式?
ApplicationContext应用上下文容器和bean工厂
2.从ApplicationContext应用上下文容器中获取bean和从bean工厂容器中获取bean有什么区别?
--ApplicationContext容器
( 提前加载,浪费一些内存,大部分用它)
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
当使用ApplicationContext容器,则配置的bean如果是singleton,一旦容器被实例,bean也被实例了。(前提与载入所有单例的bean)
--bean工厂
(实时加载,节约一点内存,用的不多)
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring.xml"));
当使用bean工厂时,当容器被实例化时,配置的bean不会被实例化,当你获取bean的时候,才被实例化,实时加载
总结:
一般没有特殊要求的话,应当使用ApplicationContext完成
3.关于bean中scope的细节
singleton: 单例
prototype: 原型(每次都是全新的)
request: 一次请求有效(Java WEB 开发中)
session: Session级有效(Java WEB 开发中)
global-session: spring容器ApplicationContext一致
4.三种获取ApplicationContext对象引用的方法
-- ClassPathXmlApplicationContext(通过类路径)
--FileSystemXmlApplicationContext(通过文件路径)绝对路径比较麻烦
--XmlWebApplicationContext(通过WEB系统中加载)
下次更新bean的生命周期总结