Erstes Spring Boot Projekt: Gameserver-Manager

Bela B.

Aktives Mitglied
Hallo zusammen,

ich will mich in den EE-Bereich wagen und habe zum erfolgreicheren Lernen auch ein Projekt, das ich gerne umsetzen würde:
Gameservermanager für das Spiel Project Zomboid

Der eigentliche Gameserver wird dabei mittels LGSM betrieben, d.h. meine Weboberfläche interagiert dann mit dem sh-Script mit dem eigentlichen Server.
Umsetzen will ich das ganze mittels Spring Boot.
Folgende Anforderungen habe ich aktuell:
  1. User-System: User-System mit unterschiedlichen Rollen, so z.B. eine "Moderator"-Rolle, die die zugewiesenen Gameserver nur moderieren, also Logs checken, User kicken/bannen, zur Whitelist hinzufügen, ... können soll. Daneben gibt es dann z.B. eine Rolle "Servermanager", der dann den Server auch neustarten, updaten, stoppen, ... kann.
  2. Verwaltung mehrerer Server: Jeder Benutzer kann für mehrere Server zuständig sein
  3. Logging: Es sollen die Aktionen, die ein Benutzer ausführt, geloggt werden
  4. Servereinstellungen editieren: Es soll je nach Rolle möglich sein, dass der eingeloggte Benutzer gewisse Servereinstellungen ändern kann. Je nach Rolle stehen andere Einstellungen zur Änderung zur Verfügung

Dabei stellen sich mir allerdings zu Beginn direkt ein paar Fragen:
  1. Seht ihr das Projekt für einen EE-Anfänger als zu Umfangreich?
  2. Wie setze ich am besten meine Testumgebung auf (Programmierung sowohl unter Fedora 31 und Windows 10)? Für die Userverwaltung würde ich auf JPA und MariaDB zurückgreifen.
  3. Was sind die dafür empfohlenen Spring dependencies? Aktuell habe ich an folgendes gedacht:
    • Spring Web
    • Thymeleaf
    • Spring Security
    • Spring Data JPA
    • MySQL Driver
  4. Tipps zur Strukturierung der DB und der Anwendung selbst? Gute Tutorials/Bücher?
Für den Anfang denke ich war es das, ist eh eine ganze Menge (sorry).
Hoffe, ihr könnt mir da einige Tipps geben.

Ich versuche mir gerade anhand JavaBrains Spring Boot beizubringen.

EDIT:
Und seht ihr die Vorteile von intelliJ Ultimate im Vergleich zu Community Edition für Spring Boot als essentiell an? Wenn es tatsächlich erhebliche Vorteile liefert, bin ich durchaus gewillt, die ~13€/Monat zu bezahlen, dafür muss es dann aber auch das Entwickeln deutlich voran bringen.
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Zu 1) Also generell kann man so ein Projekt machen. Die frage ist, was für Erfahrungen Du halt sonst so hast.... Wenn Du schon entsprechend erfahren bist, dann kannst Du so ein Projekt nutzen um in EE rein zu steigen. Das geht auch direkt mit Spring Boot.

zu 2) Also Testumgebung und dann die Frage nach Userverwaltung / Dataenbank? Irgendwie verstehe ich da deine Fragestellung nicht. Generell solltest Du bei der Entwicklung Unit-Tests schreiben. Idealerweise sogar TDD. Solltest Du Unit Tests noch nicht drauf haben, dann wird es bezgl. 1) schon schwer, denn dann hast Du nicht nur den EE Part sondern auch noch den Unit Test Part... Ggf. noch Probleme bezüglich Projektverwaltung und so und dann wird das Projekt in meinen Augen schon problematisch. Dann willst Du evtl. neben den Unit-Tests noch weitere Integration Tests haben. Aber das muss man dann sehen. Am Anfang kann das Overkill sein. Du wirst da ja kaum Nutzer haben und es wird gerade am Anfang ja keine Hochverfügbarkeits-Lösung werden .... also kann man dann die Integration durchaus direkt in der Produktion machen ...

