package com.ard.utils.other; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.stereotype.Component; import java.util.Properties; /** * @Description: * @ClassName: SpringTool * @Author: 刘苏义 * @Date: 2023年06月06日9:14 * @Version: 1.0 **/ @Component public class SpringTool implements ApplicationContextAware { private static ApplicationContext applicationContext = null; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (SpringTool.applicationContext == null) { SpringTool.applicationContext = applicationContext; } } //该方法用于外界获取ApplicationContext对象 public static ApplicationContext getApplicationContext() { return applicationContext; } //该方法用于外界通过bean的名字获取Bean对象 public static Object getBean(String name) { return getApplicationContext().getBean(name); } /*yml配置信息获取*/ public static String getYmlInfo(String key) { Resource resource = new ClassPathResource("application.yml"); Properties properties = null; try { YamlPropertiesFactoryBean yamlFactory = new YamlPropertiesFactoryBean(); yamlFactory.setResources(resource); properties = yamlFactory.getObject(); } catch (Exception e) { e.printStackTrace(); return null; } return properties.get(key).toString(); } }