Migration eines internen Frameworks zu Spring:Boot

Klausinator

Mitglied
Hallo zusammen,

ich benötige heute einmal eure Hilfe bei der Strukturierung bzw. Migration eines Projekts. Ich habe vor längerer Zeit die Entwicklung eines internen Frameworks übernommen. Dieses basiert auf Spring und dient als Grundgerüst für verschiedene Projekte in unserer Firma.

Das Framework wird in unseren Spring-Projekten als Dependency via Maven eingebunden. Das Projekt sowie das Framework nutzen ein gemeinsames Parent. Das Framework ist nicht eigenständig lauffähig sondern benötigt immer ein Projekt (Implementierung). Innerhalb des Frameworks werden Properties durch @Value-Annotation gezogen. Das jeweilige Projekt beinhaltet dann eine Properties-File, welche u.a. auch die Properties des Frameworks füllt. Gerne möchten wir nun unsere einzelnen Projekte zu Spring-Boot migrieren.

Im Migrations-Branch bin ich bisher so vorgegangen:
a.) unser internes Parent erbt nicht mehr von spring-boot-dependencies sondern spring-boot-starter-parent
-> Sollte ich das Parent framework-parent hier ggf. auch in framework-starter-parent o.ä. umbenennen?
b.) in unseren Projekten die Dependencies nach Möglichkeit auf die Starter geändert
c.) die Context-Konfiguration (XML) - befindet sich separat in jedem Projekt - durch SpringBoot-Properties abgelöst

Bauchschmerzen bereitet mir allerdings noch das Framework selbst. Dieses hat aktuell die verwendeten Spring-Komponenten als normale Dependencies und nicht als Starter eingebunden. Würdet ihr hier empfehlen, dass ich ebenfalls auf die Starter umsteige? Die POM würde dadurch deutlich übersichtlicher werden und ggf. kann ich dann auch diverse Starter aus den Projekten entfernen, da diese sonst (sinnlos) doppelt im Framework und Projekt vorkommen.

Sollte auch hier der Projektname von z.B. framework auf framework-starter unbenannt werden, damit besser ersichtlich wird, dass starter mitgeliefert werden?

In diversen Tutorials im Netz werden immer autoconfigure-Artefakt sowie ein starter-Artefakt gebaut. Sollte ich diese auch einsetzen oder macht dies nur bei Libs Sinn, welche außerhalb der eigenen Entwicklung sind?

Ich freue mich auf eure Antworten.
 

Neue Themen


Oben