我需要在系统启动的过程中 获取PropertySourcesPlaceholderConfigurer 的propertySources,怎么实现
时间: 2024-04-30 20:18:16 浏览: 45
可以通过实现 ApplicationContextAware 接口来获取 ApplicationContext,然后再通过 ApplicationContext 获取 PropertySourcesPlaceholderConfigurer 的实例,最后获取其中的 propertySources。
示例代码如下:
```java
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.env.MutablePropertySources;
public class MyApplicationContextAware implements ApplicationContextAware {
private MutablePropertySources propertySources;
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
PropertyPlaceholderConfigurer configurer = applicationContext.getBean(PropertyPlaceholderConfigurer.class);
propertySources = ((MutablePropertySources) configurer.getAppliedPropertySources());
}
public MutablePropertySources getPropertySources() {
return propertySources;
}
}
```
在上面的代码中,我们实现了 ApplicationContextAware 接口,并在 setApplicationContext() 方法中获取了 PropertyPlaceholderConfigurer 的实例,然后通过它获取了 propertySources。最后,我们可以通过 getPropertySources() 方法获取到 propertySources。
阅读全文