[JAVA] Vue.js + Jersey Desktop-App
Neulich als Beispiel für die Implementierung einer einfachen Desktop-App vue-nest-desktop-app ([Vue.js + NestJS für Desktop-App] Implementieren](https://qiita.com/unhurried/items/01dbb48a5ea872a22778)), aber die Backend-Entwicklung ist mit Java (Spring Boot + Jersey) besser vertraut als mit Node.js Ich habe eine vue-jersey-desktop-app erstellt, deren Ende durch Java ersetzt wurde.
Das Folgende ist eine kurze Zusammenfassung der Entwicklungspunkte.
Anwendungskonfiguration

- Das Backend wurde von Spring Boot entwickelt. Es ist so konfiguriert, dass es in einer ausführbaren JAR-Datei (sogenanntes Fat JAR) erstellt und verteilt wird, die den eingebetteten Tomcat enthält, und für den Zugriff auf den lokal gestarteten Anwendungsserver über einen Browser verwendet wird.
- Das Front-End wird mit Vue.js implementiert, und das erstellte HTML, CSS und JavaScript werden mithilfe der Back-End-Webserverfunktion (Spring-Boot-Starter-Web) als statische Dateien bereitgestellt.
- Die Hauptfunktion wird als Restful API (Spring-Boot-Starter-Trikot) am Back-End bereitgestellt und vom API-Aufruf vom Front-End aus verwendet.
Spring Boot Desktop App
Die folgenden Maßnahmen wurden ergriffen, um Spring Boot in eine Desktop-Anwendung zu verwandeln.
- Zeigen Sie das Protokoll in einem von Swing implementierten Fenster an, sodass die Anwendung beim Schließen des Fensters angehalten wird. (Weil es schwierig ist festzustellen, ob die Anwendung ausgeführt wird, oder die Anwendung zu stoppen, indem die Anwendung nur im Hintergrund gestartet wird, wenn das JAR ausgeführt wird.)
- Referenz: ConsoleFrame.java
- Der Anwendungsserver sucht auf dem lokalen Computer nach einem freien Port und startet. Nach dem Start öffnet der Systembrowser (Standard) automatisch den oberen Bildschirm des Frontends.
- Referenz: Browser.java
Aufrufen einer externen Restful-API
Da ein Browser auf das von einem lokal laufenden Webserver gehostete Front-End zugreift, kann vom Front-End aus nicht direkt auf andere externe Web-APIs zugegriffen werden. Daher ist die API-Proxy-Funktion (unterstützt auch die Weiterleitung von SSH-Ports, sodass auf die geschlossene API für die Entwicklung zugegriffen werden kann) auf der Back-End-Seite implementiert.
Referenz: ApiProxy.java