FreeMarker 설정
package co.jp.test1.test2.SpringMVCSetting;
import co.jp.test1.test2.util.SessionChecker;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
@Configuration
public class testWebMvcConfigurer implements WebMvcConfigurer {
/**
* FreeMarker 설정
*/
@Bean
public ViewResolver viewResolver() {
FreeMarkerViewResolver viewResolver = new FreeMarkerViewResolver();
viewResolver.setCache(false);
viewResolver.setPrefix("");
viewResolver.setSuffix(".ftlh");
viewResolver.setContentType("text/html; charset=utf-8");
return viewResolver;
}
/**
* 세션처리
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 세션 타임아웃 처리
registry.interceptors(new SessionChecker()).excludePathPatterns(
"/api/apiTest*"
, "/css/**"
, "/js/**"
, "/image/**"
, "/Login*"
, "/healthcheck/**"
, "/continuesession/**"
, "/Error*"
, "/error*"
, "/timeout*");
}
}
◇ 뷰 리졸버 설정:
viewResolver() 메서드에서 FreeMarker 뷰 리졸버를 설정합니다. FreeMarker는 템플릿 기반의 뷰 엔진으로, HTML 템플릿과 데이터를 결합하여 동적인 웹 페이지를 생성하는 데 사용됩니다. 이 설정은 뷰 템플릿 파일의 위치와 확장자, 캐시 여부 등을 정의합니다.
◇ 인터셉터 설정:
addInterceptors() 메서드를 통해 메서드의 전후에 실행되는 인터셉터를 설정합니다.
SessionChecker: 이 인터셉터는 세션이 존재하는지 확인하고, 세션이 존재하지 않을 경우에 대비한 처리를 수행합니다. 로그인, 에러, 타임아웃 페이지를 제외하고 세션 체크를 수행하도록 excludePathPatterns()를 사용하여 경로 패턴을 설정합니다.