在 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实现类,并将其注入到UserService的messageService字段中。- 在
UserService类里,messageService字段被直接注入,无需通过构造函数或者 setter 方

最低0.47元/天 解锁文章
674

被折叠的 条评论
为什么被折叠?



