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

回到顶部