自动依赖注入(DI),解耦代码
使用 @Autowired、@Resource 可以自动注入依赖对象,不用手动传递、不用关心对象创建顺序,模块间耦合度大幅降低,便于扩展和测试。
传统方式:手动创建和传递依赖
| public class UserService {
private UserRepository userRepository;
// 手动创建依赖
public UserService() {
this.userRepository = new UserRepository();
}
// 或通过构造函数传递
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUserById(Long id) {
return userRepository.findById(id);
}
}
|
自动注入依赖
| @Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User getUserById(Long id) {
return userRepository.findById(id);
}
}
|