add methods

This commit is contained in:
Looly
2020-04-29 16:20:21 +08:00
parent a0a3e4905f
commit c3cc8381ab
2 changed files with 57 additions and 1 deletions

View File

@@ -1,9 +1,12 @@
package cn.hutool.extra.spring;
import cn.hutool.core.util.ArrayUtil;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* Spring(Spring boot)工具封装,包括:
*
@@ -70,6 +73,58 @@ public class SpringUtil implements ApplicationContextAware {
return applicationContext.getBean(name, clazz);
}
/**
* 获取指定类型对应的所有Bean包括子类
*
* @param <T> Bean类型
* @param type 类、接口null表示获取所有bean
* @return 类型对应的beankey是bean注册的namevalue是Bean
* @since 5.3.3
*/
public static <T> Map<String, T> getBeansOfType(Class<T> type){
return applicationContext.getBeansOfType(type);
}
/**
* 获取指定类型对应的Bean名称包括子类
* @param type 类、接口null表示获取所有bean名称
* @return bean名称
* @since 5.3.3
*/
public static String[] getBeanNamesForType(Class<?> type){
return applicationContext.getBeanNamesForType(type);
}
/**
* 获取配置文件配置项的值
*
* @param key 配置项key
* @since 5.3.3
*/
public static String getProperty(String key) {
return applicationContext.getEnvironment().getProperty(key);
}
/**
* 获取当前的环境配置无配置返回null
*
* @return 当前的环境配置
* @since 5.3.3
*/
public static String[] getActiveProfiles(){
return applicationContext.getEnvironment().getActiveProfiles();
}
/**
* 获取当前的环境配置,当有多个环境配置时,只获取第一个
*
* @return 当前的环境配置
* @since 5.3.3
*/
public static String getActiveProfile(){
final String[] activeProfiles = getActiveProfiles();
return ArrayUtil.isNotEmpty(activeProfiles) ? activeProfiles[0] : null;
}
}