spring依赖注入深入理解

2025-05-29 0 88

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的属性值或依赖的对象,是最常用的注入方式

?

1

2

3

4

5

6

7
<!-- property来配置属性

name为属性名

value为属性值

-->

<bean id="helloWorld" class="com.zhanghe.study.spring4.beans.helloworld.HelloWorld">

<property name="name" value="Spring Hello"/>

</bean>

构造器注入

构造器注入需要提供相应的构造器

?

1

2

3

4

5
<!-- 可以使用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可以搭配使用

?

1

2

3

4

5

6

7

8

9
public Car(String brand, double price) {

this.brand = brand;

this.price = price;

}

public Car(String brand, int speed) {

this.brand = brand;

this.speed = speed;

}<br type="_moz">

?

1

2

3

4

5

6

7

8

9
<bean id="car" class="com.zhanghe.study.spring4.beans.beantest.Car">

<constructor-arg value="法拉利" index="0"/>

<constructor-arg value="20000.0" type="double"/>

</bean>

<bean id="car2" class="com.zhanghe.study.spring4.beans.beantest.Car">

<constructor-arg value="玛莎拉蒂" index="0"/>

<constructor-arg value="250" type="int"/>

</bean>

到此这篇关于spring依赖注入深入理解的文章就介绍到这了,更多相关spring依赖注入内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/Lxn2zh/article/details/114058981

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 spring依赖注入深入理解 https://www.kuaiidc.com/108676.html

相关文章

猜你喜欢
发表评论
暂无评论