반응형
스프링 부트 인터셉터 예제
이 페이지에서는 Spring Boot에서 인터셉터를 사용하는 방법을 보여줍니다. 공통 비즈니스 로직을 처리하는 인터셉터를 사용할 수 있습니다. 프로젝트의 구조는 다음과 같습니다.
├─main
│ ├─java
│ │ └─com
│ │ └─henryxi
│ │ └─interceptor
│ │ AppConfig.java
│ │ SampleController.java
│ │ TestInterceptor.java
│ │
│ └─resources
│ application.properties
│
└─test
└─java
pom 파일의 내용
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
AppConfig.java
@EnableAutoConfiguration
@Configuration
@ComponentScan("com.henryxi.interceptor")
public class AppConfig extends WebMvcConfigurerAdapter {
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TestInterceptor()).addPathPatterns("/intercept");
}
public static void main(String[] args) throws Exception {
SpringApplication.run(AppConfig.class, args);
}
}
TestInterceptor.java
@Component
public class TestInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("this is interceptor, preHandle method");
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception {
System.out.println("this is interceptor, postHandle method");
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("this is interceptor, afterCompletion method");
}
}
SampleController.java
@Controller
public class SampleController extends SpringBootServletInitializer {
@RequestMapping("/intercept")
@ResponseBody
public String intercept() {
System.out.println("this is controller, request path is intercept");
return "hello spring boot interceptor, request path is intercept";
}
@RequestMapping("/not-intercept")
@ResponseBody
public String notIntercept() {
System.out.println("this is controller, request path is not intercept");
return "hello spring boot interceptor, request path is not intercept";
}
}
AppConfig
클래스 에서 메인 메소드를 실행하고 "localhost : 8080 / intercept"에 액세스하십시오. 다음과 같은 로그를 볼 수 있습니다.
this is interceptor, preHandle method
this is controller, request path is intercept
this is interceptor, postHandle method
this is interceptor, afterCompletion method
"localhost : 8090 / not-intercept"에 액세스하십시오. 다음과 같은 로그.
this is controller, request path is not intercept
인터셉터에 고유 한 비즈니스 로직을 추가 할 수 있습니다.
반응형
'Spring' 카테고리의 다른 글
Spring boot web filter 예제 (0) | 2020.06.21 |
---|---|
Spring, Spring boot mybatis 예제 (0) | 2020.06.21 |
스프링 Boot에서 PDF 출력하기 (0) | 2020.06.17 |
스프링 부트의 JdbcTemplate 예제 (0) | 2020.06.17 |
스프링 부트 Resource 파일 데이터로 가져오기 (0) | 2020.06.17 |