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()
}
}Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Poniżej dodatkowy przykład (bazuje na tym, co już jest w odpowiedzi):
@Service
class UserService(private val userRepository: UserRepository) {
fun getUser(id: Long): User {
return userRepository.findById(id).orElseThrow()
}
}