Created
September 8, 2017 09:03
-
-
Save djkeh/6d5c7f4cb07b20b4f9485bec60fcdb32 to your computer and use it in GitHub Desktop.
@RequestMapping 상속 문제 정리
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package my.controllertest.controller; | |
import org.springframework.stereotype.Controller; | |
import org.springframework.web.bind.annotation.RequestMapping; | |
/** | |
* 이 문제의 수동 테스트 결과는 "/path/home" 이다.<br> | |
* 1. 자식클래스의 "path"가 부모 클래스나 인터페이스를 override했기 때문.<br> | |
* 2. 자식클래스 "path"를 제거할 경우 답은 "/if/home" 이다.<br> | |
* 3. 자식 인터페이스 "if"를 제거할 경우 답은 "/superif/home"<br> | |
* 4. 부모 인터페이스 "superif"를 제거할 경우 답은 "/if/home"<br> | |
* 5. 인터페이스 매핑 전부를 지웠을 경우 답은 "/super/home"<br> | |
* <br> | |
* 따라서, @RequestMapping 상속 적용 우선순위는 1. 자기 자신 클래스 2. 최종 인터페이스 3. 부모 인터페이스 4. 상속 클래스 이며,<br> | |
* 최고 우선순위 매핑이 나머지 매핑 정보를 덮어쓴다. | |
* | |
* @author Uno Kim ([email protected]) | |
*/ | |
@Controller | |
@RequestMapping("/path") | |
public class TestController extends SuperController implements MyInterface { | |
@RequestMapping("/home") | |
public String home() { return "index"; } // Quiz: home()에 접근하려면 url을 뭐라고 넣어야 하는가? 그것은 항상 보장되는가? | |
} | |
@RequestMapping("/super") | |
class SuperController {} | |
@RequestMapping("/superif") | |
interface MyInterface extends SuperInterface {} | |
@RequestMapping("/if") | |
interface SuperInterface {} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment