복붙노트

[SPRING] 아무도 나에게 클래스 레벨 컨트롤러와 메소드 레벨 컨트롤러 간의 차이점을 설명 할 수 있습니까?

SPRING

아무도 나에게 클래스 레벨 컨트롤러와 메소드 레벨 컨트롤러 간의 차이점을 설명 할 수 있습니까?

나는 봄 프레임 워크에 새로운 .... 구글에서 검색하는 동안. 나는 클래스 수준에서 선언 된 @RequestMapping을 가진 몇 가지 예제를 발견하고 몇 가지 예를 menthod 수준에서 보여 주었다.

언제 클래스 수준의 RequestMapping 및 메서드 수준 RequestMapping 주석을 사용하려면 ... 아무도 나에게 클래스 수준 RequestMapping과 메서드 수준 RequestMapping 사이의 차이를 설명 할 수 있습니까 ??

그래서 나는 그들의 응용에 대해 약간 혼란스러워한다 :

a) 수업 수준

b) 방법 수준

또한 형식으로 일부 @Requestmapping을 발견했습니다 : GET / Post, 일부 예제에는 형식 매개 변수가없는 반면.

어떤 접근 방식이 더 좋습니까?

최신 버전 (> Spring 2.5)에는 요청 매핑을위한 매개 변수 유형이 필요하지 않습니까 ???

해결법

  1. ==============================

    1.컨트롤러는 클래스 수준에서 @Controller로 표시되어야합니다. @RequestMapping 어노테이션은 클래스 및 메소드 레벨 모두에 적용 할 수 있습니다. 일치하는 경우 메서드 주석은 상대 URL로 해석됩니다 (클래스 수준 URL에 상대적 임). 그러나 메소드 레벨 주석이 있어야하며 그렇지 않으면 메소드가 맵핑되지 않습니다.

    컨트롤러는 클래스 수준에서 @Controller로 표시되어야합니다. @RequestMapping 어노테이션은 클래스 및 메소드 레벨 모두에 적용 할 수 있습니다. 일치하는 경우 메서드 주석은 상대 URL로 해석됩니다 (클래스 수준 URL에 상대적 임). 그러나 메소드 레벨 주석이 있어야하며 그렇지 않으면 메소드가 맵핑되지 않습니다.

    주석에서 매개 변수는 기본값으로 선택적으로 표시 할 수 있습니다. method 매개 변수는 그런 경우입니다. 기본값은 GET이지만 POST 또는 명시 적으로 설정할 수 있습니다.

    만나다:

  2. ==============================

    2.마지막 질문에 답하기 위해 어느 것이 더 나은지, 생산에서 우리는이 둘의 조합을 사용한다고 말할 것입니다. 예를 들어 사용자 컨트롤러가있는 경우 클래스를 "/ user"에 매핑하고 getSettings ()에 대한 메소드는 "/ settings"에 매핑하고 getPermissions () 메서드는 "/ permissions"등에 매핑합니다.

    마지막 질문에 답하기 위해 어느 것이 더 나은지, 생산에서 우리는이 둘의 조합을 사용한다고 말할 것입니다. 예를 들어 사용자 컨트롤러가있는 경우 클래스를 "/ user"에 매핑하고 getSettings ()에 대한 메소드는 "/ settings"에 매핑하고 getPermissions () 메서드는 "/ permissions"등에 매핑합니다.

    이러한 메소드를 "/ user / settings"및 "/ user / permissions"에 직접 매핑하고 클래스 매핑을 건너 뛸 수 있습니다. 그러나 대부분 우리는 첫 번째 방법을 선호합니다.

  3. from https://stackoverflow.com/questions/10425794/can-anybody-explain-me-difference-between-class-level-controller-and-method-leve by cc-by-sa and MIT license