Spring-核心概念

本文介绍了Spring框架中的IoC(控制反转)和DI(依赖注入)核心概念,如何解决代码耦合问题,以及如何通过Spring容器管理Bean并自动绑定依赖。实现了这些技术后,代码可维护性和灵活性显著提高。
摘要由CSDN通过智能技术生成

Spring-核心概念

  • IoC/DI
  • IoC容器
  • Bean

1.1 现存问题

  • 代码书写现状:代码耦合度高;

    • 例如:

      // BookServiceImpl.java
      public class BookServiceImpl implements BookService{
          private BookDao bookDao = new BookDaoImpl();
          public void save(){
              bookDao.save();
          }
      }
      
      //BookDaoImpl.java
      public class BookDaoImpl implements BookDao{
          public void save() {
              System.out.println("impl ====  1");
          }
      }
      
      //BookDaoImpl2.java
      public class BookDaoImpl2 implements BookDao{
          public void save() {
              System.out.println("impl ====  2");
          }
      }
      
    • BookDao接口的save方法的具体实现发生变化,则需要修改BookServiceImpl.java中的代码,导致项目需要重新编译,测试,部署等等;

  • 解决方案:

    • 在使用对象时,程序中不主动使用new产生对象,而是由外部提供该对象实例;
    • 引入IoC和DI的概念

1.2 IoC:控制反转

  • IoC:全拼Inversion of Control,即控制反转;
  • 概念:使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建的控制权由程序转移到外部,这种思想成为控制反转。
  • Spring技术对IoC思想进行了实现:
    • Spring提供了一个容器,称为IoC容器,用于充当上述Ioc思想中的**“外部”**。
    • Ioc容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象(service、dao等)在IoC容器中统称为Bean
  • 实现了IoC后,我们可以获得对象实例,但是,如果当前对象实例依赖于另一个对象实例,则仍然会报错;
    • 解决方案:“引入DI的概念”

1.3 DI:依赖注入

  • DI:全拼Dependency Injection,即依赖注入;
  • 概念:在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入

1.4 结果

  • 实现了IoC和DI的思想之后:
    • 使用对象时,不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了其所有的依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SEA-365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值