interceptor 와 AOP
- 작성자 :
- 임*화
- 작성일 :
- 2010-11-09 15:02:06
- 조회수 :
- 2,542
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
우선 상세한 답변 감사드립니다. *^^*
제가 확인을 해봐도 URL 체크의 경우에는 interceptor 를 활용하고
그외는 AOP 로 가는게 맞을 거 같은데.
제가 하고자 하는게 어떤 거냐면요.
게시판을 예로 들자면, DB에 글을 저장, 수정, 삭제 처리 할때
즉, Insrt, Update, Delete 가 수행되는 Controller 의 메소드들을
실행을 할때, 이전 페이지 주소와 도메인을 구해와서 정상적인 페이지로 부터
호출이 아닐경우에는 메인 페이지로 이동을 시키려고 하는 겁니다.
현재 모든 Controller의 같은 작업을 하는 녀석들은 메소드명을 통일을 시켜놨습니다.
insert*, update*, delete* 와 같이요.
그래서 모든 Controller 에 공통적으로 처리를 해야 해서 AOP, interceptor
둘중에 하나를 쓰려고 봤더니..
AOP 에서는 request 를 구해올 방법이 없어서 URL 체크나 도메인 체크가 불가능
하구요.
interceptor 에서는 request를 사용할수 있어서 interceptor를 사용하려고
봤더니 다음에 실행될 메소명을 구해올수가 없어서.
insert*, update*, delete* 로 시작하는 메소드 일때만 처리를 해야 하는데
그것도 불가능 하더라구요..
그래서 질문을 드렸던 겁니다.
혹시 이런 상황에서는 정녕 방법이 없는건가요?
혹시 이거 말고 더 좋은 방법은 없을까요? *^^*
제가 확인을 해봐도 URL 체크의 경우에는 interceptor 를 활용하고
그외는 AOP 로 가는게 맞을 거 같은데.
제가 하고자 하는게 어떤 거냐면요.
게시판을 예로 들자면, DB에 글을 저장, 수정, 삭제 처리 할때
즉, Insrt, Update, Delete 가 수행되는 Controller 의 메소드들을
실행을 할때, 이전 페이지 주소와 도메인을 구해와서 정상적인 페이지로 부터
호출이 아닐경우에는 메인 페이지로 이동을 시키려고 하는 겁니다.
현재 모든 Controller의 같은 작업을 하는 녀석들은 메소드명을 통일을 시켜놨습니다.
insert*, update*, delete* 와 같이요.
그래서 모든 Controller 에 공통적으로 처리를 해야 해서 AOP, interceptor
둘중에 하나를 쓰려고 봤더니..
AOP 에서는 request 를 구해올 방법이 없어서 URL 체크나 도메인 체크가 불가능
하구요.
interceptor 에서는 request를 사용할수 있어서 interceptor를 사용하려고
봤더니 다음에 실행될 메소명을 구해올수가 없어서.
insert*, update*, delete* 로 시작하는 메소드 일때만 처리를 해야 하는데
그것도 불가능 하더라구요..
그래서 질문을 드렸던 겁니다.
혹시 이런 상황에서는 정녕 방법이 없는건가요?
혹시 이거 말고 더 좋은 방법은 없을까요? *^^*
A
안녕하세요.. 임경화님..
우선.. 말씀하신 부분도 interceptor의 기능으로 구현하시는 것이 더 맞을 것 같습니다. 다만, 특정 메소드 패턴만 그런 제약사항을 거시는 것은.. 어려울 것 같습니다.
대신, 메소드에 대한 패턴이 아닌 URL에 대한 패턴으로 구분을 하시는 방법도 가능할 것 같습니다.
interceptor의 경우 request 객체를 통해 url 정보와 이전 페이지 정보(http의 referer)를 얻을 수 있어서 가능할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
우선.. 말씀하신 부분도 interceptor의 기능으로 구현하시는 것이 더 맞을 것 같습니다. 다만, 특정 메소드 패턴만 그런 제약사항을 거시는 것은.. 어려울 것 같습니다.
대신, 메소드에 대한 패턴이 아닌 URL에 대한 패턴으로 구분을 하시는 방법도 가능할 것 같습니다.
interceptor의 경우 request 객체를 통해 url 정보와 이전 페이지 정보(http의 referer)를 얻을 수 있어서 가능할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.