Sobes.tech
Junior — Middle

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:

  1. 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.

  2. 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.

  3. 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 @Autowired annotá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.