基于字段的依赖注入、基于 setter 方法的依赖注入以及基于构造函数的依赖注入介绍和用法

在 Java 里,依赖注入(Dependency Injection,简称 DI)是一种设计模式,它能让对象之间的依赖关系从代码内部转移到外部配置,从而提升代码的可测试性、可维护性和可扩展性。常见的依赖注入方式有基于字段的依赖注入、基于 setter 方法的依赖注入以及基于构造函数的依赖注入,下面分别介绍这三种方式以及其优缺点。

三种依赖注入形式介绍

1. 基于字段的依赖注入

基于字段的依赖注入是指直接通过反射机制将依赖对象赋值给目标对象的字段。这种方式简洁直观,不过会降低代码的可测试性,因为无法在不使用反射的情况下为字段赋值。

示例代码

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

// 定义一个服务接口
interface MessageService {
   
   
    String getMessage();
}

// 实现服务接口
@Service
class EmailService implements MessageService {
   
   
    @Override
    public String getMessage() {
   
   
        return "This is an email message.";
    }
}

// 使用基于字段的依赖注入
@Component
class UserService {
   
   
    @Autowired
    private MessageService messageService;

    public String sendMessage() {
   
   
        return messageService.getMessage();
    }
}

代码解释

  • @Autowired 注解会让 Spring 框架自动查找合适的 MessageService 实现类,并将其注入到 UserServicemessageService 字段中。
  • UserService 类里,messageService 字段被直接注入,无需通过构造函数或者 setter 方
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值