Micronaut Deep Dive
Compile-Time DI, AOT, HTTP Clients, Configuration, Tests und Framework-Entscheidung.
Version 2MicronautCodeDiagramm
In dieser Datei
Compile-Time statt Laufzeit-Magie
Micronaut erzeugt viel Metadatenarbeit zur Compile-Zeit. Das reduziert Reflection und kann schnelle Starts sowie geringeren Speicherbedarf unterstützen.
Wann Micronaut passt
Micronaut ist interessant für Microservices, Serverless, modulare Services und Teams, die Compile-Time DI bewusst nutzen wollen. Entscheidend bleibt die Unternehmensreife: Wissen, Support, Libraries und Betrieb.
Framework-Migration realistisch bewerten
Ein Wechsel von Spring oder Jakarta EE zu Micronaut ist nicht nur Annotationstausch. Konfiguration, Testing, Security, Datenzugriff, Observability und Build-Prozess müssen zusammen betrachtet werden.
Entscheidungen
| Entscheidung | Gute Praxis | Prüffrage |
|---|---|---|
| Fachliche Grenze | Zuerst Use Case, Invariante und Verantwortlichkeit klären. | Welche Geschäftsentscheidung wird geschützt? |
| Technische Grenze | Framework-/Library-Code hinter Port, Adapter oder Konfiguration kapseln. | Kann die Domain ohne Framework getestet werden? |
| Betrieb | Timeouts, Logs, Metriken, Traces, Security und Rollback definieren. | Wie erkennt der Betrieb Fehler rechtzeitig? |
Ausführliche Beispiele
Micronaut Controller
@Controller("/orders")
public class OrderController {
private final PlaceOrderUseCase placeOrder;
public OrderController(PlaceOrderUseCase placeOrder) {
this.placeOrder = placeOrder;
}
@Post
HttpResponse<IdResponse> place(@Body PlaceOrderRequest request) {
OrderId id = placeOrder.place(request.toCommand());
return HttpResponse.created(new IdResponse(id.value()));
}
}
Typed Configuration
@ConfigurationProperties("partner.billing")
public record BillingConfiguration(
URI baseUrl,
Duration timeout,
int maxRetries
) {}
Typische Stolperfallen
| Stolperfalle | Warum gefährlich |
|---|---|
| Annotation Processing falsch konfiguriert | Build schlägt spät oder unklar fehl. |
| Framework nach Trend wählen | Team- und Betriebswissen sind genauso wichtig. |
| Zu große Kontexttests | Reine Domain braucht keinen Framework-Test. |