Spring Boot, H2 und Restschnittstelle synchonisation mit Client

L

lam_tr

Top Contributor
Hallo zusammen,

ich habe Spring Boot H2 Datenbank der Kalendereinträgen speichert. Über Restschnittstelle kann ich das Laden der Einträge holen. Als Client habe ich eine Android App womit über Rest die Daten geladen werden kann. Ich speichere die Daten auf dem Android Handy mit SQLite.

Im Kalender Tabelle habe ich eine Spalte Source (Handy, Server), das sagt aus von wo der Eintrag gemacht wurde.

Ich benötige einen Weg das Ganze etwas schöner synchronisieren zu können. Vom Server auf Client und umgekehrt. Wie kann ich da einen guten Synchronisationsalgorithmus dafür entwickeln so dass wenn der Server neue Einträge hat, dass ich nicht die kompletten Einträge zum Handy laden muss. Und von Android aus ist es auch nicht sinnvoll den insert direkt auf dem Server zu machen, da die Verbindung nicht immer offen ist. Woher weiß ich auf dem Handy dass die Einträge noch nicht synchronisiert sind? Wäre eine weitere Spalte für Status nicht verkehrt oder?

Könnt ihr mir da ein bisschen auf die Sprünge helfen?

Grüße
lam_tr
 
kneitzel

kneitzel

Top Contributor
Wenn die Tabellen, die synchronisiert werden sollen:
- Zeitstempel der letzten Änderung
- UUID damit Records an mehreren Orten unabhängig voneinander neu erstellt werden können.
- Bei Löschung wird nicht sofort gelöscht sondern ein deleted Flag gesetzt.

Dann kann man einfach hin gehen und die Änderungen seit der letzten Synchronisierung laden, sowohl lokal als auch remote. Dabei auch pro Datensatz immer nur die letzte Version (Wenn ein Datensatz 10 Mal geändert wurde, interessiert mich nur die letzte Version!).

Das kann man natürlich auch beliebig in externe Tabellen bringen. Wichtig ist, dass es eine eindeutige Kennzeichnung für alles gibt, die von System zu System unterschiedlich ist.

Wenn man nur ein modify Date hat, dann ist das natürlich wichtig: Das muss also Zeitzonen abdecken und die Geräte müssen eine korrekte Zeit gesetzt haben.

Das ist ggf. problematisch, daher kann man auch einfach alle Änderungen in eine / mehrere Tabellen packen.
Der Client synchronisiert dann einfach ab der Stelle bis zu der er schon gekommen ist.

Richtig interessant wird es natürlich erst bei Kollisionen. Kollisionen kann man noch stark reduzieren, wenn man z.B. jede Änderung eines Feldes berücksichtigt. Also Beispiel AD:
- Administration ändert im AD Eintrag etwas (Telefonnummer, Vorgesetzter, was weiss ich)
- Der User ändert sein Passwort
--> Ein AD Eintrag wurde an unterschiedlichen Domaincontrollern geändert. Da es aber unterschiedliche Felder sind und waren, gab es keine Kollision.
 
L

lam_tr

Top Contributor
Wenn die Tabellen, die synchronisiert werden sollen:
- Zeitstempel der letzten Änderung
- UUID damit Records an mehreren Orten unabhängig voneinander neu erstellt werden können.
- Bei Löschung wird nicht sofort gelöscht sondern ein deleted Flag gesetzt.

Dann kann man einfach hin gehen und die Änderungen seit der letzten Synchronisierung laden, sowohl lokal als auch remote. Dabei auch pro Datensatz immer nur die letzte Version (Wenn ein Datensatz 10 Mal geändert wurde, interessiert mich nur die letzte Version!).

Das kann man natürlich auch beliebig in externe Tabellen bringen. Wichtig ist, dass es eine eindeutige Kennzeichnung für alles gibt, die von System zu System unterschiedlich ist.

Wenn man nur ein modify Date hat, dann ist das natürlich wichtig: Das muss also Zeitzonen abdecken und die Geräte müssen eine korrekte Zeit gesetzt haben.

Das ist ggf. problematisch, daher kann man auch einfach alle Änderungen in eine / mehrere Tabellen packen.
Der Client synchronisiert dann einfach ab der Stelle bis zu der er schon gekommen ist.

