Java Vanilla
Áttekintés
A Java Vanilla egy egyszerű Java projekt, amely csak a standard könyvtárat és egy könnyű HTTP szervert használ. Tiszta kiindulópontot biztosít webalkalmazások és REST API-k építéséhez keretrendszer nélkül.
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 Java Vanilla 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>
Projekt buildelése
mvn clean package
Alkalmazás futtatása
java -jar target/app.jar
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 vagy Maven telepítve a gépedre, használhatod a Dockert a projekt 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 mvn clean package
# Alkalmazás futtatása
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/app.jar
Projekt struktúra
├── src/
│ └── main/
│ └── java/
│ └── com/example/
│ ├── App.java # Belépési pont és HTTP szerver
│ ├── handlers/ # Kérés kezelők
│ └── models/ # Adat modellek
├── pom.xml # Maven függőségek
└── Dockerfile # Docker konfig
Gyakori feladatok
HTTP Handler létrehozása
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import java.io.IOException;
import java.io.OutputStream;
public class UsersHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
String response = "{\"message\": \"Hello from Java!\"}";
exchange.getResponseHeaders().set("Content-Type", "application/json");
exchange.sendResponseHeaders(200, response.length());
try (OutputStream os = exchange.getResponseBody()) {
os.write(response.getBytes());
}
}
}
Adatbázis kapcsolat JDBC-vel
import java.sql.*;
String url = "jdbc:mysql://db.<session-domain>:3306/<username>";
Connection conn = DriverManager.getConnection(url, "username", "password");
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
stmt.setInt(1, userId);
ResultSet rs = stmt.executeQuery();
Hasznos parancsok
mvn clean package
Projekt buildelése
java -jar target/app.jar
Alkalmazás futtatása
mvn dependency:tree
Függőségi fa megjelenítése
Hibaelhárítás
java.sql.SQLException: Access denied
Megoldás: Ellenőrizd, hogy a JDBC kapcsolati URL, felhasználónév és jelszó megegyezik-e a vezérlőpulton megjelenő hitelesítő adatokkal.
Port 8080 already in use
Megoldás: Változtasd meg a portot az App.java fájlban, vagy állítsd le a 8080-as portot használó másik folyamatot.
ClassNotFoundException for JDBC driver
Megoldás: Győződj meg róla, hogy a MySQL JDBC driver szerepel a pom.xml függőségei között, és futtasd újra az mvn clean package parancsot.