Ioc容器和bean的创建时机

坚持每天写博文,积累下开发中的点点滴滴

  • Ioc容器
    容器对象:ObjectFactory与ApplicationContext:
    BeanFactory:这个接口是spring中最底层的接口,只提供了最简单的IoC功能(创建bean,获取bean,销毁bean);
    1,ApplicationContext继承了BeanFactory,提供了基本的IoC功能;
    2,ApplicationContext还提供了其他功能:
    1,支持国际化;
    2,支持消息机制;
    3,支持统一的资源加载;
    4,支持AOP功能;

在一般的应用当中,一般不使用BeanFactory;推荐用ApplicationContext(应用上下文);


Resource常见实现类(了解)
1.ClassPathResource:从classpath根路径开始找配置文件
2.FileSystemResource:从磁盘的文件路径去找:c:/xx.xml
3.ServletContextResource:应用于Web中,从Web中去中配置文件.

ApplicationContext常见实现类(了解):
1:ClassPathXmlApplicationContext:读取classpath中的资源
ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);
2:FileSystemXmlApplicationContext:读取指定路径的资源
ApplicationContext ac = new FileSystemXmlApplicationContext(“c:/licationContext.xml”);
3:XmlWebApplicationContext:需要在Web的环境下才可以运行
XmlWebApplicationContext ac = new XmlWebApplicationContext(); // 这时并没有初始化容器
ac.setServletContext(servletContext); // 需要指定ServletContext对象
ac.setConfigLocation(“/WEB-INF/applicationContext.xml”); // 指定配置文件路径,开头的斜线表示Web应用的根目录
ac.refresh(); // 初始化容器


bean的创建时机:
1.ApplicationContext在加载的时候就会创建所有的bean (Web应用建议)
2.BeanFactory需要等到拿bean的时候才会创建bean(延迟初始化)(桌面程序)

使用ApplicationContext如何延迟初始化:
针对于当前xml中所有的bean。

<beans default-lazy-init="default | false | true">

针对于指定的bean:

<bean lazy-init="default | false | true">
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章