zu 3) Ja, das kann man so machen. Ggf. willst Du aber auch direkt auf Spring Reactive gehen? Dann wäre evtl. auch dieses Buch von Josh Long interessant: https://leanpub.com/u/joshlong (Ist noch nicht ganz fertig da Buch, aber das, was schon fertig ist, lohnt sich schon. Ansonsten hat er zu Reactive Spring auf der O'Reily Plattform auch ein Online Training das er von Zeit zu Zeit hält ... Aber er hat da auf der learning Platform auch mehere Videos. Evtl. willst Du Dich da mal registrieren und dir im Testzeitraum das ansehen?). Ansonsten ist das eine valide Auswahl. Generell kann man sich aber auch überlegen, ob man da evtl. auch auch vaadin oder so gehen möchte... Aber am Anfang ist Spring Web mit Thymeleaf nicht schlecht...

zu 4) Bücher gibt es einige. Ein erster Buch habe ich schon genannt. Aber es gibt rund um Spring extrem viel. Aber man kann da auch sehr viel online lesen:
start.spring.io um schnell ein erstes Projekt zu haben. Ansonsten https://spring.io/quickstart und https://spring.io/guides - da hast Du dann extrem viel an guten Informationen. Natürlich gehören da auch die Seiten zu den Projekten immer dazu, z.B. https://spring.io/projects/spring-boot zu Spring Boot.
 
K

kneitzel

Gast
Bezüglich IntelliJ: Fang erst einmal mit der Community Edition an und nach einem ersten Einstieg teste die Ultimate und Vergleiche selbst....

Wenn du es für gut erachtest, dann Kauf es mit jährlicher Zahlung. Dann sparst du ab dem 2ten Jahr ... ab dem 3ten Jahr bist du dann nur noch bei 89€ - du zahlst fast nur noch die Hälfte ...
 

Bela B.

Aktives Mitglied
Danke für die Antwort JustNobody.

Zu 1: ich habe bisher nur Erfahrung mit Java SE und habe da schon ein paar Schulungen und Bücher durchgemacht. Mit Java EE habe ich bisher aber noch absolut keine Erfahrung, genauso wie mit Spring/Spring Boot, Thymeleaf, Vaadin, Reactive, ...

Zu 2: mit Testumgebung hatte ich nicht TDD gemeint, sondern wie stelle ich auf meinen Coding-PCs eine möglichst ähnliche Umgebung für die Anwendung her, wie sie dann auch in Production läuft.

Mit TDD habe ich bereits erste Erfahrungen in Java SE gemacht, wobei ich da bisher keine Integration Tests gemacht habe.

Zu 3: Habe bisher noch nie etwas von Spring Reactive gehört, muss ich mir Mal näher anschauen. Was sind denn so grob die Vorteile davon? Vaadin habe ich mir heute kurz einen ersten, groben Überblick verschafft, gefällt mir ganz gut. So wie ich das bisher verstanden habe, bleibt mein Backend bei Spring Boot und auch Spring Security ist mit von der Partie. Vaadin ersetzt dann Spring Web und Thymeleaf. Ist das so richtig?

Zu 4: Danke für den Buch-Tipp! Leider gibt es das dann nicht als physisches Buch, was gerade jetzt für den Sommer gut gewesen wäre (durchlesen gemütlich auf dem Balkon, abends dann am PC umsetzen).
 

mrBrown

Super-Moderator
Mitarbeiter
Seht ihr das Projekt für einen EE-Anfänger als zu Umfangreich?
Nein, komplex ist höchstens die Interaktion mit LGSM, aber lösbar ist das sicherlich.


Wie setze ich am besten meine Testumgebung auf (Programmierung sowohl unter Fedora 31 und Windows 10)? Für die Userverwaltung würde ich auf JPA und MariaDB zurückgreifen.
Zum Testen empfiehlt sich H2 als in-Memory-Datenbank, auch wenn man für die echte Variante dann MariaDB nutzt. Austauschen lässt sich das über Spring-Profile.


