WebMvcConfig.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.its.api.webapp.config;
  2. import com.its.api.aop.ApiHandlerInterceptor;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.web.servlet.config.annotation.CorsRegistry;
  5. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  6. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  7. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  8. @Configuration
  9. public class WebMvcConfig implements WebMvcConfigurer {
  10. @Override
  11. public void addInterceptors(InterceptorRegistry registry) {
  12. registry.addInterceptor(new ApiHandlerInterceptor())
  13. .addPathPatterns("/api/**") // 해당 경로에 접근하기 전에 인터셉터가 가로챈다.
  14. .excludePathPatterns("/boards") // 해당 경로는 인터셉터가 가로채지 않는다.
  15. ;
  16. }
  17. @Override
  18. public void addCorsMappings(CorsRegistry registry) {
  19. registry.addMapping("/**")
  20. //.allowCredentials(true)
  21. //.allowedOriginPatterns("*")
  22. .allowedOrigins("*") //허용할 Origin(요청 url) : "*" 의 경우 모두 허용
  23. .allowedMethods("GET", "POST", "PUT", "DELETE") //허용할 request http METHOD : POST, GET, DELETE, PUT
  24. .maxAge(3600) //브라우저 캐시 시간(단위: 초) : "3600" 이면 최소 1시간 안에는 서버로 재요청 되지 않음
  25. ;
  26. }
  27. @Override
  28. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  29. // registry.addResourceHandler("swagger-ui.html")
  30. // .addResourceLocations("classpath:/META-INF/resources/");
  31. // registry.addResourceHandler("/webjars/**")
  32. // .addResourceLocations("classpath:/META-INF/resources/webjars/");
  33. String separator = System.getProperty("file.separator");
  34. String mapDataDir = System.getProperty("user.dir")+separator+"MAPDATA/";
  35. registry.addResourceHandler("/MAPDATA/**")
  36. .addResourceLocations("file:///" + mapDataDir)
  37. //.setCachePeriod(60) // seconds
  38. ;
  39. }
  40. }