Beim Prinzip IoC geht es darum, einem Framework o. Ä. von Aussen Teile des eigenen Codes zu kontrollieren.
Es gibt verschiedene Entwurfsmuster, die dafür geeignet sind. Unter anderem:
Bei Dependency Injection wird die Initialisierung eines Objekts nicht im abhängigen Objekt sondern zum Beispiel mittels zentralen Konfiguration ausgelagert.
Spring Boot erlaubt folgende Arten von Injection für Beans-Klassen (@Component, @Service, @Repository, @Controller, …)
public class ProjectApiController implements ProjectApi { @Autowired private final JwtUtil jwtUtil; ... }
Anmerkungen:
final seinpublic class ProjectApiController implements ProjectApi { private final JwtUtil jwtUtil; @Autowired public ProjectApiController(JwtUtil jwtUtil) { this.jwtUtil = jwtUtil; } ... }
Anmerkungen:
@Autowired ist optional, sofern es nur einen Konstruktor gibt.public class ProjectApiController implements ProjectApi { @Autowired private final JwtUtil jwtUtil; ... }
Anmerkungen: