2013-06-26 11 views
13

Jak ustawić aktywny profil za pomocą adnotacji na wiosnę?Jak ustawić aktywny profil przez adnotację wiosną?

Na przykład:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = { ApplicationConfig.class }, loader = AnnotationConfigContextLoader.class) 
@ActiveProfiles(profiles = {ApplicationProfiles.TEST}) 
public class CacheManagerTest { 
    ... 
} 

do testów JUnit to działa idealnie, ale jak mogę kontekst init aplikacji produkcji? (Nie mam żadnych główne Metoda/сlasses)

+1

Jakiego typu config używasz w aplikacji prod? Czy to jest aplikacja internetowa? –

+0

Witam @Malahov, mam nadzieję, że moja odpowiedź rozwiąże problem. używanie standardowej właściwości systemu jest zwyczajnym sposobem włączania profili w środowiskach produkcyjnych. Jeśli to działa dla Ciebie, nie zapomnij oznaczyć mojej odpowiedzi jako właściwej. Twoje zdrowie. –

Odpowiedz

8

Jeśli używasz tworzenia aplikacji autonomicznej lub aplikację internetową przejechania aktywny profil to sposób według Spring blog

aktywacja w przypadku aplikacji sieci Web

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>spring.profiles.active</param-name> 
     <param-value>production</param-value> 
    </init-param> 
</servlet> 

Aktywacja za pomocą utworzonego ręcznie kontekście

GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); 
ctx.getEnvironment().setActiveProfiles("dev"); 
ctx.load("classpath:/com/bank/config/xml/*-config.xml"); 
ctx.refresh(); 
+0

Nie mam web.xml (to nie jest aplikacja internetowa). Jeśli aktywacja zostanie wykonana ręcznie, to pomysł zostanie utracony przez profile konfiguracji. – Malahov

+0

Pierwszy blok kodu jest nieprawidłowy. @Profile nie "aktywuje" profilu, po prostu opisuje, że ta konfiguracja zostanie aktywowana po aktywowaniu profilu. –

+0

@ Jonathan, usunięto niewłaściwe informacje o JavaConfig. –

12

można przekazać profilu aktywnego (-ych), w czasie wykonywania pomocą spring.profiles.active nieruchomości:

-Dspring.profiles.active="profile1,profile2" 

Zobacz SpringSource blog post sprawie wprowadzenia profili.

+0

Czy możesz połączyć dokumentację dotyczącą tej funkcji? –

Powiązane problemy