2013-06-26 20 views
13

Come posso impostare il profilo attivo tramite annotazione in primavera?Come posso impostare il profilo attivo tramite annotazione in primavera?

Ad esempio:

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

Per test JUnit questo funziona perfetto, ma come posso init contesto di applicazione di produzione? (Non ho alcun principali Metodo/сlasses)

+1

Quale tipo di configurazione stai utilizzando nell'app prod? Questa è un'app web? –

+0

Ciao @Malahov, spero che la mia risposta risolva il tuo problema. l'utilizzo della proprietà di sistema standard è il solito modo di abilitare i profili in ambienti produttivi. Se questo funziona per te, ti preghiamo di non dimenticare di contrassegnare la mia risposta come quella giusta. Saluti. –

risposta

8

Se si utilizza facendo un'applicazione stand-alone o di un'applicazione web si passa profilo attivo questi modo, secondo Spring blog

di attivazione in un'applicazione 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> 

Attivazione con contesto creato manualmente

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

Non ho web.xml (questa non è un'applicazione web). Se l'attivazione avviene manualmente, l'idea viene persa tramite i profili di configurazione. – Malahov

+0

Il primo blocco di codice è errato. il @Profile non "attiva" un profilo, solo descrive che quella configurazione verrà attivata quando il profilo in questione è attivato. –

+0

@ Jonathan, rimosse le informazioni errate su JavaConfig. –

12

È possibile passare nel profilo attivo (s) in fase di esecuzione utilizzando il 01.235.proprietà:

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

Vedi l'SpringSource blog post sull'introduzione di profili.

+0

Puoi collegare una documentazione su questa funzione? –

Problemi correlati