SpringBeanUtil工具类
Spring的工具类,根据名称获取bean
@Component
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext context = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext ) throws BeansException {
context = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return context;
}
// 通过名字获取上下文中的bean
public static Object getBean(String name) {
checkContext();
return context.getBean(name);
}
// 通过名称和类型获取bean
public Object getBean(String name, Class<?> requiredType) {
return context.getBean(name, requiredType);
}
// 通过类型获取上下文中的bean
public static <T> T getBean(Class<T> requiredType) {
checkContext();
return context.getBean(requiredType);
}
private static void checkContext() {
if (context == null) {
throw new IllegalStateException("ApplicationContext未注入");
}
}
}
Property获取配置信息
public class PropertyUtil {
// 获取yml配置
public static <T> T getProperties(String key, Class<T> c){
Environment environment = SpringBeanUtil.getBean(Environment .class);
return environment.getProperty(key, c);
}
}
调用代码:
// aa.key 为yml中的配置项
String key = PropertyUtil.getProperties("aa.key", String.class);