wangwei 7 年之前
父節點
當前提交
6bb8b396f8

+ 41 - 41
core-main/src/main/java/cn/com/qmth/examcloud/service/core/AccessControlConfig.java

@@ -1,41 +1,41 @@
-package cn.com.qmth.examcloud.service.core;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-import cn.com.qmth.examcloud.common.uac.AccessCtrlInterceptor;
-
-/**
- * prod环境开启权限验证
- * @author ting.yin
- */
-@Configuration
-//@Profile("prod")
-public class AccessControlConfig extends WebMvcConfigurerAdapter {
-
-	@Autowired
-	RedisTemplate redisTemplate;
-
-	@Bean
-	public AccessCtrlInterceptor getInterceptor() {
-		return new AccessCtrlInterceptor(redisTemplate);
-	}
-
-    @Override
-	public void addInterceptors(InterceptorRegistry registry) {
-		registry.addInterceptor(getInterceptor()).addPathPatterns("/**").excludePathPatterns("/**/swagger-ui.html#/**");
-	}
-	@Override
-	public void addCorsMappings(CorsRegistry registry) {
-		registry.addMapping("/**")
-				.allowedOrigins("*")
-				.allowedMethods("GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "TRACE")
-				.allowedHeaders("*");
-	}
-}
+package cn.com.qmth.examcloud.service.core;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+import cn.com.qmth.examcloud.common.uac.AccessCtrlInterceptor;
+
+/**
+ * prod环境开启权限验证
+ * @author ting.yin
+ */
+@Configuration
+//@Profile("prod")
+public class AccessControlConfig extends WebMvcConfigurerAdapter {
+
+	@SuppressWarnings("rawtypes")
+	@Autowired
+	RedisTemplate redisTemplate;
+
+	@Bean
+	public AccessCtrlInterceptor getInterceptor() {
+		return new AccessCtrlInterceptor(redisTemplate);
+	}
+
+    @Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(getInterceptor()).addPathPatterns("/**").excludePathPatterns("/**/swagger-ui.html#/**");
+	}
+	@Override
+	public void addCorsMappings(CorsRegistry registry) {
+		registry.addMapping("/**")
+				.allowedOrigins("*")
+				.allowedMethods("GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "TRACE")
+				.allowedHeaders("*");
+	}
+}

+ 35 - 22
core-main/src/main/java/cn/com/qmth/examcloud/service/core/Application.java

@@ -1,6 +1,8 @@
 package cn.com.qmth.examcloud.service.core;
 
-import com.qmth.commons.query.dao.impl.BaseQueryDaoImpl;
+import java.util.UUID;
+
+import org.slf4j.MDC;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -13,31 +15,42 @@ import org.springframework.context.annotation.ComponentScan;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.web.multipart.MultipartResolver;
 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
-import org.springframework.web.servlet.config.annotation.CorsRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
-@ComponentScan(basePackages = {"com.qmth.commons","cn.com.qmth"})
-@EntityScan(basePackages = {"com.qmth.commons","cn.com.qmth"})
-@EnableJpaRepositories(basePackages = {"com.qmth.commons","cn.com.qmth"},repositoryBaseClass = BaseQueryDaoImpl.class)
+import com.qmth.commons.query.dao.impl.BaseQueryDaoImpl;
+
+import cn.com.qmth.examcloud.common.support.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.common.support.logging.ExamCloudLogFactory;
+import cn.com.qmth.examcloud.common.support.logging.SLF4JImpl;
+
+@ComponentScan(basePackages = { "com.qmth.commons", "cn.com.qmth" })
+@EntityScan(basePackages = { "com.qmth.commons", "cn.com.qmth" })
+@EnableJpaRepositories(basePackages = { "com.qmth.commons",
+		"cn.com.qmth" }, repositoryBaseClass = BaseQueryDaoImpl.class)
 @SpringBootApplication
 @EnableEurekaClient
 @EnableFeignClients
-@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
+@EnableAutoConfiguration(exclude = { MultipartAutoConfiguration.class })
 public class Application {
 
-    public static void main(String[] args) throws Exception {
-        SpringApplication.run(Application.class, args);
-    }
-
-    // 显示声明CommonsMultipartResolver为mutipartResolver
-    @Bean(name = "multipartResolver")
-    public MultipartResolver multipartResolver() {
-        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
-        resolver.setDefaultEncoding("UTF-8");
-        resolver.setResolveLazily(true);// resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常
-        resolver.setMaxInMemorySize(40960);
-        resolver.setMaxUploadSize(200 * 1024 * 1024);// 上传文件大小 200M 50*1024*1024
-        return resolver;
-    }
+	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(Application.class);
+
+	public static void main(String[] args) throws Exception {
+		// 设置主线程埋点跟踪链
+		if (LOG instanceof SLF4JImpl) {
+			String traceID = UUID.randomUUID().toString().replace("-", "");
+			MDC.put("TRACE_ID", traceID);
+		}
+		SpringApplication.run(Application.class, args);
+	}
+
+	// 显示声明CommonsMultipartResolver为mutipartResolver
+	@Bean(name = "multipartResolver")
+	public MultipartResolver multipartResolver() {
+		CommonsMultipartResolver resolver = new CommonsMultipartResolver();
+		resolver.setDefaultEncoding("UTF-8");
+		resolver.setResolveLazily(true);// resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常
+		resolver.setMaxInMemorySize(40960);
+		resolver.setMaxUploadSize(200 * 1024 * 1024);// 上传文件大小 200M 50*1024*1024
+		return resolver;
+	}
 }

+ 2 - 2
core-main/src/main/resources/logback-spring.xml

@@ -3,14 +3,14 @@
 
 	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 		<encoder>
-			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %m | [%class:%line]%n</pattern>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{LOGIN_NAME} | %m | [%class:%line]%n</pattern>
 		</encoder>
 	</appender>
 
 	<appender name="FILE-STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
 		<file>./logs/console/console.log</file>
 		<encoder>
-			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %m | [%class:%line]%n</pattern>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{LOGIN_NAME} | %m | [%class:%line]%n</pattern>
 		</encoder>
 		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 			<fileNamePattern>./logs/console/console.%d{yyyy-MM-dd}.log.zip</fileNamePattern>