首页 > 其他分享 >Spring-IOC理论浅析

Spring-IOC理论浅析

时间:2023-03-10 23:35:30浏览次数:31  
标签:set userDao 实现 Spring 对象 反转 IOC 浅析

IOC理论

最开始时业务实现:

  1. UserDao接口
  2. UserDaoImpl实现类
  3. UserService业务接口
  4. UserServiceImpl业务实现类

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

我们使用一个set接口实现,已经发生了革命性的变化!

private UserDao userDao;

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

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

IOC本质

控制反转IOC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IOC的一种方法,也有人认为DI只是IOC的另一种说法。没有IOC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后,将对象的创建转移给第三方,个人认为所谓的控制反转就是:获得依赖对象的方法反转了。

采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实体类中,从而达到了零配置的目的。

控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现方法是依赖注入(Dependency Injection,DI)。

标签:set,userDao,实现,Spring,对象,反转,IOC,浅析
From: https://www.cnblogs.com/jiaxing-java/p/17204989.html

相关文章

  • Spring-第一个Spring程序
    1、HelloSpring1、第一个Spring项目创建Spring配置文件XXX.xml(标准名称:ApplicationContext.xml)<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.spri......
  • Spring-DI(依赖注入)及Bean的作用域
    DI(依赖注入)1、构造器注入前面已经说过了2、set方式注入【重点】依赖注入:Set注入依赖:bean对象的创建依赖于容器注入:bean对象中的所有属性,由容器来注入【环境......
  • Spring-Bean的自动装配
    Bean的自动装配自动装配是Spring满足bean依赖的一种方式Spring会在上下文中自动寻找,并自动给bean装配属性在Spring中有三种装配的方式在xml中显式的配置在java中显......
  • springboot打包时遇到的问题
    第一个问题是Failedtoexecutegoalorg.apache.maven.plugins:maven-resources-plugin:3.3.0:resources(default-resources)onproject   我的springboot版本......
  • 2.HelloSpring
    2.HelloSpring思考问题?Hello对象是谁创建的?Hello对象是由Spring设置的Hello对象的属性是怎么设置的?Hello对象的属性是Spring容器设置的这个过程就叫控制反转......
  • Spring:简述一下bean的生命周期吧?
    bean的生命周期是指它在ioc容器中从创建到销毁的整个过程。 <hr> 一、生命周期1、实例化,为对象分配内存。2、构造方法。3、属性注入,set注入。4......
  • SpringBoot 文件上传+拦截器
    SpringBoot文件上传+拦截器文件上传原理表单的enctype属性规定在发送到服务器之前应该如何对表单数据进行编码。当表单的enctype="application/x-www-form-urlencoded......
  • Spring:IOC容器创建Bean的方式有哪几种?
    三种:直接使用构造器、从静态工厂中拿、从实例工厂中拿。 一、直接使用构造器1、配置bean<beanclass="com.lurenjia.dao.DemoDao"id="demoDao"></bean>2、从......
  • Springcloud学习笔记56--SpringBoot之GET请求与Post请求参数偶发性丢失问题
    1.概述最近遇到一个偶现的问题,在向服务端请求的时候,偶尔会出现异常,在请求中的queryString传递了参数,却出现了异常MissingServletRequestParameterException如下所示:or......
  • Spring Bean Scope
    singleton默认情况,为每个SpringIoC容器将单个Bean定义的Scope扩大到单个对象实例。只有一个单例bean的共享实例被管理,所有对具有符合改bean定义的ID的bean的请求都会被s......