Dependency Injection polega na tym, że obiekt dostaje swoje zależności z zewnątrz (zwykle przez konstruktor), zamiast tworzyć je sam przez new. W Springu kontener IoC tworzy beany, wstrzykuje zależności i zarządza cyklem życia, zmniejszając coupling i ułatwiając testowanie.
@Service
class UserService(private val userRepository: UserRepository) {
fun getUser(id: Long): User {
return userRepository.findById(id).orElseThrow()
}
}