Java java지도 시간 컨트롤 레이어 SpringMVC와 Struts2의 차이점

컨트롤 레이어 SpringMVC와 Struts2의 차이점

Mar 03, 2017 am 10:11 AM

우리가 흔히 사용하는 MVC 레이어와 컨트롤 레이어 프레임워크에는 주로 각각 Action과 Controller에 해당하는 Struts2와 SpringMVC가 포함되어 있습니다. 그렇다면 SpringMVC와 Struts의 주요 차이점은 무엇입니까?

1. 프레임워크 메커니즘

우리는 Struts2가 Filter를 사용하여 구현하는 반면 SpringMVC는 Servlet을 사용하여 구현한다는 것을 알고 있습니다.

Struts2는 StrutsPrepareAndExecuteFilter를 사용하고 SpringMVC는 DispatcherServlet을 사용합니다. 필터는 특별한 서블릿입니다. 컨테이너가 시작된 후 필터가 초기화됩니다. 서블릿보다 나중에 서비스가 중지된 후 충돌이 발생합니다. 서블릿은 호출될 때 초기화되고, 필터가 호출되기 전에 서비스가 중지된 후 충돌합니다.


2. 차단 메커니즘

1. Struts2

Struts2 프레임워크는 클래스 수준 차단입니다. 각 요청은 Spring과 통합되면 Struts2 Action을 생성합니다. Bean 주입 범위는 프로토타입 모드 프로토타입이며(그렇지 않으면 스레드 동시성 문제가 발생함) 요청 데이터가 setter 및 getter를 통해 속성에 주입됩니다.

Struts2에서는 Action이 요청 및 응답 컨텍스트에 해당하며, 이는 속성을 통해 수신될 수 있음을 보여줍니다.


2. SpringMVC

SpringMVC는 메소드 수준 차단입니다. 따라서 이 메서드는 기본적으로 독립적이며 요청 및 응답 데이터에 독점적으로 액세스할 수 있습니다. 각 메소드는 동시에 URL에 해당합니다. 매개변수 전달은 메소드에 고유한 메소드에 직접 삽입됩니다. 처리 결과는 ModeMap을 통해 프레임워크로 반환됩니다.

Spring 통합 중에 SpringMVC의 Controller Bean은 기본적으로 싱글톤 모드로 설정되므로 기본적으로 모든 요청에 ​​대해 하나의 Controller만 생성되며 공유 속성이 없어야 합니다. 따라서 스레드로부터 안전합니다. 기본 범위를 변경하려면 @Scope 주석을 추가하여 수정해야 합니다.


3. 공연

SpringMVC는 SpringMVC의 메소드 기반 차단으로 인해 싱글톤 모드 Bean 주입이 한 번만 로드됩니다. Struts2는 클래스 수준 차단입니다. 인스턴스에 해당하는 새 작업을 요청할 때마다 모든 속성 값 주입을 로드해야 하므로 SpringMVC가 Struts2보다 빠릅니다.


4. 차단 메커니즘

Struts2에는 자체 차단 인터셉터 메커니즘이 있습니다. , SpringMVC는 독립적인 Aop 메소드를 사용합니다.

위 내용은 컨트롤 레이어 SpringMVC와 Struts2의 차이점입니다. 자세한 내용은 PHP 중국어 홈페이지(www. php.cn)!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

보호 관점에서 Struts2 기록 취약점을 보는 방법 보호 관점에서 Struts2 기록 취약점을 보는 방법 May 13, 2023 pm 05:49 PM

보호 관점에서 Struts2 기록 취약점을 보는 방법

SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 Dec 29, 2023 am 11:02 AM

SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석

Struts2 프레임워크의 원리는 무엇입니까 Struts2 프레임워크의 원리는 무엇입니까 Jan 04, 2024 pm 01:55 PM

Struts2 프레임워크의 원리는 무엇입니까

SpringBoot와 SpringMVC의 차이점은 무엇입니까? SpringBoot와 SpringMVC의 차이점은 무엇입니까? Dec 29, 2023 am 10:46 AM

SpringBoot와 SpringMVC의 차이점은 무엇입니까?

Struts2 취약점 S2-001 예제 분석 Struts2 취약점 S2-001 예제 분석 May 15, 2023 pm 03:58 PM

Struts2 취약점 S2-001 예제 분석

Struts2-057 RCE 취약점 예제 분석의 두 가지 버전 Struts2-057 RCE 취약점 예제 분석의 두 가지 버전 May 15, 2023 pm 06:46 PM

Struts2-057 RCE 취약점 예제 분석의 두 가지 버전

Struts2 S2-059 원격 코드 실행 취약점은 어떻게 재현됩니까? Struts2 S2-059 원격 코드 실행 취약점은 어떻게 재현됩니까? May 23, 2023 pm 10:37 PM

Struts2 S2-059 원격 코드 실행 취약점은 어떻게 재현됩니까?

Apache Struts2-048 원격 코드 실행 취약점을 재현하는 방법 Apache Struts2-048 원격 코드 실행 취약점을 재현하는 방법 May 12, 2023 pm 07:43 PM

Apache Struts2-048 원격 코드 실행 취약점을 재현하는 방법

See all articles