SpringMVC 의 어댑터 HandlerAdapter 분석
1994 단어 SpringMVC어댑터HandlerAdapter
설정 파일 에 설정 되 어 있 지 않 으 면 기본 설정 은 Dispatcher Servle.properties 파일 을 읽 습 니 다.이 파일 에는 세 가지 HandlerAdapter:HttpRequestHandlerAdapter,Simple Controller HandlerAdapter,AnnotationMethodHandlerAdapter 가 설정 되 어 있 습 니 다.
SimpleControllerHandlerAdapter : Controller
HttpRequestHandlerAdapter :HTTP
RequestMappingHandlerAdapter : (@Controller)
getHandler 방법 은 요청 에 따라 handlerAdapters 에 등 록 된 어댑터 를 옮 겨 다 니 며 해당 하 는 어댑터 로 처리 합 니 다.
for (HandlerMapping hm : this.handlerMappings) {
HandlerExecutionChain handler = hm.getHandler(request);
if (handler != null) {
return handler;
}
}
Handler Adapter 인 터 페 이 스 는 세 가지 방법 이 있 습 니 다.supports 방법:이 어댑터 가 이 Handler Method 를 지원 하 는 지 여 부 를 판단 하 는 것 입 니 다.handler 를 얻 었 을 때 이 인터페이스 하위 클래스 를 판단 하 는 방법 입 니 다.
handle 방법:컨트롤 러 처리 함 수 를 실행 하고 Model AndView 를 가 져 옵 니 다.이 어댑터 호출 규칙 에 따라 handler 방법 을 실행 하 는 것 입 니 다.
정상적으로 호출 을 작성 하려 면 여러 개의 if else 를 사용 하여 instance of 를 판단 해 야 합 니 다.
if(handler instanceof HttpRequestHandler){
handle1();//HttpRequestHandler
} else if (handler instanceof Controller){
handle2();//Controller
} else if (handler instanceof Servlet){
handle3();//Servlet
}
이 방법 은 새로운 프로세서 구현 방식 을 추가 하려 면 원본 코드 를 수정 하고 else 를 추가 하여 처리 논 리 를 추가 해 야 합 니 다.확장 개방,닫 기 원칙 에 부합 되 지 않 습 니 다.HandlerAdapter 를 사용 한 후 프로세서(Controller)를 추가 해 야 할 때 HandlerAdapter 하나만 추가 하면 됩 니 다.논 리 는 그의 슈퍼 ports 방법 에서 처리 논 리 는 handle 에 있 으 며 다른 코드 를 수정 할 필요 가 없다 고 판단 합 니 다.SpringMVC 의 어댑터 HandlerAdapter 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.SpringMVC 어댑터 HandlerAdapter 에 관 한 더 많은 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ssm 프레임워크 업로드 이미지 로컬 및 데이터베이스에 저장 예시본고는 ssm 프레임워크 업로드 이미지를 로컬과 데이터베이스에 저장하는 예시를 소개하고 주로 Spring+SpringMVC+MyBatis 프레임워크를 사용하여 ssm 프레임워크 업로드 이미지의 실례를 실현했다. 구체...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.