Spring Boot
Überblick
Spring Boot ist ein Java-Framework, das die Erstellung eigenständiger, produktionsreifer Anwendungen erleichtert. Es bietet Auto-Konfiguration, eingebettete Server und einen opinionated Ansatz zum Erstellen von REST-APIs und Webanwendungen.
Schnellstart
Repository aus Vorlage erstellen
Gehen Sie in Ihrem Dashboard zum Tab Tools & Deployment. Klicken Sie auf "New Repository", wählen Sie die Spring Boot-Vorlage aus dem Dropdown, geben Sie einen Repository-Namen und eine Subdomain ein und klicken Sie auf "Create Repository".
Ihr Repository klonen
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Datenbank konfigurieren
Aktualisieren Sie src/main/resources/application.properties mit Ihren Dashboard-Anmeldedaten:
spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
Erstellen und Ausführen
./mvnw spring-boot:run
Der Server läuft standardmäßig auf http://localhost:8080.
Ihre Änderungen hochladen
git add .
git commit -m "Initial setup"
git push origin main
Lokale Entwicklung mit Docker
Wenn Sie Java nicht lokal installiert haben, können Sie Docker verwenden, um Ihre Spring Boot-Anwendung zu erstellen und auszuführen.
Befehle mit Docker ausführen
# Projekt erstellen
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 ./mvnw clean package -DskipTests
# Anwendung ausführen
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/*.jar
Datenbank-Konfiguration
Die NStrim-Plattform stellt Ihnen eine MySQL/MariaDB-Datenbank zur Verfügung. Konfigurieren Sie Ihre application.properties-Datei mit den richtigen Anmeldedaten.
Vollständige Konfiguration
spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
student01). Überprüfen Sie den Anmeldedaten-Bereich Ihres Dashboards für die genauen Werte.Projektstruktur
├── src/
│ └── main/
│ ├── java/com/example/
│ │ ├── Application.java # Spring Boot Einstiegspunkt
│ │ ├── controllers/ # REST-Controller
│ │ ├── models/ # JPA-Entities
│ │ ├── repositories/ # Spring Data Repositories
│ │ └── services/ # Geschäftslogik
│ └── resources/
│ ├── application.properties # Konfiguration
│ ├── templates/ # Thymeleaf-Vorlagen
│ └── static/ # CSS, JS, Bilder
├── pom.xml # Maven-Abhängigkeiten
└── Dockerfile # Docker-Konfiguration
Häufige Aufgaben
REST-Controller erstellen
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping
public List<User> getAll() {
return userRepository.findAll();
}
@PostMapping
public User create(@RequestBody User user) {
return userRepository.save(user);
}
}
JPA-Entity erstellen
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters and setters
}
Repository erstellen
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
Nützliche Befehle
./mvnw spring-boot:run
Entwicklungsserver starten
./mvnw clean package
Projekt erstellen
./mvnw test
Tests ausführen
./mvnw dependency:tree
Abhängigkeitsbaum anzeigen
Fehlerbehebung
Communications link failure / Connection refused
Ursache: Der Datenbank-Host ist falsch oder nicht erreichbar.
Lösung: Überprüfen Sie, ob spring.datasource.url mit dem Datenbank-Host aus Ihrem Dashboard übereinstimmt.
Access denied for user
Ursache: Falscher Benutzername oder Passwort.
Lösung: Überprüfen Sie, ob spring.datasource.username und spring.datasource.password genau mit Ihren Dashboard-Anmeldedaten übereinstimmen.
Port 8080 already in use
Lösung: Fügen Sie server.port=8081 zu application.properties hinzu oder beenden Sie den anderen Prozess.
Whitelabel Error Page (404)
Ursache: Kein Controller ist der angeforderten URL zugeordnet.
Lösung: Stellen Sie sicher, dass Ihr Controller die richtige @RequestMapping-Annotation hat und die Anwendung die richtigen Pakete scannt.