1. IOC理论推导

1. UserDao接口

2. UserDaoImpl实现类

3. Userservice业务接口

4. UserserviceImpl业务实现类

在之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求取修改原代码!如果程序代码量十分大,修改一次的成本代价十分昂贵。

private UserDao userDao = new UserDao();

我们使用Set接口实现

private UserDao userDao;

// 利用set进行动态实现值得注入!
public void setUserDao(UserDao userDao){
    this.userDao = userDao;
}
  • 之前,程序是主动创建对象!控制权在程序员手上!
  • 使用set注入后,程序不再具有主动性,而是变成了被动得接受对象!

这种思想,从本质上解决了问题,我们程序员不用再去管理对象的创建了。系统的耦合性大大降低,可以更加专注的在业务的实现上!这是IOC的原型!

2. IOC本质

控制反转IOC(Inversion of Control),是一种设计思想,DI(注入依赖)是实现IOC的一种方法。

IOC是spring的核心内容,使用多种方式完美的实现了IOC,可以使用XML配置,也可以使用注解,新版本的spring的spring也可以零配置实现IOC。

Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从IOC容器中取出需要的对象。

 

 

Logo

Authing 是一款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务

更多推荐