IoC与DI

快问快答

  1. Spring Bean是什么

Bean是定义的一个组件或对象,组件作用实现某个功能。由IoC来实例化、装配与管理

  1. IoC是什么

IoC(Inversion of Control)控制反转,是Spring中的重要设计思想。将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

IoC图示
下图是传统主动创建对象,需要我们自己new,然后注入到其需要依赖的另一个对象中

下图是IoC完成的工作,不需要主动创建对象

  • 简而言之,Spring框架管理这些Bean的创建工作,即由用户管理Bean转变为框架管理Bean,这个就叫控制反转 - Inversion of Control (IoC)。
  • 创建的Bean放在IoC Container中
  • 如何配置Bean,xml配置,Java配置,注解配置等
  • 管理生命周期,

IoC与DI

DI - dependency injection,依赖注入。组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中

IoC是设计思想,DI是实现方式

IoC配置方式

xml配置

这种方式出现很多早前的SSM项目中,将第三方类库或者一些配置工具类都以这种方式进行配置,主要原因是由于第三方类不支持Spring注解。

JAVA配置

@Configuration
public class BeansConfig {

    /**
     * @return user dao
     */
    @Bean("userDao")
    public UserDaoImpl userDao() {
        return new UserDaoImpl();
    }

    /**
     * @return user service
     */
    @Bean("userService")
    public UserServiceImpl userService() {
        UserServiceImpl userService = new UserServiceImpl();
        userService.setUserDao(userDao());
        return userService;
    }
}

依赖注入

setter注入


IoC与DI
https://dreamerland.cn/2024/03/04/springboot/SpringIoC/
作者
Silva31
发布于
2024年3月4日
许可协议