🚀 Spring Boot Basic - Tag 6

DI & AOP - Dependency Injection & Aspektorientierte Programmierung

Von Elyndra Valen, Senior Entwicklerin bei Java Fleet Systems Consulting

📚 Willkommen zum Tag 6!

In diesem Projekt lernst du die fortgeschrittenen Konzepte von Spring Boot kennen:

🔧 Dependency Injection

Verstehe, wie Spring Beans verwaltet und injiziert

  • Constructor Injection (Best Practice)
  • @Qualifier & @Primary
  • Bean Lifecycle (@PostConstruct, @PreDestroy)

✨ AOP (Aspect-Oriented Programming)

Cross-Cutting Concerns elegant lösen

  • @Aspect für Logging
  • @Around für Performance-Messung
  • Custom Annotations (@Timed)

🎨 Praktisches Beispiel

Vollständige Personen-Verwaltung

  • InMemoryPersonService (@Primary)
  • CachedPersonService (Alternative)
  • Automatisches Logging & Performance-Tracking

💡 Was du hier siehst

1. Constructor Injection (Best Practice)

Der PersonViewController nutzt Constructor Injection mit Lombok:

@Controller
@RequiredArgsConstructor  // Lombok generiert Constructor!
public class PersonViewController {
    private final PersonService personService;
}

2. AOP Logging

Der LoggingAspect loggt automatisch alle Service-Methoden:

@Before("execution(* com.javafleet.springboot.service.*.*(..))")
public void logBefore(JoinPoint joinPoint) {
    // Automatisches Logging VOR jeder Methode!
}

3. Performance-Messung mit @Timed

Custom Annotation für selektive Performance-Messung:

@Timed  // Diese Methode wird gemessen!
public Person createPerson(Person person) {
    // Business-Logic
}

🚀 Schnellstart

  1. Projekt in NetBeans/IntelliJ öffnen
  2. Maven Dependencies laden: mvn clean install
  3. Projekt starten: mvn spring-boot:run
  4. Browser öffnen: http://localhost:8080
  5. Personen-Verwaltung testen: /persons
  6. Console beobachten: Logging & Performance-Ausgaben!

👥 Jetzt ausprobieren!

Gehe zur Personen-Verwaltung und füge eine Person hinzu.
Beobachte dabei die Console – du siehst alle Aspects in Aktion!

Zur Personen-Verwaltung →