Spring IOC容器概念及分类

什么是Spirng IOC容器?

spring容器是spring框架的核心,容器创建对象并且把它们连接在一起,并管理它们的生命周期。说白了就是之前的Java应用程序中的对象是程序员new出来的,现在不用我们new了,交给spring容器去管理了。

Spring IOC容器如何管理对象?

使用依赖注入(DI)来管理组成一个应用程序的组件。依赖注入就是控制反转(IOC)的一个具体例子

Spring IOC如何工作?

Spring IoC 容器利用 Java 的 POJO 类和配置元数据来生成完全配置和可执行的系统或应用程序。如下图:

 Spring 框架提供的容器:

1. Spring BeanFactory容器:最简单的容器,给DI提供了基本的支持。移动设备中为了节省有限的资源,会被优先选择,即主要用于轻量级应用。其用org.springframework.beans.factory.BeanFactory接口来定义。其中 org : 表示这是一个开源包,因为apache是一个非盈利组织,所以产品一般以org开头;springframework : spring框架 。

2. Spring ApplicationContext容器:在Spring BeanFactory容器的基础上,添加了更多企业特定的功能,也就是比BeanFactory更加优秀更加牛逼了。其用org.springframework.context.ApplicationContext接口来定义。较BeanFactory而言,可以加载配置文件中定义的bean,将所有bean集中在一起,有请求的时候分配bean。

Spring IOC容器的使用:

1. BeanFactory容器的使用:

public static void main(String[] args){
    //ClassPathResource加载在路径CLASSPATH下可用的xml配置文件
    //XmlBeanFactory负责创建并初始化所有对象即xml文件中的bean
    XmlFactory factory = new XmlBeanFactory(new ClassPathResource("   .xml"));    
    类名 对象名 =(类名)factory.getBean("  ");
}

 2. ApplicationContext 容器的使用:

public static void main(String[] args){
    //ApplicationContext接口的实现类有很多种,这里使用ClassPathXmlApplicationContext
    ApplicationContext app = new ClassPathXmlApplicationContext("  .xml");
    类名 对象名 =(类名)app.getBean(" ");
}

 由以上的代码顺序可知,关于spring容器管理对象的方法和过程我们可以理解成:在加载xml文件的时候,这个类帮我们将xml文件中的<bean>标签进行了解析(其实每一个<bean>标签片面点儿说都对应着一个对象,模板bean除外),这样子spring容器就和我们所说的对象联系了起来,spring容器也是一个类,在Java中很多“高大上”的名字其实都是对应一个类,只不过名字是根据这个类所做的事情或者它在程序中的身份取的。

猜你喜欢

转载自blog.csdn.net/My_name_is_ZwZ/article/details/83177651