业务需求:针对业务的一些告警,需要区分是线上环境的告警还是开发和测试环境的告警,然后发送到不同的微信群。
具体工具类:
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.Locale;
/**
* 描述: 获取bean的工具类,可用于在线程里面获取bean
* 修改备注:添加getActiveProfile方法,获取当前环境
*
*/
@Component
public class ContextUtil implements ApplicationContextAware {
private static ApplicationContext context = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
context = applicationContext;
}
/**
* 传入线程中
*/
public static <T> T getBean(String beanName) {
return (T) context.getBean(beanName);
}
/**
* 国际化使用
*/
public static String getMessage(String key) {
return context.getMessage(key, null, Locale.getDefault());
}
/**
* 获取当前环境
*/
public static String getActiveProfile() {
return context.getEnvironment().getActiveProfiles()[0];
}
}
调用方式:
if (ContextUtil.getActiveProfile().equals(ONLINE)) {
weChatHook.send(ONLINE_ENV, WeHookMarkdown.builder().markdown(markdown).build());
return;
}
weChatHook.send(UAT_ENV, WeHookMarkdown.builder().markdown(markdown).build());