Dans cet article nous allons voir comment utiliser les fichiers de configuration "properties" avec Spring.
Par défaut, les fichiers de properties doivent être positionnés dans le dossier src/main/ressources.
Afin de définir quels sont les fichiers de properties à utiliser, il est nécessaire d'utiliser l'annotation @PropertySource. Cette annotation peut être dupliquée plusieurs fois s'il y a plusieurs fichiers de properties (Java 8) :
@PropertySource("classpath:aaa.properties")
@PropertySource("classpath:bbb.properties")
public class PropertiesClass {
//...
}
Il est également possible d'utiliser l'annotation @PropertySources pour définir plusieurs fichiers de properties :
@PropertySources({
@PropertySource("classpath:aaa.properties"),
@PropertySource("classpath:bbb.properties")
})
public class PropertiesClass {
//...
}
Il est possible de définir manuellement quelle variable aura quelle valeur de properties via l'annotation @Value :
@PropertySource("classpath:app1.properties")
@Component
public class PropertiesClass {
@Value("${email}")
private String email;
// getters and setters
}
En utilisant l'API Environment, les properties sont accessibles via la méthode getProperty :
@Autowired
private Environment env;
...
String mail = env.getProperty("mail");
En utilisant l'annotation @TestPropertySource, les properties seront chargées à partir d'un autre fichier :
@RunWith(SpringRunner.class)
@TestPropertySource("/app2.properties")
public class ClassUnitTest {
@Value("${mail}")
private String mail;
@Test
public void whenFilePropertyProvided_thenProperlyInjected() {
assertThat(mail).isEqualTo("test@mail.com");
}
}
Remarque : L'annotation @TestPropertySource(properties = {"mail=test@mail.com"}) permet d'ajouter une propertie qui pourra être utilisé dans le test.
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos