Spring之IoC容器

Spring框架的主要特性之一是IoC(控制反转)容器,它负责管理应用程序中的对象,它通过依赖注入来实现控制反转。

 

org.springframework.beans 和 org.springframework.context 包路径下的接口或者类为Spring IoC容器的实现提供最基本的支持。 

BeanFactory和ApplicationContext接口代表了Spring IoC容器。

  • BeanFactory是Spring IoC容器的根接口,它提供了管理bean的基本功能。
  • ApplicationContext是BeanFactory的子接口,它具备BeanFactory的所有功能;此外,它还提供了更多特定于企业的功能。


BeanFactory

BeanFactory使得开发人员能够读取bean的定义并访问对应实例,如下:

InputStream is = new FileInputStream("beans.xml");
BeanFactory factory = new XmlBeanFactory(is);
 
//Get bean
HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");

 

其他创建BeanFactory的方法如下:

Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);

或者

Resource resource = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);

 

BeanFactory methods

 

此处简单解释一下其中部分方法,见下表:

 

类图

 

 

ApplicationContext

由于ApplicationContext包含了BeanFactory的所有功能,所以通常建议使用它而不是BeanFactory。

 

类图

 

Note:

BeanFactory 是 Spring 框架的基础设施,面向 Spring 框架本身;而ApplciationContext 面向使用 Spring 框架的开发者,几乎所有应用场合都直接使用 ApplicationContext,而非底层的 BeanFactory

ApplicationContext context = new FileSystemXmlApplicationContext("beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");

 

延申阅读

控制反转是一种思想

依赖注入是一种实现方式

详解:

将控制反转作为一种设计指南,可以达到以下目的:

  • 某个任务的执行与实现之间存在解耦,每个模块都可以专注于它的设计目的
  • 更换模块对其他模块没有副作用

 

Spring 框架使用依赖注入作为实现控制反转的方式,但是控制反转还有其他实现方式,如下:

 

补充:

不能将控制反转和依赖注入等同。

posted @   时空穿越者  阅读(114)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示