1. 서문:
제가 SpringMVC를 알게 된 것은 재미로 위챗 공개 계정 관리 플랫폼을 만들고 싶었기 때문에 플랫폼 선택을 고려해야 합니다. . 내 친구는 Linux 시스템을 실행하는 가상 호스트만 갖고 있고 자신의 포럼 중 일부도 이 호스트에서 실행되고 있기 때문입니다. Windows 가상 호스트를 찾을 수 없으며 친구가 호스팅하는 시스템으로 변경할 수도 없습니다. 처음에는 이전 .Net MVC 프로젝트의 프레임워크를 모노로 실행해서 사용할 수 있는지 알아보려고 했으나 전혀 실행이 안되는 것을 발견했습니다(당시 프로젝트는 Spring.NET을 사용했는데, 모노와 Spring.NET은 호환되지 않았으며 Spring.NET 포럼에서는 모노의 리플렉션 구현 메커니즘에 문제가 있다고 밝혔습니다. 좋은 소식은 최신 Spring.NET 프로젝트가 이미 모노를 지원하고 있다는 것입니다. 버그, 전혀 실행되지 않았던 이전보다 훨씬 나아졌습니다. 앞으로는 더 좋아질 것이라고 믿습니다. 자세한 내용은 SPRING-NET-MONO를 참조하세요. FQ가 필요할 수도 있습니다. ...).
그래서 저는 개발을 위해 Java를 사용하기로 결정했습니다. 제가 가장 먼저 읽기 시작한 것은 고전적인 SSH 프레임워크에 대한 몇 가지 정보였습니다. 참고용으로 책도 샀지만, 많이 읽지 못해서 질문이 생기기 시작했습니다. 가장 용납할 수 없는 것은 클래스당 하나의 액션을 취하는 Struts2의 접근 방식입니다. (코멘트에 있는 누군가는 이미 Struts2가 여러 Action 메소드를 구현할 수도 있다는 점을 지적했습니다. 수정해 주셔서 대단히 감사합니다.)
이 접근 방식에 따르면 객체의 기본 CURD 작업을 구현하려면 4개의 클래스가 필요하며 Java 클래스는 하나의 클래스 파일에만 속할 수 있습니다. 이런 방식으로 프로젝트는 여러 개의 클래스 파일을 생성합니다. 게다가 파일에 액션이 하나밖에 없고 내용도 별로 없습니다. 너무 장황하고 개발 효율성이 매우 낮다는 느낌이 듭니다.(위의 느낌은 당시 struts2를 봤을 때의 느낌일 뿐입니다.) .잘못된 점이 있으면 비판해 주시고 바로잡아 주시기 바랍니다.) 그래서 다른 방법으로 바꾸기로 했습니다. 우연히 Spring 3의 Spring MVC 도입을 보고 어노테이션 기반 컨트롤러와 액션 선언 방식이 .Net MVC와 매우 유사해서 바로 채택하기로 결정하여 이 시리즈가 탄생하게 되었습니다.
규칙:
이 시리즈에 사용된 Spring 버전은
spring-framework-3.2.5.RELEASE이고 Hibernate 버전은 hibernate-release-4.2입니다. 8.Final, Spring+Hibernate+Spring MVC 조합을 사용합니다.
2. Spring MVC란:
Spring MVC는 SpringFrameWork의 후속 제품으로 웹 구축을 위한 모든 기능을 갖춘 MVC 모듈을 제공합니다. Struts2도 훌륭한 MVC 프레임워크인데 차이점은 Spring 2.5에서 Annotated Controller를 도입하고 Spring 3 이후 지속적인 개선을 통해 Spring MVC 프레임워크를 사용한 개발 구조가 명확해지고 효율성이 크게 향상되었다는 점입니다.
3. 주석이 달린 Spring MVC 응답 프로세스: 그리기 1 4. 중요한 인터페이스 및 클래스에 대한 간단한 설명:
DispatcherServlet: 프런트엔드 컨트롤러, 요청을 받습니다.
HandlerMapping 인터페이스: 요청을 처리하는 데 사용되는 매핑입니다.
DefaultAnnotationHandlerMapping: URL을 특정 Controller 클래스에 매핑하는 데 사용되는 HandlerMapping 인터페이스 구현입니다.
HandlerAdapter 인터페이스: 요청을 처리하는 데 사용되는 매핑입니다.
AnnotationMethodHandlerAdapter: URL을 해당 Controller 클래스의 메서드에 매핑하는 데 사용되는 HandlerAdapter 인터페이스 샘플입니다.
ViewResolver 인터페이스: View를 구문 분석하는 데 사용됩니다.
InternalResourceViewResolver: ModelAndView의 논리적 뷰 이름을 특정 뷰로 확인하는 데 사용되는 ViewResolver 인터페이스 구현입니다.
위 내용은 SpringMVC 학습 시리즈(1) 중 SpringMVC에 대한 첫 번째 소개입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!