时间:2021-05-19
IOC&&DI
IOC(Inversion of Control)一般分为两种类型:依赖注入DI(Dependency Injection)和依赖查找(Dependency Lookup)
org.springframework.beans.factory.BeanFactory是IOC容器的具体实现,是Spring IOC容器的核心接口
Spring IOC负责创建对象,管理对象,装配对象,配置对象,并且管理这些对象的整个生命周期。
优点:把应用的代码量降到最低。最小代价和最小侵入式是松散耦合得以实现。IOC容器支持加载服务时的饿汉式初始化和懒加载
DI依赖注入是IOC的一个方面,不需要创建对象,只需描述如何被创建,在配置文件中描述组件需要哪些服务,之后IOC容器进行组装
IOC的注入方式:1、构造器依赖注入 2、Setter方法注入 3、工厂方法注入(很少使用)
Setter方法注入
通过Setter方法注入bean的属性值或依赖的对象,是最常用的注入方式
<!-- property来配置属性 name为属性名 value为属性值--><bean id="helloWorld" class="com.zhanghe.study.spring4.beans.helloworld.HelloWorld"> <property name="name" value="Spring Hello"/></bean>构造器注入
构造器注入需要提供相应的构造器
<!-- 可以使用index来指定参数的顺序,默认是按照先后顺序 --><bean id="car" class="com.zhanghe.study.spring4.beans.beantest.Car"> <constructor-arg value="法拉利" index="0"/> <constructor-arg value="200" index="1"/></bean>但是如果存在重载的构造器的话,只使用index索引方式无法进行精确匹配,还需要使用类型type来进行区分,index和type可以搭配使用
public Car(String brand, double price) { this.brand = brand; this.price = price;}public Car(String brand, int speed) { this.brand = brand; this.speed = speed;}到此这篇关于spring依赖注入深入理解的文章就介绍到这了,更多相关spring依赖注入内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在阅读这篇文章之前,大家可以先参阅《理解Spring中的依赖注入和控制反转》一文,了解下依赖注入和控制反转的相关内容。三种依赖注入的方式属性注入,通过sette
标题反映的是上周五一个同事咨询我的问题,我觉得这是一个很好的问题。这个问题有助于我们深入理解依赖注入框架在ASP.NETCore中的应用,以及服务实例的生命周期
java中Springtask定时任务的深入理解在工作中有用到springtask作为定时任务的处理,spring通过接口TaskExecutor和TaskSc
扩展阅读c#基础系列1---深入理解值类型和引用类型c#基础系列2---深入理解String引言在上篇文章深入理解值类型和引用类型的时候,有的小伙伴就推荐说一说
Spring的依赖注入Spring主要支持两种依赖注入方式,分别是属性注入和构造函数注入。同时也支持工厂方法注入方式。属性注入属性注入的方式非常简单,即指通过s