Spring IOC和DI

什么是IOC?

IoC(Inversion of Control,控制反转)是Spring框架的核心概念之一,它允许开发者将对象的创建和依赖关系的维护交给Spring容器来管理,而不是在代码中直接创建和配置对象。在Spring中,IoC主要通过XML配置或注解来实现。

注解(Annotations)是Java提供的一种为代码添加元数据的机制,Spring框架提供了丰富的注解来支持IoC容器的配置。使用注解可以极大地简化配置工作,使得代码更加简洁和易于维护。

什么是DI?

DI(Dependency Injection,依赖注入)是IoC(Inversion of Control,控制反转)的一种实现方式。在DI中,对象的依赖关系不是由对象本身在内部创建和管理,而是由外部容器(如Spring容器)在创建对象时注入。这种方式有助于降低对象之间的耦合度,提高代码的可测试性和可维护性。

DI详解

三种注入方法

例如

IOC注解概述

注意:前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描。
该注解虽然没有显式配置,但是实际上已经包含在了启动类声明注解 @SpringBootApplication 中,默认扫描的范围是启动类所在包及其子包。

在Spring框架中,与IoC相关的常用注解包括但不限于以下几种:

  1. @Autowired:用于自动注入依赖对象。它可以应用于字段、setter方法或构造器上。Spring容器会在创建bean时,自动寻找匹配的bean注入到被@Autowired标注的字段或方法中。

  2. @Qualifier:与@Autowired配合使用,用于指定注入bean的名称。当Spring容器中存在多个相同类型的bean时,可以使用@Qualifier来指定注入哪一个bean。

  3. @Component:这是一个通用的注解,用于标注一个类为Spring容器中的一个组件(bean)。被@Component标注的类会被Spring容器自动扫描并注册为bean。

  4. @Repository:用于标注DAO(Data Access Object)组件。它继承自@Component,除了具有@Component的功能外,@Repository还提供了对异常转译的支持,能够将DAO层的特定异常转换为Spring的通用数据访问异常。

  5. @Service:用于标注服务层(Service Layer)组件。它同样继承自@Component,用于标注业务逻辑层的组件。

  6. @Controller:用于标注控制层(Controller Layer)组件。在Spring MVC框架中,@Controller注解用于标注控制器组件,使得该类能够处理HTTP请求。

  7. @Scope:用于指定bean的作用域。Spring支持多种作用域,包括单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)等。

  8. @Bean:在配置类中使用,用于定义一个bean。通过@Bean注解的方法,可以显式地声明和配置一个bean,并返回该bean的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值