2012-12-30 15 views
9

Korzystam z profili wiosennych 3.1 i chcę, aby Spring wyświetlał przy uruchomieniu, które profile są aktywne. Na przykład pierwsze kilka wierszy danych wyjściowych w pliku dziennika.Jak uzyskać wiosnę, aby wydrukować, jakie profile sprężyn są aktywne?

02:59:43,451 INFO [ContextLoader] Root WebApplicationContext: initialization started 
02:59:43,544 INFO [XmlWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Sun Dec 30 02:59:43 EST 2012]; root of context hierarchy 
02:59:43,610 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [spring.xml] 
02:59:43,835 INFO [XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [spring-security.xml] 
02:59:43,971 INFO [SpringSecurityCoreVersion] You are running with Spring Security Core 3.1.3.RELEASE 
02:59:43,971 INFO [SecurityNamespaceHandler] Spring Security 'config' module version is 3.1.3.RELEASE 

To, co chcę zobaczyć od wiosny, jest czymś, co wypisuje wersję sprężyny w użyciu, wraz z którą profile są obecnie aktywne.

Jak mogę wiosną wydrukować jego wersję i jakie profile są aktywne?

Odpowiedz

18

Wdrożenie EnvironmentAware interfejs

Na przykład

class MyEnvironmentAware implements EnvironmentAware{ 
    private static Environment env = null; 

    @Override 
    public void setEnvironment(Environment environment) { 
      env = environment; 
      //log the stuff you want here 
    } 
} 

Mark tej klasy jako wiosennym fasoli

lub

prostu wstrzyknąć Environment w jednym z niecierpliwością ładowanego fasoli i wydrukować szczegóły wy Potrzebuję od niego

jak

@Autowired 
Environment env; 

w swoim zapałem ładowanego fasoli, a następnie wydrukować go

8

Można dostać go konfigurując log4j, jako przedmiot Environment rejestruje aktywujący profilu na DEBUG poziomie.

log4j.logger.org.springframework.core.env=DEBUG, A1 

Jeśli A1 jest Twoim logowaniem. Niestety, na DEBUGu jest dużo innych rzeczy, więc nie jest to naprawdę miłe, ale otrzymujesz aktywny profil bez modyfikacji źródła.

Dzienniki config w autonomicznej aplikacji Swing na starcie:

58 [main] DEBUG org.springframework.core.env.StandardEnvironment - Activating profile 'production' 

uwaga, to jest nietrwały, gdyż opiera się na dzienniki poziom debugowania, które mogą się szybko w każdą zmianę zobowiążą się do wiosny.

+0

nie znaleźliśmy, że wiosną 3.2. Ale istnieje coś takiego jak: DEBUG org.springframework.core.env.PropertySourcesPropertyResolver: 79 - Znaleziony klucz "spring.profiles.active" w [systemProperties] z typem [String] i wartość 'dev, auth-dev, db-server, log-dev'' – igo

0
@Value("${spring.profiles.active}") 
private String activeProfiles; 

To da ci ciąg z aktywnymi profilami.

Jeśli uwzględnić w DefaultFormattingConversionService konfiguracji:

@Bean 
public ConversionService conversionService() { 
    return new DefaultFormattingConversionService(); 
} 

zwróci listę ciągów:

@Value("${spring.profiles.active}") 
private List<String> activeProfiles; 
Powiązane problemy