2017-04-26 1 views
1

간단한 스프링 부트 응용 프로그램을 시험 중입니다. 여기 내 코드가있다. 그래서 내가 달릴 때 sayHello()라고 부르는 이유는 무엇입니까?경로를 지정하지 않고 호출되는 스프링 부트 응용 프로그램

@RestController 
public class HelloController { 

    @RequestMapping() 
    public String sayHello2(){ 
     return "Hello2"; 
    } 
    @RequestMapping(produces = { "text/html" }) 
    public String sayHello(){ 
     return "Hello"; 
    } 
} 

답변

1

어디서 API를 호출 하느냐에 따라 다릅니다. 기본 형식이 text/html 인 브라우저에서 호출 할 때 sayHello를 호출합니다. curl을 사용하여 전화를 걸면 sayHello2가 호출됩니다.

0

요청 헤더에 따라 다릅니다. 요청 헤더에 text/html (일반적으로 브라우저에서)을 수락하면 해당 요청이 실행됩니다. @pvpkiran이 지적한 것처럼 curl을 시도하거나 Accept 헤더를 변경하여 차이점을 확인하십시오.

0

URL 패턴을 제공하지 않습니다.이 방법은 둘 다 언급하지 않았으므로 동일한 방법으로 매핑을 공유합니다 (예 : "/").

@RestController 
public class HelloController { 

    @RequestMapping(value="/") 
    public String sayHello2(){ 
     return "Hello2"; 
    } 
    @RequestMapping(value="/hello",produces = { "text/html" }) 
    public String sayHello(){ 
     return "Hello"; 
    } 
} 

해주기 U는 sayHello2()를 실행 / 들어갈 때 및 URL 패턴 인 경우/ 안녕하세요은 의 sayHello()를 실행한다.

관련 문제