Spring Boot
Áttekintés
A Spring Boot egy Java keretrendszer, amely megkönnyíti önálló, termelésre kész alkalmazások létrehozását. Automatikus konfigurálást, beágyazott szervereket és véleményes megközelítést biztosít REST API-k és webalkalmazások építéséhez.
Gyorsindítás
Repository létrehozása sablonból
A vezérlőpultodon menj a Tools & Deployment fülre. Kattints a "New Repository" gombra, válaszd ki a Spring Boot sablont a legördülő menüből, add meg a repository nevét és az aldomaint, majd kattints a "Create Repository" gombra.
Repository klónozása
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Adatbázis konfigurálása
Frissítsd az src/main/resources/application.properties fájlt a vezérlőpulton található hitelesítő adatokkal:
spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
Build és futtatás
./mvnw spring-boot:run
A szerver alapértelmezetten a http://localhost:8080 címen fut.
Változtatások feltöltése
git add .
git commit -m "Initial setup"
git push origin main
Helyi fejlesztés Dockerrel
Ha nincs Java telepítve a gépedre, használhatod a Dockert a Spring Boot alkalmazásod buildeléséhez és futtatásához.
Parancsok futtatása Dockerrel
# Projekt buildelése
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 ./mvnw clean package -DskipTests
# Alkalmazás futtatása
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/*.jar
Adatbázis konfiguráció
Az NStrim platform MySQL/MariaDB adatbázist biztosít számodra. Konfiguráld az application.properties fájlt a megfelelő hitelesítő adatokkal.
Teljes konfiguráció
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). Ellenőrizd a vezérlőpult hitelesítő adatok részét a pontos értékekért.Projekt struktúra
├── src/
│ └── main/
│ ├── java/com/example/
│ │ ├── Application.java # Spring Boot belépési pont
│ │ ├── controllers/ # REST controllerek
│ │ ├── models/ # JPA entitások
│ │ ├── repositories/ # Spring Data repository-k
│ │ └── services/ # Üzleti logika
│ └── resources/
│ ├── application.properties # Konfiguráció
│ ├── templates/ # Thymeleaf sablonok
│ └── static/ # CSS, JS, képek
├── pom.xml # Maven függőségek
└── Dockerfile # Docker konfig
Gyakori feladatok
REST Controller létrehozása
@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 létrehozása
@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 létrehozása
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
Hasznos parancsok
./mvnw spring-boot:run
Fejlesztői szerver indítása
./mvnw clean package
Projekt buildelése
./mvnw test
Tesztek futtatása
./mvnw dependency:tree
Függőségi fa megjelenítése
Hibaelhárítás
Communications link failure / Connection refused
Ok: Az adatbázis host helytelen vagy nem elérhető.
Megoldás: Ellenőrizd, hogy a spring.datasource.url megegyezik-e a vezérlőpulton megjelenő adatbázis hosttal.
Access denied for user
Ok: Hibás felhasználónév vagy jelszó.
Megoldás: Ellenőrizd, hogy a spring.datasource.username és spring.datasource.password pontosan megegyezik-e a vezérlőpulton megjelenő hitelesítő adatokkal.
Port 8080 already in use
Megoldás: Add hozzá a server.port=8081 sort az application.properties fájlhoz, vagy állítsd le a másik folyamatot.
Whitelabel Error Page (404)
Ok: Nincs controller hozzárendelve a kért URL-hez.
Megoldás: Győződj meg róla, hogy a controllered rendelkezik a megfelelő @RequestMapping annotációval, és az alkalmazás a megfelelő csomagokat vizsgálja.