非托管类: 不受Spring容器管理的类;
获取bean
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringUtil.applicationContext = applicationContext;
}
public static Object getBean(String beanId) {
return applicationContext.getBean(beanId);
}
}
获取配置
@Component
public class PropertiesUtils implements EmbeddedValueResolverAware {
private static StringValueResolver valueResolver;
@Override
public void setEmbeddedValueResolver(StringValueResolver stringValueResolver) {
PropertiesUtils.valueResolver = stringValueResolver;
}
public static String getPropertiesValue(String key) {
return valueResolver.resolveStringValue( “${” + key + "}");
}
}
说明: 通过${key}方式获取key对应的属性值;
获取环境
@Component
public class EnvironmentUtils implements EnvironmentAware {
private static Environment env;
@Override
public void setEnvironment(Environment environment) {
EnvironmentUtils.env = environment;
}
public static String getEnvironmentStr() {
String[] activeProfiles = env.getActiveProfiles();
return activeProfiles[0];
}
}
说明: 如果实际项目中激活的profile有多个的话,可以返回数组;