Spring 的IOC和DI

IOC:IOC其实就是一种容器,该容器会主动的将资源推送给他所管理的组件,

组件所要做的仅是一种合适的方式来接受资源,这种行为也被称为查找的被动形式!

IOC的反转控制:传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转

ID:组件以预定好的方式接受来自容器的资源注入,相对IOC而言表达更加清新

Spring IOC容器读取bean 配置创建BEAN实例之前,必须对他进行实例化,只有在容器实例化后,才可以从

IOC容器里获取BEAN实例并使用。

Spring提供两种IOC容器实现:

BeanFactory是IOC容器的基本实现

ApplicationContext:提供了更加高级的特性,是BeanFactory的子接口

BeanFactory是Spring框架的基础设施,面向Spring本身;

ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext而非底

层的BeanFactory

package com.spring.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.spring.classs.Test;

public class Spring1 {
    
    public static void main(String[] args){
        
        //1.创建Spring的IOC容器对象
        //ApplicationContext 代表IOC容器,且必须要在创建BEAN实例之前
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-Spring.xml");
        //2.从IOC容器中获取BEAN
        Test test =(Test)ctx.getBean("test");
        //3.调用方法
        test.hellod();
        
    }

}

周永发
原文地址:https://www.cnblogs.com/yvanBk/p/8512490.html