Richtig interessant wird es natürlich erst bei Kollisionen. Kollisionen kann man noch stark reduzieren, wenn man z.B. jede Änderung eines Feldes berücksichtigt. Also Beispiel AD:
- Administration ändert im AD Eintrag etwas (Telefonnummer, Vorgesetzter, was weiss ich)
- Der User ändert sein Passwort
--> Ein AD Eintrag wurde an unterschiedlichen Domaincontrollern geändert. Da es aber unterschiedliche Felder sind und waren, gab es keine Kollision.
Super Zusammenfassung, vielen Dank.

Fragen haben jedoch noch :)
- Zeitstempel der letzten Änderung
Wenn ich mehrere Versionsdatensätze habe, dann ist der Änderungszeitstempel nicht notwendig, sondern der Erstellundsdatum oder?
- UUID damit Records an mehreren Orten unabhängig voneinander neu erstellt werden können.
UUID macht den Datensatz eindeutig, aber was spielt es an der Stelle eine Rolle für mehrere Orte, das habe ich leider noch nicht ganz verstanden.

Dann kann man einfach hin gehen und die Änderungen seit der letzten Synchronisierung laden, sowohl lokal als auch remote. Dabei auch pro Datensatz immer nur die letzte Version (Wenn ein Datensatz 10 Mal geändert wurde, interessiert mich nur die letzte Version!).
Sollen bei Anpassungen einfach ein neuer Datensatz mit einer hochgezählten Versionsnummer gesetzt sein? Wenn ich jetzt 20 Anpassungen gemacht habe, werden dann die 20 Anpassungen zum Client synchronisiert? Sollte in dem Fall eine neue Tabelle für die Anpassungen gemacht werden, so audittrailmäßig?

Der Client synchronisiert dann einfach ab der Stelle bis zu der er schon gekommen ist.
Woher weißt der Client an welcher Stelle er schon gekommen ist?
 
Thallius

Thallius

Top Contributor
Das Ganze kann man beliebig kompliziert machen und erreicht trotzdem keine 100% tige Sicherheit das die Daten immer korrekt synchronisiert werden. Ich habe mal einen mehrstündigen Vortrag mit Lösungsnansätzen dazu gehört und bin irgendwann ausgestiegen :)

Nur mal als Beispiel: User A ändert offline auf seinem Hany das Datum eine Eintrages und User B gleichzeitig die Teilnehmer. Welche Version ist denn nun die richtige wenn beide wieder online kommen? Eigentlich ja ein merge aus beiden.

Im Prinzip ist aber schon alles gesagt was eine einigermassen brauchbar Lösung darstellt. Jede Row sollte ihren Eingenen Zeitstempel haben wann sie geändert wurde (Theoretisch müßte man sogar für jede Column einen haben)
Kommt das Mobile online spielt es alle Datensätze auf den Server die neuer sind als der entsprechende Eintrag dort und holt danach alle Einträge vom Server die neuer sind als die eigenen in der Offline Datenbank.
Das Ganze würde ich als Bulk-Request machen. Damit kannst du sicher sein, das wenn der eine Insert oder get request geklappt hat auch alle Daten da sind.

Gruß

Claus
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Wenn ich mehrere Versionsdatensätze habe, dann ist der Änderungszeitstempel nicht notwendig, sondern der Erstellundsdatum oder?
Wenn Du alle Änderungen als separate Tabelle realisierst, dann reicht das Erstellungsdatum diese Eintrags. Hier könntest Du dann auch vermerken was genau geändert wurde und den Merge machen den @Thallius angesprochen hat.
Wenn Du aber nur die letzte Änderung wissen willst hast Du einfach nur ein timestamp der letzten Änderung im eigentlichen Entity.

UUID macht den Datensatz eindeutig, aber was spielt es an der Stelle eine Rolle für mehrere Orte, das habe ich leider noch nicht ganz verstanden.
Wenn Du statt UUID z.B. nur eine fortlaufende ID hättest wäre es ja 1...2...3...4...5. Jetzt erstellt der Client einen neuen Eintrag lokal 6 der Server auch 6 und schon gibt es einen Konflikt, das wird mit UUID nicht so leicht passieren.
 
L

lam_tr

Top Contributor
Das Ganze kann man beliebig kompliziert machen und erreicht trotzdem keine 100% tige Sicherheit das die Daten immer korrekt synchronisiert werden. Ich habe mal einen mehrstündigen Vortrag mit Lösungsnansätzen dazu gehört und bin irgendwann ausgestiegen :)

