package fr.openwide.core.spring.config.spring; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import fr.openwide.core.spring.config.CorePropertyPlaceholderConfigurer; import fr.openwide.core.spring.config.spring.annotation.ApplicationDescription; import fr.openwide.core.spring.config.spring.annotation.ConfigurationLocations; import fr.openwide.core.spring.config.spring.annotation.CoreConfigurationLocationsAnnotationConfig; import fr.openwide.core.spring.util.ConfigurationLogger; /** * Classe à implémenter avec une méthode statique fournissant un {@link PropertySourcesPlaceholderConfigurer} vide. * Les annotations {@link ApplicationDescription} et {@link ConfigurationLocations} permettent de charger la * configuration. * * @see ApplicationDescription * @see ConfigurationLocations */ @Import({ CoreConfigurationLocationsAnnotationConfig.class, SpringApplicationPropertyRegistryConfig.class }) public abstract class AbstractApplicationConfig { @Bean public ConfigurationLogger configurationLogger(@Value("${propertyNamesForInfoLogLevel}") String propertyNamesForInfoLogLevel) { ConfigurationLogger configurationLogger = new ConfigurationLogger(); configurationLogger.setPropertyNamesForInfoLogLevel(propertyNamesForInfoLogLevel); return configurationLogger; } @Bean public static CorePropertyPlaceholderConfigurer environment(ConfigurableApplicationContext context) { return new CorePropertyPlaceholderConfigurer(); } }