Webserver für Java?

3 Antworten

Mit Spring (Initializr) kannst du dir relativ schnell eine Basis schaffen. Schau dafür in den dazugehörigen Schritt-für-Schritt-Guide von Spring Using WebSocket to build an interactive web application.

Was ist gut dafür, und was machen Netty und Spring?

Spring ist ein klar strukturiertes Webframework, welches unter anderem Dependency Injection unterstützt. Für das Kernprojekt gibt es noch zahlreiche Erweiterungen, die für verschiedene Aspekte (z.B. Datenbankzugriff oder Sicherheitsmechanismen) entsprechende Funktionalitäten bieten. Für die Entwicklungsphase kannst du den in Spring Boot integrierten Tomcat-Server nutzen. Wenn du möchtest, kannst du diesen aber ebenso gegen einen anderen Webserver (z.B. Jetty oder Undertow) austauschen.

Jetty ist ein Webserver für Java-Webanwendungen.


IchHabEineFr912 
Beitragsersteller
 23.09.2024, 15:32

Wäre nicht etwas leichteres, wie Javalin besser? Spring ist doch, (soweit ich gehört habe) recht ressourcenintensiv, während ich ja nur Basic-Funktionen brauche.

regex9  23.09.2024, 18:33
@IchHabEineFr912

Spring selbst ist wie schon geschrieben recht modular und flexibel aufgebaut, sodass es sich für viele verschiedene Anwendungsfälle (wie eben REST-APIs oder WebSocket-Kommunikation) im Webbereich eignet. Wenn du aber bereits weißt, dass Javalin dir ebenso alles bietet, was du brauchst, dann wäre das aufgrund seiner Einfachheit die noch bessere Wahl.

Ich kann dir Javalin als Webserver(-Framework) empfehlen. Benutzt Netty (der eigentliche Webserver) im Hintergrund. Ob Websockets gehen weiß ich aber nicht. Spring geht auch, finde ich aber deutlich komplexer. Spring ist ein großes Framework auch für web development. Wenn du viel mit Datenbanken, etc. machst kann sich das aber auch anbieten


Du kannst Webframeworks wie Spring oder Spring Boot verwenden. Alle weiteren die Javalin oder sonstige Backend-Frameworks sind so klein, dass du im Job Markt kaum Anschluss dazu findest. Mit den beliebten Frameworks hast du viel mehr Möglichkeiten und einen viel besseren Community Support. Du findest viel einfach Leute, die dir bei deinem Problem helfen können, findest mehr Videos und Dokus und zu fast jedem Error den du in der Programmierung erhältst gibt es bereits die passende Frage inklusive Lösung in einem Forum.

Zu deinem Punkt, welchen du unten in den Kommentaren zu "Ressourcen" schilderst:

Der Ressourcen-Ersparnis zu anderen Java-Frameworks ist in der Praxis so gering, dass es kaum der Rede Wert ist. Und vergiss irgendwelche Benchmarks von Frameworks, da diese eigentlich alle sehr praxisfern sind.

In den Ressourcen-Ersparnissen reden wird von minimalen Mehraufwand des Systems, welche sich nie Bemerkbar machen werden. Davor wirst du den Server eh "upgraden", damit dein Server stabil läuft.

Wenn dir Ressourcen wirklich wichtig sind, dann programmiere dein Backend in Rust.

Ich habe mich in meinen Anfängen sehr intensiv damit beschäftig, welche die "beste" Backend Programmiersprache ist und da sagt dir jeder was anderes.

Verwende die Sprache die du kannst und wenn du wirklich Ressourcen sparen willst bleibt dir nur Rust oder C++ (Go und etc sind halt auch nur Lösungen zwischen Python und Rust).

Zusammenfassend: Wenn du ein Framework für deine Sprache suchst, nimm das welches dir eher zusagt und welches in der Community und auf dem Jobmarkt eher vertreten sind. Die Unterschiede dazu sind zu minimal.

Wenn du "all in" gehen willst brauchst du Rust oder C++, aber hier leigt meine Definitive Empfehlung bei Rust, da du hier den RAM nicht selbst verwalten musst. Das spart die Zeit, Wissen und bringt dir mehr Sicherheit (die meisten Systeme sowie Games werden durch Manipulation den RAMs "gehackt").

Als Hosting-Anbieter kann ich dir Hetzner Cloud empfehlen. Der Anbieter ist deutsch (unterliegt somit der DSGVO), hat für mich von allen deutschen Anbietern das beste Preis-Leistungs-Verhältnis und das beste zum Schluss: Du kannst deinen Server jederzeit auf den nächst größeren Plan erweitern. Server herunterfahren -> nächst größeren Plan auswählen -> und du hast mehr Leistung.

Dieses Feature fehlt mir bei den meisten Anbietern. Ich war lange bei IONOS und da kannst du zwar mit Hilfe des Supports zum nächst größeren Plan wechseln, allerdings wird dann dein aktueller Server gelöscht und du bekommst nen neuen. Somit musst du den kompletten Server neu aufsetzten....