Spring(3)--Spring IoC 容器【理解】

6 篇文章 0 订阅
6 篇文章 0 订阅

Spring IOC容器

  Spring 容器是 Spring 框架的两大核心之一,是用来管理对象的.容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。

BeanFactory容器
概念

  BeanFactory容器是最简单的容器,给DI(依赖注入)提供了基本的支持,由 org.springframework.beans.factory.BeanFactory 接口来定义。BeanFactory或者与之相关的接口(如BeanFactoryAware,InitializingBean,DisposableBean),在Spring中仍然存在具有大量的于Spring整合的第三方框架的反向兼容的目的。
  BeanFactory在构建核心容器时,创建对象是采取延迟加载的策略。也就是说,什么时候根据id获取对象,什么时候才真正的创建对象。(多例模式适用

实例化方式
  • 利用框架提供的 XmlBeanFactory() API 去生成工厂 bean 以及利用 ClassPathResource() API 去加载在路径 CLASSPATH 下可用的 bean 配置文件。XmlBeanFactory() API 负责创建并初始化所有的对象,即在配置文件中提到的 bean。
:	XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("applicationContext.xml"));
ApplicationContext容器(常用)
概念

  ApplicationContext容器是由 org.springframework.context.ApplicationContext 接口定义。该容器添加了更多企业特定的功能,提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现 (如针对web应用的WebApplicationContext)。

  ApplicationContext构建核心容器时,创建对象采取的是立即加载的策略。也就是说,只要一读取完配置文件就创建配置文件中配置的对象。(单例模式适用

实例化方式
  • ClassPathXmlApplicationContext(常用):该容器从 XML 文件中加载已被定义的 bean。在这里,你不需要提供 XML 文件的完整路径,只需正确配置 CLASSPATH 环境变量即可,因为,容器会从 CLASSPATH 中搜索 bean 配置文件。

  ClassPathXmlApplicationContext可以加载类路径下的配置文件,要求配置文件必须在类路径下,否则加载不了。

:	ApplicationContext context = new ClassPathXmlApplicationContext( "/applicationContext.xml ");
  • FileSystemXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你需要提供给构造器 XML 文件的完整路径。

  FileSystemXmlApplicationContext可以加载磁盘任一路径下的配置文件(需要访问文件的权限)。

:	ApplicationContext context = new FileSystemXmlApplicationContext ("C:/Users/Administrator/Desktop/applicationContext.xml");
  • WebXmlApplicationContext:该容器会在一个 web 应用程序的范围内加载在 XML 文件中已被定义的 bean。
:	ServletContext servletContext = request.getSession().getServletContext();
	ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
  • AnnotationConfigApplicationContext(常用):使用AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文。避免使用application.xml进行配置,相比XML配置,更加便捷。
:	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(UserConfig.class);
IOC容器小结

BeanFactory提供了IOC容器最基本功能,而 ApplicationContext 则增加了更多支持企业级功能支持。
ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用于ApplicationContext。
相对于 BeanFactory,ApplicationContext 会更加优秀。
当然,BeanFactory 仍可以在轻量级应用中使用,比如移动设备或者基于applet的应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

煜宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值