无论如何,我在程序中是否有通过Spring的@PropertySource批注加载的文件的完整路径。
我需要它显示在日志中,以便人们可以知道应用程序中正在使用哪个属性文件
最佳答案
尽管我不确定实例是否始终为ConfigurableEnvironment
类型,但以下内容似乎仍在工作
@Component
public class MyListener implements ApplicationListener<ContextRefreshedEvent>{
@Autowired
private Environment env;
private static final Logger log = LoggerFactory.getLogger(MyListener.class);
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if(env instanceof ConfigurableEnvironment){
MutablePropertySources propertySources = ((ConfigurableEnvironment)env).getPropertySources();
for(PropertySource ps : propertySources){
log.info(ps.getName()); //if only file based needed then check if instanceof ResourcePropertySource
}
}
}
}
编辑:并不需要所有这些。正如Selim回答的那样,启用适当的日志可以解决问题
log4j.logger.org.springframework.core.env.MutablePropertySources=DEBUG