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();
|
}
|
}
|