@RequiredArgsConstructor是按类型注入还是按名称注入

@RequiredArgsConstructor 是 Lombok 库提供的一个注解,它用于自动生成构造函数,这个构造函数会包含类中所有被标记为 final 的字段以及带有 @NonNull 注解的字段。这个注解的目的是简化代码,避免重复编写构造函数。

@RequiredArgsConstructor 注解本身并不涉及按类型注入(Type Injection)或按名称注入(Name Injection)。它只是根据字段的存在来生成构造函数,而不是基于字段的类型或名称进行注入。生成的构造函数参数是按照字段的名称来命名的。

然而,在Spring框架中,当你结合使用 @RequiredArgsConstructor 和Spring的依赖注入(DI)时,Spring会根据类型来自动注入这些字段。Spring的默认注入策略是按类型注入,这意味着Spring容器会查找与构造函数参数类型匹配的bean来自动注入。

例如,如果你有一个Spring组件:

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
public class MyComponent {
    private final SomeDependency someDependency;
    // other fields
}

在上面的代码中,SomeDependency 类型的bean将被Spring容器自动注入到 MyComponent 的构造函数中,这是基于类型的注入。Lombok 的 @RequiredArgsConstructor 只是生成了包含 someDependency 参数的构造函数,而Spring则负责实际的依赖注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

付聪1210

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值