Cześć
potrzebuję wczytywać plik json jako klasę i walidować to adnotacjami z Springa, mogę się wspomagać refleksją.
Przykład:
@MyConfiguration
public class GlobalConfig
{
@ConfigurationFile(fileName = "my_config.json")
public static Config config;
@ConfigurationClass(desc = "description")
public static class Config
{
@ConfigurationType(required = true)
public String value1;
@ConfigurationType(required = true)
public ConfigClass1 configClass1; //jakaś tam klasa zagnieżdzona
public static class ConfigClass1
{
@ConfigurationType(required = true)
public volatile String key;
@ConfigurationType(required = false)
public volatile String value;
}
}
//itd
}
przykład pliku my_config.json
{
"value1":"wartosc",
"configClass1":[
{
"key":"klucz1",
"value":"wartosc1"
},
{
"key":"klucz2",
"value":"wartosc2"
}
]
}
Nie jestem za bardzo biegły w adnotacjach Springowych oraz refleksji. Na początku wczytuje jsona dzięki fileName i zaczyna się problem. Jak teraz mogę połączyć "value1":"wartosc" z @ConfigurationType(required = true) public String value1; abym mógł wziąć parametr required oraz typ zmiennej (aby sprawdzić czy "wartość" jest Stringiem albo np. liczbą i rzucić błąd)? Wydaje mi się, że adnotacje nie dają mi dostępu do nazwy zmiennej. Ponadto jak widać może się też trafić tablica więc nawet szukanie po nazwie nie jest sposobem idealnym. Brak mi pomysłu jak ugryźć ten temat. Jakieś pomysły?
Dzięki.