Nur mal als Beispiel: User A ändert offline auf seinem Hany das Datum eine Eintrages und User B gleichzeitig die Teilnehmer. Welche Version ist denn nun die richtige wenn beide wieder online kommen? Eigentlich ja ein merge aus beiden.

Im Prinzip ist aber schon alles gesagt was eine einigermassen brauchbar Lösung darstellt. Jede Row sollte ihren Eingenen Zeitstempel haben wann sie geändert wurde (Theoretisch müßte man sogar für jede Column einen haben)
Kommt das Mobile online spielt es alle Datensätze auf den Server die neuer sind als der entsprechende Eintrag dort und holt danach alle Einträge vom Server die neuer sind als die eigenen in der Offline Datenbank.
Das Ganze würde ich als Bulk-Request machen. Damit kannst du sicher sein, das wenn der eine Insert oder get request geklappt hat auch alle Daten da sind.

Gruß

Claus
Wenn ich synchronisieren will, hole ich alle Daten und vergleiche sie dann?
 
L

lam_tr

Top Contributor
Wenn Du alle Änderungen als separate Tabelle realisierst, dann reicht das Erstellungsdatum diese Eintrags. Hier könntest Du dann auch vermerken was genau geändert wurde und den Merge machen den @Thallius angesprochen hat.
Wenn Du aber nur die letzte Änderung wissen willst hast Du einfach nur ein timestamp der letzten Änderung im eigentlichen Entity.


Wenn Du statt UUID z.B. nur eine fortlaufende ID hättest wäre es ja 1...2...3...4...5. Jetzt erstellt der Client einen neuen Eintrag lokal 6 der Server auch 6 und schon gibt es einen Konflikt, das wird mit UUID nicht so leicht passieren.
Danke das mit der UUID, hast du mir deutlich gemacht. Trotzdem frage ich mich, wenn die Daten synchronisiert werden, ab welcher Stelle mache ich das von Client aus.

Wenn ich jetzt zum Beispiel auf mein Smartphone 100 Datensätze schon vom Server geholt habe, der Server hat jetzt 150 insgesamt, davon sind 50 Anpassungen. Hole ich sie alle zu meinem Android Client und vergleiche sie anhand von UUID und inserte dann die neuen??
 
kneitzel

kneitzel

Top Contributor
Also die einzelnen Punkte mal kurz durchgegangen:
Wenn ich mehrere Versionsdatensätze habe, dann ist der Änderungszeitstempel nicht notwendig, sondern der Erstellundsdatum oder?
Wenn Du jeden Datensatz nur schreibst und eine Änderung ein neuer Datensatz ist, dann ist das korrekt. Aber Du kannst nachvollziehen, was Änderungen zu einem Objekt sind oder so nehme ich mal an... Aber wenn ich das so richtig verstanden habe, dann ist das so, wie Du schreibst.
UUID macht den Datensatz eindeutig, aber was spielt es an der Stelle eine Rolle für mehrere Orte, das habe ich leider noch nicht ganz verstanden.
Damit wollte ich nur auf die Thematik der auto increment IDs aufmerksam machen. Diese IDs taugen nichts in einem Umfeld, in dem repliziert wird.
Ist ja auch klar: Wenn wir beide Datensätze anlegen und wir fortlaufend nummerieren, dann schauen wir und erstellen ggf. beide die gleiche Nummer. Bei einer UUID können zwei Stellen eine neue ID erzeugen und man erhält unterschiedliche IDs.
(Da gibt es aber auch Lösungen für. Es kann einen Master geben und jeder holt sich dann Bereiche für neue Datensätze. Dann erzeugt jeder aus dem ihm zugewiesenen Bereich Nummern und es gibt auch keine doppelten ...)
Sollen bei Anpassungen einfach ein neuer Datensatz mit einer hochgezählten Versionsnummer gesetzt sein? Wenn ich jetzt 20 Anpassungen gemacht habe, werden dann die 20 Anpassungen zum Client synchronisiert? Sollte in dem Fall eine neue Tabelle für die Anpassungen gemacht werden, so audittrailmäßig?
Also man kann ohne externe Tabelle auskommen und die notwendigen Daten komplett in der original Tabelle halten. Das ist ein Design Frage. Aber ich würde da immer weitere Tabellen erstellen. Und ja - das geht Richtung Audit, denn es geht um das Gleiche Ziel: Nachverfolgung von Änderungen.

