|
|
@@ -2,6 +2,7 @@ package org.jeecg.common.util;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
+import org.jeecg.common.constant.ServiceNameConstants;
|
|
|
import org.springframework.beans.BeansException;
|
|
|
import org.springframework.context.ApplicationContext;
|
|
|
import org.springframework.context.ApplicationContextAware;
|
|
|
@@ -12,73 +13,79 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
@Component
|
|
|
public class SpringContextUtils implements ApplicationContextAware {
|
|
|
|
|
|
- /**
|
|
|
- * 上下文对象实例
|
|
|
- */
|
|
|
- private static ApplicationContext applicationContext;
|
|
|
+ /**
|
|
|
+ * 上下文对象实例
|
|
|
+ */
|
|
|
+ private static ApplicationContext applicationContext;
|
|
|
|
|
|
- @Override
|
|
|
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
|
- SpringContextUtils.applicationContext = applicationContext;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
|
+ SpringContextUtils.applicationContext = applicationContext;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取applicationContext
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static ApplicationContext getApplicationContext() {
|
|
|
- return applicationContext;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 获取applicationContext
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static ApplicationContext getApplicationContext() {
|
|
|
+ return applicationContext;
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 获取HttpServletRequest
|
|
|
- */
|
|
|
- public static HttpServletRequest getHttpServletRequest() {
|
|
|
- return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 获取HttpServletRequest
|
|
|
+ */
|
|
|
+ public static HttpServletRequest getHttpServletRequest() {
|
|
|
+ return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
+ }
|
|
|
|
|
|
- public static String getDomain(){
|
|
|
- HttpServletRequest request = getHttpServletRequest();
|
|
|
- StringBuffer url = request.getRequestURL();
|
|
|
- return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
|
|
|
- }
|
|
|
+ public static String getDomain() {
|
|
|
+ HttpServletRequest request = getHttpServletRequest();
|
|
|
+ StringBuffer url = request.getRequestURL();
|
|
|
+ //微服务情况下,获取gateway的basePath
|
|
|
+ String basePath = request.getHeader(ServiceNameConstants.X_GATEWAY_BASE_PATH);
|
|
|
+ if (oConvertUtils.isNotEmpty(basePath)) {
|
|
|
+ return basePath;
|
|
|
+ } else {
|
|
|
+ return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- public static String getOrigin(){
|
|
|
- HttpServletRequest request = getHttpServletRequest();
|
|
|
- return request.getHeader("Origin");
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 通过name获取 Bean.
|
|
|
- *
|
|
|
- * @param name
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Object getBean(String name) {
|
|
|
- return getApplicationContext().getBean(name);
|
|
|
- }
|
|
|
+ public static String getOrigin() {
|
|
|
+ HttpServletRequest request = getHttpServletRequest();
|
|
|
+ return request.getHeader("Origin");
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 通过class获取Bean.
|
|
|
- *
|
|
|
- * @param clazz
|
|
|
- * @param <T>
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static <T> T getBean(Class<T> clazz) {
|
|
|
- return getApplicationContext().getBean(clazz);
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 通过name获取 Bean.
|
|
|
+ *
|
|
|
+ * @param name
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Object getBean(String name) {
|
|
|
+ return getApplicationContext().getBean(name);
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 通过name,以及Clazz返回指定的Bean
|
|
|
- *
|
|
|
- * @param name
|
|
|
- * @param clazz
|
|
|
- * @param <T>
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static <T> T getBean(String name, Class<T> clazz) {
|
|
|
- return getApplicationContext().getBean(name, clazz);
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 通过class获取Bean.
|
|
|
+ *
|
|
|
+ * @param clazz
|
|
|
+ * @param <T>
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static <T> T getBean(Class<T> clazz) {
|
|
|
+ return getApplicationContext().getBean(clazz);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过name,以及Clazz返回指定的Bean
|
|
|
+ *
|
|
|
+ * @param name
|
|
|
+ * @param clazz
|
|
|
+ * @param <T>
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static <T> T getBean(String name, Class<T> clazz) {
|
|
|
+ return getApplicationContext().getBean(name, clazz);
|
|
|
+ }
|
|
|
}
|