Spring的属性注入和构造函数注入

本文介绍了Spring框架中两种常见的依赖注入方式:属性注入和构造函数注入。属性注入通过无参构造函数实例化Bean,再使用反射调用Setter方法设置属性值。构造函数注入则是在类中定义带参数的构造器,Spring通过配置文件指定构造器参数并注入。两种注入方式各有优势,提供了灵活的依赖管理方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 属性注入(属性注入是实际应用中常采用的注入方式,具有可选择性和灵活性高的优点)
属性注入是通过setXxx()方法注入Bean的属性值或依赖对象。
属性注入要求Bean提供一个无参的构造函数,并为需要注入的属性提供对应的Setter方法。Spring先调用Bean的无参构造函数实例化Bean对象,然后通过反射的方式调用Setter方法注入属性

属性注入在XML配置的方式
在这里插入图片描述

编写测试方法:
在这里插入图片描述

二、 构造函数注入(构造函数注入是除属性注入之外的另一种常用的注入方式)
构造函数注入的方法:
1、在类中,可以不用为属性设置setter方法,但是必须要生成该类带参数的构造方法。
2、在配置文件中配置该类的bean,并配置构造器,在配置构造器中用到 节点
constructor-arg标签属性:
name属性:通过参数名找到参数列表中对应参数;
index属性:通过参数在参数列表中的索引找到参数列表中对应参数,index从0开始; type属性:通过参数数据类型找到参数列表中对应参数;
value属性:设置参数列表参数对应的值,用于设定基本数据类型和String类型的数据;
ref属性:如果参数值为非基本数据类型,则可通过ref为参数注入值,其值为另一个bean标签id或name属性的属性值

在这里插入图片描述

构造器注入在XML配置的方式
在这里插入图片描述

构造器注入的编写测试方法
在这里插入图片描述

Spring 中,构造方法注入是一种依赖注入的方式,它通过构造方法来实现对依赖对象的注入。以下是如何在 Spring 中进行构造方法注入的步骤: 1. 创建需要被注入的依赖对象的类,并在该类的构造方法上添加 `@Autowired` 注解。 ```java public class Dependency { // 使用@Autowired 注解进行构造方法注入 @Autowired public Dependency() { // 构造方法逻辑 } } ``` 2. 在需要使用该依赖对象的类中,声明该依赖对象的成员变量,并在该成员变量上添加 `@Autowired` 注解。 ```java public class MyClass { // 使用@Autowired 注解进行构造方法注入 @Autowired private Dependency dependency; } ``` 3. 在 Spring 的配置文件(例如 applicationContext.xml)中,配置依赖对象需要使用该对象的类。 ```xml <!-- 配置依赖对象 --> <bean id="dependency" class="com.example.Dependency" /> <!-- 配置需要使用该对象的类 --> <bean id="myClass" class="com.example.MyClass" /> ``` 这样,当 Spring 容器启动时,会自动识别 `@Autowired` 注解,并在初始化对象时自动将依赖对象注入到需要使用它的地方。注意,需要保证配置文件中已经正确引入了 Spring 的命名空间依赖注入的约束。 除了使用 `@Autowired` 注解进行构造方法注入,还可以使用 `@Inject` 注解或者通过 XML 配置文件的方式实现构造方法注入。具体选择哪种方式取决于个人偏好项目需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值