Java依赖注入的三种方式
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。
构造方法注入
构造器注入:保证了一些必要的属性在Bean实例化时就设置,并且确保了bean实例在实例化后就可以使用.
- 在类中,不用为属性设置setter方法,只需提供构造方法即可
- 在构造文件中配置该类bean,并配置构造器,在配置构造器中用
//ApplicationContext.xml
<bean id="action" class="com.action.UserAction"><constructor-arg index ="0" name="name" value="Murphy"></constructor-arg>
</bean>
提供构造方法
public class UserAction {private String name;public UserAction(String name) {this.name = name;}
}
setter注入
- 根据property标签的name属性的值去找对应的setter方法.
例如: name= “aa” 对应的就是setAa方法. - 由于属性注入具有可选性和灵活性高的优点,是实际上最常用的注入方式.
- 属性注入要求bean提供一个默认的构造函数,并为需要注入的属性提供对应的setter方法.spring先调用bean默认的构造函数实例化bean对象,然后通过反
Java依赖注入的三种方式相关推荐
- 05.bean依赖注入的三种方式
05.bean依赖注入的三种方式 1.概述 依赖注入 DI(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现. 在编写程序时,通过控制反转,把对象的创建交给 ...
- spring依赖注入的三种方式以及优缺点
spring依赖注入的三种方式以及优缺点 一.依赖注入的三种方式 1.通过构造器注入.(spring4.3之后,推荐使用) 2.通过setter注入.(spring4.3之前,推荐使用) 3通过fil ...
- php依赖注入的三种方式
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency Inject ...
- Spring系列之依赖注入的三种方式
目录 一.依赖注入方式 1.使用属性的setXXX方法注入 2.构造函数注入 (1)按类型匹配入参type (2)按索引匹配入参index (3)联合使用类型和索引匹配入参[type和index一起使 ...
- 依赖注入的三种方式_Spring IoC是如何进行依赖注入的
依赖注入(DI) DI(Dependency Injection),Spring IoC 不是一种技术,而是一种思想,通过这种思想,能够指导我们设计出松耦合的程序代码.而Spring IoC这个思想的 ...
- Spring依赖注入的三种方式(好的 坏的和丑的)
关于spring bean三种注入方式的优缺点对比,翻译自Spring DI Patterns: The Good, The Bad, and The Ugly,水平有限,如有错误请指正. Sprin ...
- 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入
本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...
- Spring注解依赖注入的三种方式的优缺点以及优先选择
当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 代码示例: Con ...
- java的依赖注入_Java依赖注入的三种方式
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:组织方式注入,setter注入,基于注解的注入. 组织方式注入 组织器注入:保证了一些需要的属性在Bean实例化时就设 ...
- SPR4: 依赖注入的三种方式
4.1 构造器注入 即在配置文件中,通过bean标签,使用 constructor-arg 子标签实现. 4.2 setter()注入 4.2.1 简介 依赖注入一词,依赖 指的是bean对象 ...
最新文章
- 操作多个表_5_记录匹配不上
- rpm oracle 离线,在CentOS中离线安装Oracle之安装准备
- [编程题] 按照左右半区的方式重新组合单链表
- 小程序 获取当前用户城市信息(省市区)
- 入门monkeyrunner7-monkeyrunner demo3 EasyMonkeyDevice+hierarchyviewer +monkeyrunner+截图对比
- mysql 定时统计_PHP+MySQL定时数据统计优化
- go 递归tree关系_Go实现一个二叉搜索树
- IE8 下 select option 内容过长 , 展开时信息显示不全问题解决办法
- 9. Linux 磁盘与文件管理系统(inode 目录)
- LibreOJ β Round #2 E. 数论只会 GCD
- repeater没有数据显示暂无数据,无记录
- StoreOnce的未来:惠普是否能真正实现一体化去重
- laravel 社会化(联合)登录扩展包(QQ、微信、微博等)
- 抖音txt表白html,抖音vbs表白代码的技巧分享
- Redis 客户端工具
- java做一个客房管理系统定制_基于Java的酒店客房网上管理系统设计与实现
- 使用js实时统计text、textarea等输入框的字数,并进行字数限制
- 数据存储的各个发展阶段
- 学籍管理系统(C语言版)
- Bugku 哥哥的秘密
热门文章
- 嵌入式项目-----环境搭建--快速上手
- 初学者创建个人网站如何选择服务器
- 【微信公众号开发】公众号基本配置 token 验证失败
- 关于Object和Objects
- 【决策单调性的动态规划】noi2009诗人小G
- faster-rcnn详解(rpn,损失函数)
- MATLAB实现贝叶斯分类器
- c++ fstream参数_初学C++ fstream
- Pytorch损失函数(nn.L1Loss、nn.SmoothL1Loss、nn.MSELoss 、nn.CrossEntropyLoss、nn.NLLLoss)
- 120.《vue3.0 最全详细总结+案例》