package com.xzx.gc.common.utils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /**手动获取容器管理bean的工具类 */ @Component public class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext ctx) throws BeansException { applicationContext = ctx; } /** * Get application context from everywhere * * @return */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * Get bean by class * * @param clazz * @param * @return */ public static T getBean(Class clazz) { return applicationContext.getBean(clazz); } /** * Get bean by class name * * @param name * @param * @return */ @SuppressWarnings("unchecked") public static T getBean(String name) { return (T) applicationContext.getBean(name); } /** * @Description: 获取当前运行环境 * @Param: [] * @return: java.lang.String * @Author: zan.zhong * @Date: 2019/3/28 */ public static String getActiveProfile() { return applicationContext.getEnvironment().getActiveProfiles()[0]; } public static boolean isDev() { return applicationContext.getEnvironment().getActiveProfiles()[0].equals("dev"); } public static boolean isProd() { return applicationContext.getEnvironment().getActiveProfiles()[0].equals("prod"); } public static boolean isProdOrCloud() { return applicationContext.getEnvironment().getActiveProfiles()[0].equals("prod")||applicationContext.getEnvironment().getActiveProfiles()[0].equals("cloud"); } public static boolean isDevOrTestOrCheck() { return applicationContext.getEnvironment().getActiveProfiles()[0].equals("dev")||applicationContext.getEnvironment().getActiveProfiles()[0].equals("test")||applicationContext.getEnvironment().getActiveProfiles()[0].equals("check"); } public static boolean isCloud() { return applicationContext.getEnvironment().getActiveProfiles()[0].equals("cloud"); } public static boolean isTest() { return applicationContext.getEnvironment().getActiveProfiles()[0].equals("test"); } public static boolean isCheck(){ return applicationContext.getEnvironment().getActiveProfiles()[0].equals("check"); } public HttpServletRequest getCurrentRequest(){ ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if(attributes!=null) { HttpServletRequest request = attributes.getRequest(); return request; } return null; } }