Getting Started — Spring Initializr & erste App
Willkommen bei Spring Boot
Spring Boot ist das weltweit meistgenutzte Java-Framework für Microservices und Web-Anwendungen. Es eliminiert Boilerplate, bietet Auto-Konfiguration und lässt dich in Minuten eine produktionsbereite App starten.
Lektion 1: Was ist Spring Boot?
Spring Boot baut auf dem Spring Framework auf und fügt hinzu:
- Auto-Konfiguration — Spring errät die Konfiguration anhand der Klassenpfad-Abhängigkeiten
- Starters —
spring-boot-starter-webzieht alles für Web-Apps - Embedded Server — Tomcat ist eingebettet, kein WAR-Deployment nötig
- Produktions-Features — Health Checks, Metriken, externes Config via Actuator
Konvention über Konfiguration
Spring Boot folgt dem Prinzip "Convention over Configuration": Wenn spring-boot-starter-web
im Klassenpfad ist, konfiguriert Spring automatisch einen eingebetteten Tomcat, einen
DispatcherServlet und JSON-Serialisierung. Du musst nichts davon manuell einrichten.
Lektion 2: Spring Initializr
Das Spring Initializr generiert ein Projekt-Skeleton. Du wählst:
- Build-Tool: Maven oder Gradle
- Sprache: Java (wir nutzen Java 21)
- Spring Boot Version: 3.x
- Dependencies: z.B. Spring Web, Spring Data JPA
Das generierte Projekt hat diese Struktur:
src/main/java/com/example/demo/
DemoApplication.java ← @SpringBootApplication
src/main/resources/
application.properties ← Konfiguration
pom.xml ← Maven-Build-Datei
Lektion 3: Deine erste App
Die main-Methode startet Spring Boot:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Ein erster REST-Controller:
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
Starte die App und öffne http://localhost:8080/api/hello.
Lektion 4: Auto-Konfiguration verstehen
Spring Boot's @EnableAutoConfiguration (enthalten in @SpringBootApplication)
scant den Klassenpfad und registriert Beans automatisch:
| Klassenpfad-Dependenz | Auto-Konfiguration |
|---|---|
spring-boot-starter-web | Tomcat, DispatcherServlet, Jackson |
spring-boot-starter-data-jpa | DataSource, EntityManagerFactory, Repositories |
spring-boot-starter-security | SecurityFilterChain, Default-Auth |
Lektion 5: Konfiguration & application.properties
server.port=8080
spring.application.name=demo
spring.datasource.url=jdbc:h2:mem:testdb
Überschreibbar per Umgebungsvariable: SERVER_PORT=9090 java -jar app.jar.
Externe Konfiguration
Spring Boot lädt Konfiguration aus mehreren Quellen in einer festen Reihenfolge:
- Kommandozeilenargumente
- Umgebungsvariablen
application.properties/application.yml- Standardwerte im Code
Spätere Quellen überschreiben frühere. Das macht 12-Factor-Apps einfach.
Starters sind kuratierte Abhängigkeits-Bündel
Ein Starter wie spring-boot-starter-web zieht nicht eine Bibliothek, sondern
einen ganzen Satz transitive Abhängigkeiten — alle getestet, versionskompatibel.
Das eliminiert Dependency-Hell. Statt 15 einzelne JARs mit Versionskonflikten
deklarierst du einen Starter und Spring Boot kümmert sich um den Rest.
Praxis-Szenario: Das erste Projekt
Dein Team soll eine REST-API für eine Todo-App bauen. Der Tech Lead sagt: 'Nutzt Spring Boot.' Du öffnest start.spring.io — welche Dependencies wählst du und wie strukturierst du das Projekt?
✅ Wichtige Erkenntnisse
Haken setzen, um deinen Lernfortschritt zu markieren: