Spring的三种依赖注入的方式(spring依赖注入的三种方式列举)

Spring的三种依赖注入的方式1、什么是依赖注入 依赖注入(Dependency Injection,简称DI),是IOC的一种别称,用来减少对象间的依赖关系。提起依赖

1、什么是依赖注入

依赖注入(DI)是IOC 的别称,用于减少对象之间的依赖关系。在依赖注入方面,IOC 至关重要。 IOC(控制反转)是一种设计理念,它将最初在程序中手动创建的对象的控制权转移到Spring 框架。

IOC和DI是同一概念的不同视角。 (IOC是一种思想,DI是该思想的具体技术实现。)也可以理解为: IOC是目标(目标是创建对象),DI是手段(如何获取对象)。外部对象)。

2、依赖注入的常见实现方式

构造函数注入

setter 方法的注入

财产注入

2.1 构造函数注入

在带注释的构造函数的参数中包含所有必需的依赖项,并在构造函数中完成相应变量的初始化。该方法基于构造函数注入。

@RestController

公共类用户控制器{

//构造函数注入

私有UserService 用户服务;

@Autowired

公共UserController(UserService userService) {

this.userService=userService;

}

@RequestMapping(\’/add\’)

公共UserInfo add(字符串用户名, 字符串密码) {

return userService.add(用户名, 密码);

}

}

这种方法的优点:

可注入的不可变对象

注入的对象保持不变

注入的对象已完全初始化

提高多功能性

这种方法的缺点:

如果有太多对象需要依赖构造函数,它们就会变得臃肿。

2.2 setter方法注入

在JavaBean 中,通常通过setXXX() 和getXXX() 方法访问相应的属性。这些setXXX()方法统称为setter方法,而getXXX()方法统称为getter方法。通过setter方法,可以改变对应对象的属性,通过getter方法,可以检索对应属性的状态。

因此,只要当前对象为其依赖对象对应的属性添加setter方法,就可以通过setter方法将对应的依赖对象设置为插入的对象。

@服务

公共类用户服务{

私人短信服务SMSService;

@Autowired //通过setter方法注入

公共无效setWolf3Bean(SmsService smsService){

this.smsService=smsService;

}

}

这种方法的优点:

每个Setter 仅针对一个对象,因此它完全遵循单一责任设计原则。

这种方法的缺点:

不可变对象(最终被修改的对象)无法插入

可以修改注入的对象

2.3 属性注入

属性注入是使用bean变量上的注释来注入依赖项。

属性注入是我们最熟悉的一种,日常开发中最常用的注入方式有:

@RestController

公共类用户控制器{

//属性对象

@Autowired

私有UserService 用户服务;

@RequestMapping(\’/add\’)

公共用户信息添加(字符串用户名,字符串密码){

return userService.add(用户名, 密码);

}

}

这种方法的优点:

便于使用

这种方法的缺点:

不可变对象(最终被修改的对象)无法插入

可以修改注入的对象

仅适用于IoC 容器

3、总结

在实际开发中,根据不同的场景选择不同的注入方式。简单来说,就是

使用构造函数方法来强制依赖关系。

使用setter 插入可选变量依赖项。

不过日常开发需要插入更多的属性~

文章转载自《一片叶子的一生》

原文链接:https://www.cnblogs.com/anboy/p/18281768

试用地址:英迈-JNPF 高速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流程引擎_软件架构

以上关于#Spring的三种依赖注入方式的相关内容来源仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92935.html

(0)
CSDN的头像CSDN
上一篇 2024年7月4日
下一篇 2024年7月4日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注