Spring IOC工作原理

  • Spring框架的概念
  • Spring中IOC
  • Spring框架原理
  • beanFactory和AppilcationContext的区别

一.Spring框架的概念

Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。

二.Spring中的IOC

IOC:(全称:Inverse Of Control )控制反转,容器主动将资源推送给它所管理的组件,组件所做的是选择一种合理的方式接受资源。

简单的理解:把创建对象和维护之间的关系的权利由程序中转移到Spring容器的配置文件中。

DI:(全称:Dependency Injection)依赖注入,IOC的另一种表现方式,组件以一种预先定义好的方式来接受容器注入的资源。

三.Spring框架原理

例子

  1. 新建一个Person, Book实体类;
  2. applicationContext.xml




	
	
	


	
	
	

  1. Main.java
public class Main {
    public static void main(String[] args) {
        // 创建IOC容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        //从容器中获取bean实例
        Person person = (Person) ac.getBean("person");
        //使用bean
        System.out.println(person.getName());
    }
}

运行原理分析:

(1).当ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext .xml”);被执行时,Spring容器对象被创建,同时applicationContext .xml中的bean就会被创建到内存中:

(2)运行原理图:
Spring IOC工作原理_第1张图片

四.beanFactory和ApplicationContext的区别

配置bean的方式:

(1).通过ApplicationContext上下文容器:当在加载xml配置文件时,配置文件中的配置的bean已经被实例化

(2).BeanFactory:在加载配置文件时,配置文件中的bean不被实例化,只有当通过getBean(),获取bean实例的时候才被创建。

总结:通过BeanFactory配置的bean比通过ApplicationContext配置的节约内存。

你可能感兴趣的:(spring,IOC)