Sprawa wygląda tak że mam serwis który wczytuje z pliku yaml pewne dane tekstowe i wystawia je na endpoint w stylu localhost:8080/info
Inne serwisy mogą sobie zrobić request i dociągnąć te informacje i wszystko śmiga ładnie.
Problem w tym że mam też drugi endpoint który może te informacje aktualizować i wówczas na endpoincie GET localhost:8080/info
powinny być oczywiście zwrócone nowe dane.
Jeśli serwis zostanie zresetowany to wracamy do wartości domyślnych.
Aktualnie mam Spring'a który tworzy taką konfigurację na podstawie pliku:
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties("Info.default")
class InfoProperties {
private String url;
private String port;
private String somethingElse;
//getter
Do tego jest klasa serwisu która trzyma taki obiekt i ma 2 metody:
@Service
class InfoProvider {
private InfoProperties properties;
public InfoProvider (InfoProperties properties) {
this.properties = properties;
}
InfoProperties getInfo() {
return properties;
}
void updateProperties(InfoProperties properties){
this.properties = properties;
}
}
I to w sumie działa. W testach jak robie kilka zapytań na get to najpierw mam domyślne wartości a potem po update dostaje wartości zaaktualizowane. Ręcznie testowałem i też jest ok.
Wydawałoby się więc że wszystko ładnie śmiga ale @jarekr000000 często krytykuje springowe beany i tak się zastanawiam czy to się może wykrzaczyć w jakichś sytuacjach
Jeśli to jest faktycznie bezsensu to może jakieś inne propozycje?