Woher weißt der Client an welcher Stelle er schon gekommen ist?
Der Client muss natürlich eine entsprechende Config vorhalten.

- Wenn er sich zum ersten Mal verbindet, dann zieht er eine komplette Tabelle ab und merkt sich den Endzeitpunkt. Das würde ich wie folgt machen:

a) Letzten Record der Sync-Tabelle holen
b) Die Tabelle abziehen.
c) Sync-Lauf starten - ggf sind neue Sync-Datensätze da....

- Bei zukünftigen Queries kann er dann die Replizierungs-Tabelle nutzen. Da er den Stand hat, bis zu dem er alle Änderungen mit bekommen hat, kann er ab da alles ziehen. Dabei ist wichtig, dass er prüft, ob sein letzter gelesener Datensatz noch da ist! Hintergrund ist: Die Replizierungsdaten werden nur gewisse Zeit aufbewahrt. Wenn der client zu lange nicht repliziert hat, dann kann er nicht mehr replizieren! Also Beispiel AD: Schalte einen Domaincontroller gewisse Zeit aus und dann nimmst Du ihn in Betrieb: Hoch kritisch ... Wie gut Microsoft das heutzutage abfängt, weiss ich nicht, aber genau so haben Firmen schon Ihre Windows Domain schön zerfetzt :)

Das ist aber auch nur ein Ansatz, wo es einen Server gibt, an dem mehrere Clients synchronisieren können...
Aber @Thallius hat sehr schön bemerkt: Das kann ein hoch komplexes Thema sein / werden, besonders wenn es um die Beseitigung von Konflikten geht.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Event Sourcing könnte da ein passendes Stichwort sein und kann ziemlich gut geeignet sein, wenn Domäne und Usecase das hergeben.

Statt den geänderten Datensatz speichert man immer nur ein „Änderungs-Event“. Also, wenn sich der Name ändert, wird nicht der Datensatz mit geändertem Namen gespeichert, sondern nur ein „Name wurde geändert auf XY“.
Den aktuellem Zustand bekommt man dann, wenn man alle Events anwendet *.

Updaten der Clients ist dann wie schon gesagt ein abfragen aller Events seit Zeitpunkt X (oder auch alle Events nach Event X). Updaten des Servers ist hochladen aller Lokal passierten Events.

Konflikte können natürlich immer auftreten — die sind aber weniger ein technisches (oder technisch lösbares) Problem, sondern vielmehr eins in der Domäne, das Ganze tritt auch völlig analog auf.


* Aus Performance-Gründen optimiert man das, für das Prinzip ist das aber irrelevant.
 
L

lam_tr

Top Contributor
Vielen Dank für die zahlreichen Lösungen, ich werde mal Schritt für Schritt vorgehen.

Eine Frage hätte ich da noch.

Wenn ich zum Beispiel das Datenmodell auf dem Server (Spring Boot App) habe und der Client basierend auf JavaFX auch Spring Boot, benutzt auch das Datenmodell, bevor ich das Model eins zu eins in mein Client Projekt kopiere, gibt es an der Stelle irgendwie eine Möglichkeit es rauszuziehen, damit der Server und Client damit arbeiten kann. Sowas wie ein shared project.

