事由:
springboot 项目 用到静态的工具类来 引用配置(yml获取这 pro)文件中的值
直接@Value("${xxx.xxx.xx}") 不可以 直接就不能用
结果:
Environment environment = ApplicationContextUtils.get(Environment.class);
String value= environment.getProperty("配置文件中的路径 比如:(spring.boot.path)");
此时的value 就是配置文件中你想要的值
Environment 导包:
import org.springframework.core.env.Environment;
再配上 ApplicationContextUtils工具类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;
import java.util.Objects;
@Configuration
public class ApplicationContextUtils implements ApplicationContextAware {
//定义静态的ApplicationContext对象
private static ApplicationContext applicationContext;
//重写 方法 并赋值
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtils.applicationContext = applicationContext;
}
//调用上下文的getBean方法获取容器中的对象
public static <T> T get(Class<T> clazz){
return applicationContext.getBean(clazz);
}
public static Object get(String name) {
return applicationContext.getBean(name);
}
}
完美