Milyen módszerekkel valósítható meg a függőség injektálás a Spring keretrendszerben?
sobes.tech MI
Válasz az MI-től
A Spring Framework-ben a függőségek (Dependency Injection, DI) három fő módon valósulnak meg:
-
Konstruktoron keresztül (Constructor Injection) — a függőségek a osztály konstruktorának paraméterein keresztül kerülnek átadásra. Ez a legajánlottabb módszer, mivel lehetővé teszi a változatlan objektumok létrehozását és megkönnyíti a tesztelést.
-
Settereken keresztül (Setter Injection) — a függőségek a létrehozás után setter metódusokon keresztül kerülnek beállításra.
-
Mezőkön keresztül (Field Injection) — a függőségek közvetlenül a osztály mezőibe kerülnek injektálásra az
@Autowiredannotáció segítségével. Ez a módszer kevésbé ajánlott a tesztelhetőség és a gyenge enkapszuláció miatt.
Példa függőség injektálására konstruktorral:
@Component
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
// osztály metódusai
}
A Spring automatikusan létrehozza és injektálja a szükséges UserRepository bean-t a UserService létrehozásakor.