Spring学习之IoC

说到spring,大家都会津津乐道,什么依赖注入,什么控制反转,但是真的深入过源码了解吗,深入看过英文文档吗,自己尝试写过ioc吗,我相信大多数人都是没有的,我也是如此,所以在深入学习spring的时候做一下笔记,希望帮到自己的同时也能帮助你们。


IoC:Inversion of Control,控制反转。

Inversion:控制,控制对象的创建和销毁(生命周期)

Control:将对象的控制权交给IOC容器


Q:为什么要把对象的控制权交给IoC容器,交给IoC容器有什么好处?

A:自己控制对象,都得自己主动创建对象,销毁对象,更换代码的时候,代价很大,得在代码层面找到所有原对象,进行修改。


Q:如何创建一个Bean,交由 Spring 容器管理?

A:加入 spring 核心库和测试

 
    
      org.springframework
      spring-core
      5.1.3.RELEASE
    

    
      org.springframework
      spring-context
      5.1.3.RELEASE
    
    
      junit
      junit
      4.12
      test
    
  

编写 spring.xml 配置 bean



  
  

编写 自己的 Bean


/**
 * 自定义一个Bean 交给Spring 管理
 *
 * @author chenhao
 * @version 1.0.0
 * @since 1.0.0
 *
 * Created at 2019-09-19 14:45
 */
public class Bean {

  public Bean() {
    System.out.println("调用Bena的构造方法。。。");
  }
}

测试

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

/**
 * 测试 ioc 控制bean
 *
 * @author chenhao
 * @version 1.0.0
 * @since 1.0.0
 *
 * Created at 2019-09-19 14:47
 */
public class IoCtest {

  @Test
  public void test() {
    ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    Bean myBean = context.getBean("myBean", Bean.class);
    System.out.println("myBean= " + myBean);
  }

}

测试结果:

Spring学习之IoC_第1张图片

你可能感兴趣的:(spring)