Quelle est la meilleure pratique pour la manipulation de plusieurs profils de Printemps avec java config?

Sur un projet que je suis en train de travailler sur nous avons besoin de plusieurs profils, c'est à dire "par défaut" et "test". Pour résoudre ce problème, nous avons mis en œuvre un contexte principal de la classe, ApplicationContext.java avec 2 public static classes internes: l'une d'entre elles définit le profil par défaut, l'autre définit le profil de test. Notre web.xml est fixé pour cible ApplicationContext.java.

Code comme suit:

@Configuration
//import common beans
public class ApplicationContext {

  @Configuration  
  @Profile("default")
  public static class DefaultContext {
    //default beans
  }  

  @Configuration
  @Profile("test")
  public static class TestContext {
    //test beans
  }

}

Mon problème c'est que le contexte principal de la classe, ApplicationContext.java est dans l'environnement de production (c'est à dire src/main/java) avec des références à des fichiers dans l'environnement de test. Si il ya une meilleure façon de définir ces profils, sans l'introduction de cette dépendance de la production de code pour tester le code, ce serait bien sûr préférable.

Nous avons testé ces cas avec une jetée exemple dans une classe de test, a commencé à partir d'une méthode principale. Cette instance est exécuté avec la commande suivante:

System.setProperty("spring.profiles.active", "test");

OriginalL'auteur Jarle Svendsrud | 2013-04-09