Skip to content

自动依赖注入(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);
    }
}

自动注入依赖

1
2
3
4
5
6
7
8
9
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public User getUserById(Long id) {
        return userRepository.findById(id);
    }
}