Potrzebuję kodować różne logiki w oparciu o inny bieżący profil środowiska. Jak uzyskać aktualne profile aktywne i domyślne ze Springa?Jak uzyskać programowo bieżący aktywny/domyślny profil środowiska na wiosnę?
Odpowiedz
Można autowire Środowiska
@Autowired
Environment env;
Środowisko oferuje String[] getActiveProfiles()
, String[] getDefaultProfiles()
i boolean acceptsProfiles(String... profiles)
Działa również z '@ Resource' (wiosna 4.2) –
Jeśli nie używasz autowiring, wystarczy wdrożyć EnvironmentAware
Oto bardziej kompletny przykład.
Autowire Środowisko
Najpierw chcesz autowire fasoli środowiska.
@Autowired
private Environment environment;
Sprawdź, czy istnieje w Active Profile Profile
Następnie można użyć getActiveProfiles()
, aby dowiedzieć się, czy profil istnieje na liście aktywnych profili. Oto przykład, który pobiera String[]
z getActiveProfiles()
, pobiera strumień z tej tablicy, a następnie używa dopasowań do sprawdzania wielu profili (Rozróżnianie wielkości liter), które zwracają wartość logiczną, jeśli istnieją.
//Check if Active profiles contains "local" or "test"
if(Arrays.stream(environment.getActiveProfiles()).anyMatch(
env -> (env.equalsIgnoreCase("test")
|| env.equalsIgnoreCase("local"))))
{
doSomethingForLocalOrTest();
}
//Check if Active profiles contains "prod"
else if(Arrays.stream(environment.getActiveProfiles()).anyMatch(
env -> (env.equalsIgnoreCase("prod"))))
{
doSomethingForProd();
}
można również osiągnąć podobnego funkcjonalność adnotacji @Profile("local")
Tu jest więcej informacji na temat tej techniki: Spring Profiles
@Profile wydaje się najlepszym rozwiązaniem. –
@Value("${spring.profiles.active}")
private String activeProfile;
To działa i nie trzeba wdrożyć EnvironmentAware. Ale nie znam wad tego podejścia.
W tym wierszu występuje następujący błąd: 'Przyczyna: java.lang.IllegalArgumentException: Nie można rozwiązać symbolu zastępczego" spring.profiles.active "w wartości" $ {spring.profiles.active} "' – zygimantus
Rozszerzanie piękny prostą odpowiedź User1648825 za (nie mogę się wypowiedzieć, a moja edycja została odrzucona):
@Value("${spring.profiles.active}")
private String activeProfile;
To może rzucać IllegalArgumentException jeśli nie profile są ustawione (otrzymuję wartość null). To może być Dobra Rzecz, jeśli chcesz ją ustawić; jeśli nie używać „default” składnię @Value, a mianowicie:
@Value("${spring.profiles.active:Unknown}")
private String activeProfile;
... activeProfile zawiera teraz „nieznane”, jeśli spring.profiles.active nie może być rozwiązany
- 1. Jak mogę programowo uzyskać bieżący przełącznik śledzenia?
- 2. programowo ustawianie czasu DatePicker na bieżący czas
- 3. Jak programowo zmienić bieżący motyw systemu Windows?
- 4. Jak uzyskać bieżący identyfikator procesu?
- 5. Jak uzyskać bieżący stan nawigacji
- 6. Asp.Net GridView uzyskać bieżący wiersz na TemplateField
- 7. Jak uzyskać identyfikator fasoli z fasoli na wiosnę?
- 8. Jak uzyskać parametr zawierający kropkę (.) Z adresu url na wiosnę
- 9. Jak poprawnie uzyskać wszystkie wiadomości kolejki z RabbitMQ na wiosnę?
- 10. Jak zainicjować aplikację na wiosnę?
- 11. Wielkość kolejki na wiosnę klienta Java AMQP
- 12. jak uzyskać bieżący czas odtwarzania w wideo.js
- 13. globalne właściwości na wiosnę
- 14. Jak uzyskać bieżący adres URL aplikacji Appengine?
- 15. Jak ustawić programowo programowo?
- 16. CABasicAnimation jak uzyskać bieżący kąt obrotu
- 17. Telefon Windows: jak uzyskać bieżący identyfikator aplikacji
- 18. Jak uzyskać bieżący model w filtrze działania
- 19. Jak uzyskać bieżący rok z szablonu freemarker'a
- 20. Jak mogę uzyskać bieżący katalog użytkownika?
- 21. Jak uzyskać bieżący/aktywny oddział z LibGit2Sharp?
- 22. Jak ustawić aktywny profil przez adnotację wiosną?
- 23. getServletConfig(). GetServletContext() odpowiednik na wiosnę
- 24. MessageInterpolator na wiosnę
- 25. Warunkowe zatwierdzenia na wiosnę
- 26. Powielanie formularza na wiosnę
- 27. Dynamiczne formy na wiosnę
- 28. json na wiosnę-boot
- 29. Jak mogę wstawić wystąpienie listy na wiosnę?
- 30. Jak programowo uzyskać zawartość renderowania?
potrzebujesz więcej informacji niż to. – aweigold
@aweigold: pobieraj bieżący aktywny/domyślny profil środowiska programowo wiosną 3.1. jakich więcej detali potrzebujesz? – Bobo
Zaproponowałem zmianę ... Nie mam uprawnień do pełnej edycji, cofnę swój głos, kiedy będę mógł. – aweigold