1. 首页
  2. 软件开发
  3. Spring——手写IOC简单示例,一文搞定IOC原理探究

Spring——手写IOC简单示例,一文搞定IOC原理探究

  • 发布于 2024-08-17
  • 0 次阅读

IOC(Inverse of Control,控制反转)是一种设计模式,它将控制权从应用程序代码中转移出来,由容器来管理对象的生命周期和对象之间的依赖关系。实现IOC的关键在于依赖注入(DI),即容器负责在对象创建时将其依赖的其他对象注入进来。

手写IOC简单代码如下:

1. 创建一个接口 UserService 和实现类 UserServiceImpl

public interface UserService {
   
    void getUserInfo();
}

public class UserServiceImpl implements UserService {
   
    @Override
    public void getUserInfo() {
   
        System.out.println("Getting user information...");
    }
}

2. 创建一个容器类 Container ,用于管理对象的创建和依赖注入

import java.util.HashMap;
import java.util.Map;

public class Container {
   
    private Map<Class<?>, Object> beans = new HashMap<>();

    public void registerBean(Class<?> clazz) throws IllegalAccessException, InstantiationException {
   
        beans.put(clazz, clazz.newInstance());
    }

    public <T> T getBean(Class<T> clazz) {
   
        return clazz.cast(beans.get(clazz));
    }
}

3. 在主程序中使用IOC容器:

public class Main {
   
    public static void main(String[] args) throws InstantiationException, IllegalAccessException {
   
        Container container = new Container();
        container.registerBean(UserServiceImpl.class);

        UserService userService = container.getBean(UserService.class);
        userService.getUserInfo();
    }
}

通过手写的IOC容器 Container 实现了控制反转,容器负责管理 UserService 对象的创建和依赖注入,主程序中只需要从容器中获取 UserService 对象并调用其方法即可,从这个例子可以得出Spring其实就是一个放各种对象的容器。

原文链接: https://blog.csdn.net/2401_82884096/article/details/136976876