Spring 응용 어댑터 디자인 모델
Spring AOP 의 어댑터 모드
Spring AOP 의 구현 은 프 록 시 모드 에 기반 한 것 이지 만 Spring AOP 의 증강 및 알림 (Advice) 은 어댑터 모드 에 사 용 됐 으 며 이와 관련 된 인 터 페 이 스 는
AdvisorAdapter
이다.Advice 에서 자주 사용 하 는 유형 은 다음 과 같 습 니 다.
BeforeAdvice
(목표 방법 호출 전, 사전 알림) AfterAdvice
(목표 방법 호출 후, 사후 알림) AfterReturningAdvice
(목표 방법 집행 이 끝 난 후 return 전) 등.모든 종류의 Advice (알림) 에는 해당 하 는 차단기 가 있 습 니 다.
MethodBeforeAdviceInterceptor
AfterReturningAdviceAdapter
AfterReturningAdviceInterceptor
Spring 에서 미리 정 의 된 알림 은 대응 하 는 어댑터 를 통 해 어댑터
MethodInterceptor
인터페이스 (방법 차단기) 유형의 대상 (예 를 들 어 MethodBeforeAdviceInterceptor
이 어댑터 MethodBeforeAdvice
를 책임 져 야 합 니 다.Spring MVC 의 어댑터 모드
Spring MVC 에 서 는
DispatcherServlet
요청 정보 호출 HandlerMapping
에 따라 요청 을 대응 하 는 Handler
(즉, 일반적으로 말 하 는 Controller
컨트롤 러 로 분석 한 후 HandlerAdapter
어댑터 로 처리 하기 시작 했다.HandlerAdapter
기대 인터페이스 로 서 구체 적 인 어댑터 실현 류 는 목표 류 에 적합 하고 Controller
는 적합 한 유형 으로 한다.왜 Spring MVC 에서 어댑터 모드 를 사용 합 니까?
Spring MVC 의
Controller
종 류 는 매우 많 고 유형 별 Controller
은 서로 다른 방법 으로 요청 을 처리한다.어댑터 디자인 모델 을 이용 하지 않 고 DispatcherServlet
해당 유형 Controller
을 직접 가 져 오 게 하려 면 아래 코드 와 같이 자체 적 으로 판단 해 야 합 니 다.if(mappedHandler.getHandler() instanceof MultiActionController){
((MultiActionController)mappedHandler.getHandler()).xxx
}else if(mappedHandler.getHandler() instanceof XXX){
...
}else if(...){
...
}
만약 에
Controller
유형 을 하나 더 추가 하면 상기 코드 에 판단 문 구 를 한 줄 더 추가 해 야 한다. 이런 형식 으로 인해 프로그램 을 유지 하기 어렵 고 디자인 모델 의 개폐 원칙 - 확장 개방, 수정 에 대해 닫 힌 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.