Spring 中的依赖注入
依赖注入
- 当某个 java 实例需要另一个 java 实例的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例
- 在 spring 中,创建被调用者的工作不再由调用者来完成,因此称为控制反转,创建被调用者实例的工作通常由 spring 容器来完成,然后注入调用者,因此也称为依赖注入
注入方式
通过构造器注入
- 将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入
- 优点:对象初始化完成后便可获得可使用的对象
- 缺点:当需要注入的对象很多时,构造器参数列表将会很长,不够灵活;若有多种注入方式,每种方式只需注入指定几个依赖,那么就需要提供多个重载的构造函数,相对麻烦
- 将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入
通过 setter 方式注入
- IOC Service Provider 通过调用成员变量提供的 setter 函数将被依赖对象注入给依赖类
- 优点:灵活,可以选择性地注入需要的对象
- 缺点:依赖对象初始化完成后由于尚未注 入被依赖对象,因此还不能使用
- IOC Service Provider 通过调用成员变量提供的 setter 函数将被依赖对象注入给依赖类
通过接口注入
- 依赖类必须要实现指定的接口,然后实现该接口中的一个函数,该函数就是用于依赖注入,该函数的参数就是要注入的对象
- 优点:接口注入中,接口的名字、函数的名字都不重要,只要保证函数的参数是要注入的对象类型即可
- 缺点:侵入行太强, 不建议使用
- 依赖类必须要实现指定的接口,然后实现该接口中的一个函数,该函数就是用于依赖注入,该函数的参数就是要注入的对象
Spring 中的依赖注入相关推荐
- JavaEE开发之Spring中的依赖注入与AOP编程
上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...
- spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入
spring中的依赖注入 依赖注入: Dependency Injection IOC的作用:降低程序间的耦合(依赖关系) 依赖关系的管理:以后都交给spring来维护.在当前类需要用到其他类的对象, ...
- Spring 中设置依赖注入
package com.ysq.vo; public class User {private int uid;private String uname;private String pwd; priv ...
- junit依赖_3、Spring 中的依赖注入(DI),你都知道多少?
0. 前言 Spring 中,用来组成应用程序的主体以及由 Spring IoC 容器所管理的对象叫做 Bean.简而言之,Bean 就是由 IoC 容器来进行初始化.装配和管理的对象. Bean 的 ...
- 理解AngularJS中的依赖注入
作者 CraftsCoder 冷月无声 - 博客频道 - CSDN.NET http://blog.csdn.net/jaytalent/article/details/50986402 本文结合一些 ...
- spring四种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. spring提出了依赖注入的思想,即依赖不由程序 ...
- 详解Spring框架的依赖注入
本篇主要介绍Spring的依赖注入.依赖注入是Spring协调不同Bean实例之间的合作而提供的一种工作机制,在确保Bean实例之间合作的同时,并能保持每个Bean的相对独立性.通过本篇的学习,可以达 ...
- java手工注入bean_java相关:Spring中如何动态注入Bean实例教程
java相关:Spring中如何动态注入Bean实例教程 发布于 2020-3-8| 复制链接 摘记: 前言在Spring中提供了非常多的方式注入实例,但是由于在初始化顺序的不同,基于标注的注入方式, ...
- Spring系列之依赖注入的三种方式
目录 一.依赖注入方式 1.使用属性的setXXX方法注入 2.构造函数注入 (1)按类型匹配入参type (2)按索引匹配入参index (3)联合使用类型和索引匹配入参[type和index一起使 ...
最新文章
- linux偏向swap,solaris/linux 增加swap交换空间的方法
- SQL语句及索引优化
- 瑞星linux u盘引导盘杀毒教程,瑞星杀毒U盘怎样用U盘启动电脑
- 农场管理系统设计与实现php,农场农产品网站的设计与实现(PHP,MySQL)(含录像)
- python dict相加_Python合并字典操作时同key的value应该如何相加
- 另一个flutter-go
- docker容器中的网络原理(单机模式下的容器网络)
- 《计算机应用基础》测试题,《计算机应用基础》测试题(一)
- ISO20000/ISO27001认证区别和证书展示
- 晋南讲堂之持久层框架ORM简介
- java mp4转码 h264_mp4格式的视频,编码方式mpeg4,转化为h264
- 如何将现有Apple ID 更改为美区
- TINA仿真系列之555定时器
- 解决phpstudy的Apache启动失败
- 《乾》: 相时而动的龙精神
- mongodb类型转换
- php短信报警直到响应,Cacti实现短信报警
- 爱签:如何在线签订电子合同
- 字节校招面试题分享,别人已经开始面试了,你不会还没有准备吧?
- 《MATLAB编程》例题-画分段函数图像
热门文章
- CTSCAPIO 2015 酱油记
- 宝付国际现身讲解电商跨界金融服务
- python svm实现手写数字识别——直接可用
- JAVA 实现精确的加减乘除运算
- arr 安卓调用qmui_MUI框架-读取手机通讯录
- 通信原理04:数字信号基带传输
- 苹果手机数据线充不了电_苹果数据线无任何损伤却充不了电,你可以这样修理一下...
- 改变elementui卡片crad样式_修改ElementUI样式的几种方式
- 可将医学计算机应用课程,医学计算机应用基础-第1章计算机基础知识.ppt
- 6.17.用100元人民币兑换10元,5元和一元的纸币共50张,请用穷举法编程计算共有几种兑换方法,每种方法各兑换多少张纸币。