[SPRING] 스프링 REST 컨트롤러에서 모든 요청을 차단하는 방법은 무엇입니까?
SPRING스프링 REST 컨트롤러에서 모든 요청을 차단하는 방법은 무엇입니까?
나는 많은 컨트롤러를 가지고있다 :
@RestController
public class AreaController {
@RequestMapping(value = "/area", method = RequestMethod.GET)
public @ResponseBody ResponseEntity<Area> get(@RequestParam(value = "id", required = true) Serializable id) { ... }
}
나는 그 (것)들을 도달하는 모든 요구를 차단할 필요가있다,
이 예제와 같은 인터셉터를 만들었습니다.
http://www.mkyong.com/spring-mvc/spring-mvc-handler-interceptors-example/
하지만 결코 들어 가지 않습니다 :(
어노테이션 만 사용하기 때문에 인터셉터를 정의 할 XML이 없습니다. 나는 이것을 다음과 같이 설정했다.
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.test.app")
public class AppConfig extends WebMvcConfigurerAdapter {
@Bean
public ControllerInterceptor getControllerInterceptor() {
ControllerInterceptor c = new ControllerInterceptor();
return c;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getControllerInterceptor());
super.addInterceptors(registry);
}
}
나는 무엇을 잘못하고 있는가?
해결법
-
==============================
1.Interceptor 클래스 ControllerInterceptor는 응용 프로그램 컨텍스트 관리 Bean이 아닙니다. ControllerInterceptor에 @Component 주석을 추가하고 패키지를 @ComponentScan에 추가하십시오. 따라서 ControllerInterceptor가 다음과 같이 com.xyz.interceptors 패키지에 있다고 가정 해 보겠습니다.
Interceptor 클래스 ControllerInterceptor는 응용 프로그램 컨텍스트 관리 Bean이 아닙니다. ControllerInterceptor에 @Component 주석을 추가하고 패키지를 @ComponentScan에 추가하십시오. 따라서 ControllerInterceptor가 다음과 같이 com.xyz.interceptors 패키지에 있다고 가정 해 보겠습니다.
package com.xyz.interceptors; //this is your package @Component //put this annotation here public class ControllerInterceptor extends HandlerInterceptorAdapter{ // code here }
AppConfig는 다음과 같습니다.
@ComponentScan(basePackages = { "com.test.app", "com.xyz.interceptors" }) public class AppConfig extends WebMvcConfigurerAdapter { // ... }
-
==============================
2.그래서 명백하게 나는 틀린 무엇인가하고 있었다. 그러나 무엇을 말할 수 없다.
그래서 명백하게 나는 틀린 무엇인가하고 있었다. 그러나 무엇을 말할 수 없다.
인터셉터를 다음과 같이 정의합니다.
<mvc:interceptors> <bean class="com.test.ControllerInterceptor" /> </mvc:interceptors>
나는 당신이 순수한 자바로 정의 할 수 있다고 확신하지만,
대답은에서 발견 : http://viralpatel.net/blogs/spring-mvc-interceptor-example/
-
==============================
3.가능한 매핑이 누락되었습니다.
가능한 매핑이 누락되었습니다.
registry.addInterceptor(getControllerInterceptor()).addPathPatterns("/**");
그리고 내가 아는 한 당신은 사용하지 않아도됩니다.
super.addInterceptors(registry);
from https://stackoverflow.com/questions/35232597/how-to-intercept-all-requests-in-spring-rest-controllers by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 최상위 패키지에없는 주 클래스 인 경우 @RestController를 찾을 수 없습니다. (0) | 2019.05.12 |
---|---|
[SPRING] 구성 문제 : XML 스키마 네임 스페이스 용 Spring NamespaceHandler를 찾을 수 없음 [http://java.sun.com/xml/ns/javaee] (0) | 2019.05.12 |
[SPRING] Spring-JDBC에서 격리 수준 SERIALIZABLE (0) | 2019.05.12 |
[SPRING] javax.imageio.ImageIO 클래스를 초기화 할 수 없습니다. (0) | 2019.05.12 |
[SPRING] 날짜가 잘못된 경우 Spring mvc Joda Datetime 변환기가 실패합니다. (0) | 2019.05.12 |