坚持每天写博文,积累下开发中的点点滴滴
- 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">