Autocâblés Environnement est null
J'ai un problème avec l'environnement de connexion à mon projet pour le Printemps.
Dans cette classe
@Configuration
@ComponentScan(basePackages = "my.pack.offer.*")
@PropertySource("classpath:OfferService.properties")
public class PropertiesUtil {
@Autowired
private Environment environment;
@Bean
public String load(String propertyName)
{
return environment.getRequiredProperty(propertyName);
}
}
environnement est toujours null.
- Essayez d'utiliser
@Resource
au lieu de@Autowired
. Voir si cela aide. - Non, rien n'a changé
- Est-il le seul code que vous avez dans le
PropertiesUtil
? Avez-vous unPropertySourcesPlaceholderConfigurer
ou quelque chose comme ça ? - Et comment utilisez-vous cette
PropertyUtil
... - À l'aide de @Autocâblés Environnement et @Bean PropertyPlaceholderConfigurer en même basé sur java résultats de configuration de l'environnement == null. La mise en œuvre de EnvironmentAware interface de résoudre ce problème. Je ne sais pas si c'est un bug. De printemps (4.2.2)
Vous devez vous connecter pour publier un commentaire.
Permettra à l'autowiring arrive plus tard que
load()
est appelé (pour certaines raisons).Une solution de contournement consiste à mettre en œuvre
EnvironmentAware
et s'appuient sur des ressorts d'appelsetEnvironment()
méthode:Changement
@Autowired
pour@Resource
(à partir de javax.annotation) et de le rendrepublic
par exemple:Et vous devez enregistrer votre configurer classe dans WebApplicationInitializer de cette façon
Il travaille pour moi! Vous voudrez peut-être vérifier un projet de test j'ai fait.
Veuillez mettre ce code à l'intérieur de la classe où vous êtes en essayant de autowire l'Environnement
Il a résolu mon problème. Ci-dessous je vous donne ma classe.