Viele Grüße
lam
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
NicoDeluxe Spring Boot Mapping null bei GET Aufruf Frameworks - Spring, Play, Blade, Vaadin & Co 8
NicoDeluxe Spring Boot Test mit Junit Frameworks - Spring, Play, Blade, Vaadin & Co 8
J Spring Boot - Reactor Frameworks - Spring, Play, Blade, Vaadin & Co 1
TonioTec Spring Boot Datenbankabfrage Frameworks - Spring, Play, Blade, Vaadin & Co 7
NicoDeluxe Spring Boot encoding Slash in URL Parameter Frameworks - Spring, Play, Blade, Vaadin & Co 7
S Spring Boot startet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot -> War File | 404 in Tomcat Frameworks - Spring, Play, Blade, Vaadin & Co 20
L Spring Boot Anwendung "automatisch" neustarten Frameworks - Spring, Play, Blade, Vaadin & Co 3
A Spring boot Frameworks - Spring, Play, Blade, Vaadin & Co 18
bueseb84 Unit Test mit Spring Boot - Service Autowired Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe DTO <> Entity Hibernate Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 28
NicoDeluxe Verständnisfrage DTO Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 19
NicoDeluxe Spring Boot Load Balancing Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Threads Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Boot: Wert aus Config Datei ermitteln Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot: Ein geschütztes Verzeichnis Frameworks - Spring, Play, Blade, Vaadin & Co 1
bueseb84 Probleme mit Spring Boot Docker und Bootstrap Frameworks - Spring, Play, Blade, Vaadin & Co 9
NicoDeluxe Spring Boot Eureka/Zuul Frameworks - Spring, Play, Blade, Vaadin & Co 0
F Redirect in einer Spring Boot WebApplication Frameworks - Spring, Play, Blade, Vaadin & Co 7
B Erstes Spring Boot Projekt: Gameserver-Manager Frameworks - Spring, Play, Blade, Vaadin & Co 5
V Spring Boot, thymeleaf, Eingaben cashen oder per session speichern? Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot Security Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot i18n Frameworks - Spring, Play, Blade, Vaadin & Co 28
bueseb84 Spring Boot : Update H2 Repository Frameworks - Spring, Play, Blade, Vaadin & Co 14
A Spring Boot/ OneToMany Relation Frameworks - Spring, Play, Blade, Vaadin & Co 29
S Spring Boot testen mit Service Klassen Frameworks - Spring, Play, Blade, Vaadin & Co 4
L Controller Spring Boot mit Java Frameworks - Spring, Play, Blade, Vaadin & Co 20
J Spring Boot H2 Datbase Frameworks - Spring, Play, Blade, Vaadin & Co 2
J Spring Boot Thymleaf mit Java.Optional Frameworks - Spring, Play, Blade, Vaadin & Co 0
L JavaFX Anwendung mit Spring Boot und mehrere FXML Forms Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Mit Maven (und Spring-boot) ein FatJAR und ein EAR bauen Frameworks - Spring, Play, Blade, Vaadin & Co 3
NicoDeluxe Spring Boot Basic Authentication langsam Frameworks - Spring, Play, Blade, Vaadin & Co 2
NicoDeluxe Start Stop Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
H Spring Boot - Dependency Injection Frameworks - Spring, Play, Blade, Vaadin & Co 26
B Java Spring Boot - POM-Problem Frameworks - Spring, Play, Blade, Vaadin & Co 8
NicoDeluxe Spring Boot parallele Requests Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Resttemplate exchange XML Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Root-Pfad zu meiner Spring Boot Application Frameworks - Spring, Play, Blade, Vaadin & Co 3
NicoDeluxe Spring Boot Error Logging Frameworks - Spring, Play, Blade, Vaadin & Co 5
NicoDeluxe Spring Boot Transactions Frameworks - Spring, Play, Blade, Vaadin & Co 10
D Spring Boot auf virtuellen Server oder Cloud? Frameworks - Spring, Play, Blade, Vaadin & Co 4
D AWS Server Spring Boot und Datenbank Frameworks - Spring, Play, Blade, Vaadin & Co 0
S Spring Boot: Eigene Config aufbauen Frameworks - Spring, Play, Blade, Vaadin & Co 6
B Spring Boot/Html-Content/Web-Server Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot - MVC - Error flushen Frameworks - Spring, Play, Blade, Vaadin & Co 0
K Spring Boot und RestFull Frameworks - Spring, Play, Blade, Vaadin & Co 3
F Spring Boot Test Frameworks - Spring, Play, Blade, Vaadin & Co 14
NicoDeluxe Spring Boot Microservices und Entitäten Frameworks - Spring, Play, Blade, Vaadin & Co 5
N Spring Boot javax.mail Frameworks - Spring, Play, Blade, Vaadin & Co 2
NicoDeluxe Spring Boot: Logfiles wie organisieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe Spring Boot GET Frameworks - Spring, Play, Blade, Vaadin & Co 4
J Spring Boot + Swagger - XML Example Values fehlerhaft Frameworks - Spring, Play, Blade, Vaadin & Co 4
NicoDeluxe Spring Boot statt JavaEE Frameworks - Spring, Play, Blade, Vaadin & Co 65
O OAuth mit Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Spring Boot Controller kann nicht bei jedem Request erreicht werden Frameworks - Spring, Play, Blade, Vaadin & Co 7
L Spring Boot mit Rest, JPA und Frontend Frameworks - Spring, Play, Blade, Vaadin & Co 15
I Spring Boot wo fängt der Wahnsinn an? Frameworks - Spring, Play, Blade, Vaadin & Co 1
H Spring Boot JPA - Models Verknüpfen (JOIN) Frameworks - Spring, Play, Blade, Vaadin & Co 0
H Spring Boot, Hibernate und OAuth2 wie komme ich an den User? Frameworks - Spring, Play, Blade, Vaadin & Co 13
H OAuth2 mit Spring boot und Java Frameworks - Spring, Play, Blade, Vaadin & Co 5
H Spring Boot Models auslagern Frameworks - Spring, Play, Blade, Vaadin & Co 3
N Spring Boot Rest Relationships Frameworks - Spring, Play, Blade, Vaadin & Co 1
R Wie Spring Boot-Anwendung über Domain erreichbar machen? Frameworks - Spring, Play, Blade, Vaadin & Co 1
P Spring Boot JPa Frameworks - Spring, Play, Blade, Vaadin & Co 5
L Spring Boot Anwendung exportieren Frameworks - Spring, Play, Blade, Vaadin & Co 3
G Spring-Boot und Spring Data Programmstart zu langsam Frameworks - Spring, Play, Blade, Vaadin & Co 21
J Spring Boot Autowired Problem Frameworks - Spring, Play, Blade, Vaadin & Co 2
M [Feedback erwünscht] Spring Boot Screencasts Frameworks - Spring, Play, Blade, Vaadin & Co 3
B Spring Boot Applikation Frameworks - Spring, Play, Blade, Vaadin & Co 2
S spring-boot als runnable jar Eigenart Frameworks - Spring, Play, Blade, Vaadin & Co 1
P Spring Boot JNDI Tomcat JDBC Frameworks - Spring, Play, Blade, Vaadin & Co 0
brunothg Spring Boot Standalone -> Whiteout Frameworks - Spring, Play, Blade, Vaadin & Co 1
P Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 1
Psypsy Spring Boot mit JSF bekomme ich nicht zum laufen Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe Buchempfehlung Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 17
LesterBurnham Spring, Config Server, mehrere Gitlab Repos für Konfiguration - best practices Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Spring Thymeleaf Datatables Daten editieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
L Spring Data: Wie kann ich das Datenmodell richtig definieren? Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring: Testen von unterschiedlichen application.properties Werten Frameworks - Spring, Play, Blade, Vaadin & Co 6
A Eventhandling mit Spring REST API Frameworks - Spring, Play, Blade, Vaadin & Co 13
iman Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 13
S Spring Security deaktivieren Frameworks - Spring, Play, Blade, Vaadin & Co 10
W Projekt Bootstrap/Kotlin/Spring Framework Frameworks - Spring, Play, Blade, Vaadin & Co 0
W Kotlin / Spring Framework Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring MongoDB: Attribut in der Superklasse und @Indexed erst in der Subklasse Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring: MongoDB Assoziation Frameworks - Spring, Play, Blade, Vaadin & Co 1
F Server-Java-Spring Websockets Frameworks - Spring, Play, Blade, Vaadin & Co 6
F spring apllication startet nicht, ports werden verwednet Frameworks - Spring, Play, Blade, Vaadin & Co 12
B Spring Kurse von Baeldung Frameworks - Spring, Play, Blade, Vaadin & Co 6
Thallius Gibt es einen "Standard" Folder für Spring deployment auf Linux Servern? Frameworks - Spring, Play, Blade, Vaadin & Co 13
L Spring Data Einträge von User zahlen und auflisten Frameworks - Spring, Play, Blade, Vaadin & Co 7
S Spring: Eine Klasse am Anfang instanzieren Frameworks - Spring, Play, Blade, Vaadin & Co 5
iman Controller in Spring 4,0 Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring JPA / Hibernate: save Methode arbeitet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 2
Thallius Spring Backend Funktion mit Langzeit Requester Frameworks - Spring, Play, Blade, Vaadin & Co 2
F spring post null werte Frameworks - Spring, Play, Blade, Vaadin & Co 1
F Spring Webanwendung Datenbank Frameworks - Spring, Play, Blade, Vaadin & Co 47
A Spring Namenconvention Frameworks - Spring, Play, Blade, Vaadin & Co 4
H spring web Frameworks - Spring, Play, Blade, Vaadin & Co 26

Ähnliche Java Themen

Anzeige

Neue Themen


Oben