Spring的核心概念

目录

1、控制反转(IoC)

什么是控制反转

IoC与IoC容器的关系

Spring框架的控制反转

2、Bean

注解:​​​

3、DI

4、总结


1、控制反转(IoC)

什么是控制反转

IoC(Inversion of Control,控制反转)是一种编程思想,其核心是将传统上由程序代码直接操控的对象调用权交给一个容器(外部实体),通过这个容器来实现对象的创建、装配和管理。在IoC中,对象的依赖关系不再由对象自身负责,而是由IoC容器来管理。

IoC的主要目的是降低代码之间的耦合度,提高代码的可维护性、可测试性和可扩展性。通过IoC,对象在被创建的时候,其依赖的对象的引用会被外界实体(IoC容器)注入到对象中,即依赖被注入到对象中。这种依赖注入的方式使得对象不需要关心其依赖项的具体实现,只需要关注其接口和功能,从而实现了对象之间的解耦。

IoC的实现方式多种多样,其中最常见的是依赖注入(Dependency Injection,简称DI)。依赖注入是指在创建对象时,将其依赖的其他对象(或依赖项)通过构造函数、属性或接口方法等方式注入到目标对象中。这样,目标对象就不需要负责自己的依赖项的创建和管理,而是由IoC容器来负责。

IoC与IoC容器的关系

IoC容器是实现IOC思想的具体工具或平台。没有IoC容器,也可以实现IOC思想,但可能需要更多的手动配置和代码编写。而IoC容器则通过自动化和配置化的方式,使得IOC思想的实现更加简单和高效。

在使用IoC容器时,通常会将对象的创建、配置和依赖注入等任务交给容器来管理,从而实现代码的解耦和复用。这样可以更加专注于业务逻辑的实现,而无需关心对象的创建和管理等细节。

Spring框架的控制反转

在Spring框架中,IoC(Inversion of Control,控制反转)是一种核心的设计思想,它降低了类与类之间的依赖程度,使得代码更加灵活和易于测试。通过IoC,Spring容器负责创建对象实例、管理对象的生命周期,并自动处理对象之间的依赖关系。

具体来说,Spring IoC容器实现了IoC思想,它负责对象的创建、装配以及生命周期管理。这意味着,开发者不再需要在代码中显式地通过new关键字来创建对象实例,而是将对象的创建和管理交给Spring容器来处理。IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象。Spring容器会根据配置(通常是通过XML配置文件或注解)自动创建对象实例,并将它们装配在一起,形成完整的应用程序。

在Spring中,IoC的实现主要依赖于依赖注入(Dependency Injection,DI)机制。依赖注入是指Spring容器在创建对象时,将其所依赖的其他对象(也称为依赖项)注入到该对象中。这样,对象就不需要显式地创建其依赖项,而是由Spring容器负责创建和注入。IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相关资源。

Spring提供了多种实现IoC的方法,包括:

  1. 注解方式:通过在类或方法上添加注解(如@Autowired、@Resource等),告诉Spring容器需要进行依赖注入的对象或方法。
  2. XML配置方式:在XML配置文件中配置bean的信息,包括bean的id、class、依赖关系等。Spring容器会读取这些配置信息,并据此创建和管理对象。
  3. 自动扫描方式:通过配置自动扫描的包路径,Spring容器会自动扫描指定包下的类,将其注册为bean,并进行依赖注入。

2、Bean

IOC容器的作用以及内部存放的是什么?

IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象。被创建或被管理的对象在IOC容器中统称为Bean,IOC容器中放的就是一个个的Bean对象。

在Spring框架中,Bean是一个由Spring IoC容器实例化、配置和管理的对象。Bean是一个被Spring管理的Java对象,它是一个完整的对象,拥有属性和对应的方法。org.springframework.beansorg.springframework.context 这两个包是 IoC 实现的基础。

注解:​​​

@Component通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用
@Repository对应持久层即 Dao 层,主要用于数据库相关操作。
@Service对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。
@Controller对应 Spring MVC 控制层,主要用于接受用户请求并调用 Service 层返回数据给前端页面。

@Component 注解作用于类,而@Bean注解作用于方法。

3、DI

依赖注入:在容器中建立bean与bean之间的依赖关系的过程。

当IOC容器中创建好service和dao对象后,程序能正确执行么?

不能,因为service运行需要依赖dao对象。IOC容器中虽然有service和dao对象,但是service对象和dao对象没有任何关系,需要把dao对象交给service,也就是要绑定service和dao对象之间的关系。像这种在容器中建立对象与对象之间的绑定关系就要用到DI(Dependency Injection)依赖注入。

IOC容器中哪些bean之间要建立依赖关系?

要根据业务需求提前建立好关系,如业务层需要依赖数据层,service就要和dao建立依赖关系。

4、总结

  • IOC:控制反转,控制反转的是对象的创建权。
  • DI:依赖注入,绑定对象与对象之间的依赖关系。
  • IOC容器:Spring创建了一个容器用来存放所创建的对象,这个容器就叫IOC容器。
  • Bean:容器中所存放的一个个对象就叫Bean或Bean对象。

IoC与DI的共同目标是充分解耦,具体实现是使用IoC容器管理bean。在IoC容器内将有依赖关系的bean进行关系绑定(DI) 。最终结果为:使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系。

Spring是一个开源的轻量级应用框架,其核心思想是IoC(Inversion of Control)和AOP(Aspect Oriented Programming),其: 1. IoC(控制反转):指将对象的创建和依赖关系的管理交给Spring容器来完成,即由容器来控制对象的生命周期和依赖关系。通过IoC容器,我们可以将对象之间的依赖关系从代码分离出来,使得代码更加简洁、灵活、易于维护和扩展。 2. AOP(面向切面编程):指通过在程序定义切面(Aspect)来实现对横切关注点(Cross-cutting Concerns)的管理。切面可以定义一些通用的行为,如日志记录、性能统计、安全控制等,然后将其应用到多个不同的对象,从而实现代码的重用和统一管理。 除此之外,Spring还有一些其他的核心概念,如: 1. Bean:在Spring,所有的对象都被称为Bean,Bean是Spring IoC容器的基本构建模块,它由容器创建、组装和管理。 2. ApplicationContext:是Spring的IoC容器的接口,它负责管理Bean的生命周期和依赖关系,并提供了一些高级功能,如事件传播、国际化、资源管理等。 3. Spring MVC:是Spring框架的Web应用程序开发框架,它基于MVC(Model-View-Controller)架构模式,提供了一组组件和工具,使得开发Web应用程序更加容易和灵活。 总之,Spring核心概念包括IoC、AOP、Bean、ApplicationContext和Spring MVC等,这些概念Spring框架提供了强大的功能和灵活性,使得开发者可以更加方便地开发出高质量的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值