Autowired Environment is null
我在将环境连接到Spring项目时遇到问题。在这个班上
@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);
}
}
环境始终为null。
回答:
自动装配发生的时间比load()
所谓的晚(由于某种原因)。
一种解决方法是实现EnvironmentAware
并依赖Spring调用setEnvironment()
方法:
@Configuration@ComponentScan(basePackages = "my.pack.offer.*")
@PropertySource("classpath:OfferService.properties")
public class PropertiesUtil implements EnvironmentAware {
private Environment environment;
@Override
public void setEnvironment(final Environment environment) {
this.environment = environment;
}
@Bean
public String load(String propertyName)
{
return environment.getRequiredProperty(propertyName);
}
}
以上是 Autowired Environment is null 的全部内容, 来源链接: utcz.com/qa/417514.html