部分特殊情况下,需要在普通类中获取yml中的配置,以下为解决方法:
一、创建获取springboot bean工厂工具类
import lombok.Getter;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.stereotype.Component;
@Component
public class SpringUtil implements BeanFactoryPostProcessor {
@Getter
private static ConfigurableListableBeanFactory beanFactory;
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
SpringUtil.beanFactory=configurableListableBeanFactory;
}
}
二、获取配置
Environment environment = SpringUtil.getBeanFactory().getBean(Environment.class);
String url = environment.getProperty("project.url");