Mam więc plik application.yml
dla mojej aplikacji rozruchowej sprężyny tak:Wiosna Konwencja Boot dla zmiennych
spring:
url: localhost
email:
from: [email protected]
app:
uuid: 3848348j34jk2dne9
Chcę podłączyć te właściwości konfiguracji do różnych elementów w mojej aplikacji tak:
@Component
public class FooA {
private final String url;
public FooA(@Value("${spring.url}") String url) {
this.url = url
}
}
@Component
public class FooB {
private final String from;
public FooA(@Value("${email.from}") String from) {
this.from = from
}
}
@Component
public class FooC {
private final String uuid;
public FooA(@Value("${app.uuid}") String uuid) {
this.uuid = uuid
}
}
Powyższe działa zgodnie z przeznaczeniem w mojej aplikacji. Ale moje pytanie brzmi, czy jest to najlepsza praktyka podczas wiosennego rozruchu. Jedyną inną alternatywą, o której wiem, jest użycie obiektu Properties
poprzez utworzenie komponentu bean wewnątrz klasy konfiguracyjnej, załadowanie właściwości ze wszystkimi zmiennymi konfiguracyjnymi i zaimplementowanie komponentu bean właściwości do komponentów.
Jaka jest najlepsza praktyka w tym przypadku?
Nie sądzę, że Richard rozważał użycie "@ConfigurationProperties". Sposób, w jaki czytałem jego pytanie, rozważał utworzenie i wypełnienie fasoli ręcznie w jego klasie "Konfiguracja". Tak więc "@ConfigurationProperties" będzie wielką poprawą.Ponadto, jeśli dodasz procesor konfiguracji rozruchu sprężynowego, możesz wygenerować metadane konfiguracji dla IDE, do autouzupełniania/sprawdzania poprawności/dokumentacji, co jest całkiem fajne! –