Was sind die dafür empfohlenen Spring dependencies? Aktuell habe ich an folgendes gedacht:
  • Spring Web
  • Thymeleaf
  • Spring Security
  • Spring Data JPA
  • MySQL Driver
Für den Anfang sieht das passend aus, ich würde in jedem Fall mit Thymeleaf starten, dass ist deutlich einsteigerfreundlicher als die anderen Varianten.
Wenn man später was anderes will, kann man das recht einfach zusätzlich implementieren.
 

Bela B.

Aktives Mitglied
Habe mir heute ein Tutorial von Vaadin angeschaut und mir sagt es deutlich mehr zu als Thymeleaf, denke ich gehe darauf.

Ich bin mir noch etwas unschlüssig, wie ich einige grundlegende Model-Dinge handhabe.

Die Gameservereinstellungen sind z.B. auf mehrere Dateien aufgeteilt und ich will, dass nicht jede Benutzergruppe alle Einstellungen ändern bzw. sehen kann. Beispiel dafür ist das Rcon Passwort.

Kann ich bei Spring Boot bzw. EE generell ganz klassisch mit UML planen? Bin gerade am skizzieren auf Papier und würde das dann in UML packen. Mit den Automatismen von Spring Boot ist doch aber nicht direkt von vornherein ersichtlich, was durch DI dann wie zusammenhängt (zum Großteil bestimmt, aber da gibt es bestimmt Sonderfälle).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Ist es möglich in Spring Entity generische Listen verwenden Frameworks - Spring, Play, Blade, Vaadin & Co 3
R Spring Boot Test Assertions mit Objekten Frameworks - Spring, Play, Blade, Vaadin & Co 6
8u3631984 Pfad zu Test Datei in application.yml in Spring Boot Test Frameworks - Spring, Play, Blade, Vaadin & Co 7
R Spring Boot sql Beziehungen Frameworks - Spring, Play, Blade, Vaadin & Co 12
8u3631984 Spring JPA Probleme beim SPeichern von Sets Frameworks - Spring, Play, Blade, Vaadin & Co 3
M Spring Boot 3 Datenbanken zur Laufzeit Verbinden Frameworks - Spring, Play, Blade, Vaadin & Co 5
8u3631984 Spring JDBC Probleme beim Spaltennamen Frameworks - Spring, Play, Blade, Vaadin & Co 3
LimDul Spring-Batches in Docker über Rest starten/verfolgen Frameworks - Spring, Play, Blade, Vaadin & Co 0
ExceptionOfExpectation In Meiner Spring-Boot Applikation verlangt die Datenbank Wert für eine ID Frameworks - Spring, Play, Blade, Vaadin & Co 5
H Spring Boot Applikation und JHM Benchmark sowie ContextConfiguration in H2 Tests ich bekomme es nicht hin Frameworks - Spring, Play, Blade, Vaadin & Co 2
ExceptionOfExpectation Tests in Spring-Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
R Eure Erfahrungen mit Primefaces und Spring - wer managed die Beans Frameworks - Spring, Play, Blade, Vaadin & Co 4
Avalon Get Request doppelt abfeuern ohne Post Redirect Get Pattern. Spring Boot Thymeleaf MVC Frameworks - Spring, Play, Blade, Vaadin & Co 12
thor_norsk Konfigurationsprobleme mit Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 9
R Spring Boot Integration-testing mit Keycloak Frameworks - Spring, Play, Blade, Vaadin & Co 1
R Spring Boot Integration-testing mit Keycloak Frameworks - Spring, Play, Blade, Vaadin & Co 13
L Spring Data und Rest Controller? Frameworks - Spring, Play, Blade, Vaadin & Co 4
thor_norsk Spring Boot Fehler Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Spring Data und Rest Conroller? Frameworks - Spring, Play, Blade, Vaadin & Co 4
thor_norsk Spring Boot und Docker Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring Amazon-SP-Api Frameworks - Spring, Play, Blade, Vaadin & Co 3
8u3631984 Aktualisiere Spring Controller Frameworks - Spring, Play, Blade, Vaadin & Co 4
L Spring Data: Modellierung mit einer Embeddable bean Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Spring Boot Test ob Validation geprüft wurde Frameworks - Spring, Play, Blade, Vaadin & Co 8
K Spring Boot OneToMany Frameworks - Spring, Play, Blade, Vaadin & Co 6
8u3631984 Spring Boot Docker Image erstellen und mit docker-compose konfigurieren Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Wann Spring Batch nutzen? Frameworks - Spring, Play, Blade, Vaadin & Co 1
P Spring Hessian Remote Beispiel Frameworks - Spring, Play, Blade, Vaadin & Co 20
8u3631984 Spring 2.7.8 Info Enpoint nicht zuerreichen Frameworks - Spring, Play, Blade, Vaadin & Co 1
gradlew.bat spring-boot:run funktioniert nicht Frameworks - Spring, Play, Blade, Vaadin & Co 4
Zrebna Spring Boot/Thymeleaf: Bestätigungsemail senden. Frameworks - Spring, Play, Blade, Vaadin & Co 2
Zrebna Spring - Thymeleaf: Wieso wird gem. Fallunterscheidung entsprechende View nicht geladen? Frameworks - Spring, Play, Blade, Vaadin & Co 3
Dimax Spring UsernameNotFoundException(msg); auf der View msg ausdrücken Frameworks - Spring, Play, Blade, Vaadin & Co 1
Dimax Spring UsernameNotFoundException(Message) auf der View Message ausdrücken Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring Boot und JPA Error creating bean Frameworks - Spring, Play, Blade, Vaadin & Co 24
R Spring Security: Wie kommt 'UserDetails' an Username und Passwort ran? Frameworks - Spring, Play, Blade, Vaadin & Co 6
R Spring Security: Wie den User dynamisch authentifizieren? Frameworks - Spring, Play, Blade, Vaadin & Co 8
R Spring Security: Authentication & Permissions Frameworks - Spring, Play, Blade, Vaadin & Co 4
R Spring Boot: Warum soll PasswordEncoder in einer neuen Methode definiert sein? Frameworks - Spring, Play, Blade, Vaadin & Co 1
8u3631984 Cross-Origin beim Abrufen von Spring Endpoint Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Spring Boot und Microservices Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Boot additional Datasource for a single entity Frameworks - Spring, Play, Blade, Vaadin & Co 0
T Spring Resourcen Ordner ermitteln Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring JPA und Repository Frameworks - Spring, Play, Blade, Vaadin & Co 12
D Mapstruct Dependency Injection funktioniert nicht mit Spring Frameworks - Spring, Play, Blade, Vaadin & Co 15
Avalon Wie sieht bei Euch das Deployment einer Spring Boot Anwendung aus? Frameworks - Spring, Play, Blade, Vaadin & Co 4
M Threads in Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 7
W DI-Problem in Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
T Spring Boot: Was bewirkt parent in maven genau? Frameworks - Spring, Play, Blade, Vaadin & Co 4
T Spring Security: Run-as replacement Einsatzbereich? Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Vaadin+Spring Boot erster Seitenload nach Neustart endlos Frameworks - Spring, Play, Blade, Vaadin & Co 0
doncarlito87 Wie erhalte ich ein JSON aus eine NativeQuery (Spring Boot)? Frameworks - Spring, Play, Blade, Vaadin & Co 8
Avalon @Query Select Abfrage liefert falsche Werte (Spring Boot, JPA, Hibernate) Frameworks - Spring, Play, Blade, Vaadin & Co 3
Avalon Erstellung Dockerimage mit spring-boot:build-image in Spring Boot mit Umgebungsvariablen Frameworks - Spring, Play, Blade, Vaadin & Co 0
N Spring Integration - Logging Frameworks - Spring, Play, Blade, Vaadin & Co 7
D Spring Boot Field Injection in MapStruct Frameworks - Spring, Play, Blade, Vaadin & Co 5
D Spring Anfänger benötigt Hilfe Frameworks - Spring, Play, Blade, Vaadin & Co 9
OnDemand Spring Boot seltsame Logeinträge: Manipulationsversuche? Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Spring Date keine neue Tabelle fuer Attribut Frameworks - Spring, Play, Blade, Vaadin & Co 1
T Spring Security Config File anpassen Frameworks - Spring, Play, Blade, Vaadin & Co 1
8u3631984 Spring Cloud : Resttemplate mit Loadballancer Frameworks - Spring, Play, Blade, Vaadin & Co 11
Dimax Spring resource not found Frameworks - Spring, Play, Blade, Vaadin & Co 2
M Spring MongoDB unique index Frameworks - Spring, Play, Blade, Vaadin & Co 3
M Spring Entity testen Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Entity testen Frameworks - Spring, Play, Blade, Vaadin & Co 5
Dimax Spring App Probleme beim Ausführen auf dem Tomcat Server Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Spring WebFlux Cors konfigurieren Frameworks - Spring, Play, Blade, Vaadin & Co 1
Dimax Schöne View mit anchor scrolling in Spring Frameworks - Spring, Play, Blade, Vaadin & Co 2
Dimax Spring JPA Multiple Keys Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Security mit oauth2 in lokaler Konfiguration principal mocken Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring Boot Mile Stone und Snapshot Versionen Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Boot Exception Body Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Was ist das Framework "Spring"? Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Unit/Integrations Testing Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Spring Unit Test: UnsatisfiedDependencyException: Error creating bean with name Frameworks - Spring, Play, Blade, Vaadin & Co 2
H Resource Liste Lazy Autowired Spring Context Frameworks - Spring, Play, Blade, Vaadin & Co 2
M Java Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 5
M Spring Security Login with Credentials Frameworks - Spring, Play, Blade, Vaadin & Co 0
N Spring Boot - Overkill für private Projekte? Frameworks - Spring, Play, Blade, Vaadin & Co 3
krgewb Spring und GWT - & wird zu & amp; Frameworks - Spring, Play, Blade, Vaadin & Co 2
K Migration eines internen Frameworks zu Spring:Boot Frameworks - Spring, Play, Blade, Vaadin & Co 0
OnDemand JPA/Spring Repository Like Suche leeres Ergebnis Frameworks - Spring, Play, Blade, Vaadin & Co 0
Z Hibernate & Postgres in Spring Boot (Syntaxprobleme) Frameworks - Spring, Play, Blade, Vaadin & Co 2
Z Spring Boot mit JPA;, Hibernate, Rest & Lombok Frameworks - Spring, Play, Blade, Vaadin & Co 8
M Spring Initializer - Webservices Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring Hateoas Frameworks - Spring, Play, Blade, Vaadin & Co 1
ma095 Spring und Postgresql Errors Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Spring+Vaadin App startet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Spring Request externe API SSL Error Frameworks - Spring, Play, Blade, Vaadin & Co 7
OnDemand Spring Repo speichert, aber es kommt in der DB nicht an Frameworks - Spring, Play, Blade, Vaadin & Co 3
Dimax Im Spring ,Mysql-Funktion aufrufen Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Security/Boot/Vaadin Cookie Problem bei iFrame Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Spring Boot: Feld ignorieren Frameworks - Spring, Play, Blade, Vaadin & Co 3
8u3631984 Spring + Thymleaf : Checkbox Object mappen Frameworks - Spring, Play, Blade, Vaadin & Co 0
N Buch zum Spring Framework bzw. Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 3
OnDemand Jasypt Spring Boot HIbernate wie komme ich an den Key? Frameworks - Spring, Play, Blade, Vaadin & Co 4
8u3631984 Spring Boot im Docker Container - Logback wird nicht verwendet Frameworks - Spring, Play, Blade, Vaadin & Co 13
sascha-sphw Spring - Authentication object was not found Frameworks - Spring, Play, Blade, Vaadin & Co 3
8u3631984 Welches Spring Frontend Framework verwendet ihr und wie bzw wo ? Frameworks - Spring, Play, Blade, Vaadin & Co 7
8u3631984 Spring security - 403 bei Role Access Regel Frameworks - Spring, Play, Blade, Vaadin & Co 6

Ähnliche Java Themen

Neue Themen


Oben