2017-03-11 1 views
-1

나는 그것을 찾으려고했지만 많은 다른 시나리오를 발견했지만이 것은 아닙니다.com.myproject.api 아래의 모든 컨트롤러에 "api"접두사를 추가하는 방법은 무엇입니까?

내가 원하는 것은 com.myproject.api 아래의 컨트롤러에있는 모든 경로에 "/ api /"접두사를 추가하는 것입니다. com.myapp.api 패키지 아래에있는 모든 컨트롤러에 대해 "/ api/*"를 원하고 com.myapp.web 아래에 모든 컨트롤러에 대한 접두어를 지정하지 마십시오.

Spring/Spring Boot로 가능합니까?

+0

이것은 동일하지 않습니다. –

답변

0

이미 대답했습니다. herehere입니다.

다음과 같은 옵션을 사용하여, SRC/메인/자원 하에서 application.properties 파일을 추가합니다 :

server.contextPath=/api 

확인 common properties의 공식 참조.

+0

모두에게 기본 URL을 추가하고 싶지 않습니다. 프론트 엔드 템플릿과 함께 응용 프로그램을 만들고 있습니다. 접두어로 붙이고 싶습니다. –

+0

HTML보기에는 com.myproject.api/**를, 다른 컨트롤러에는 com.myproject.api/api/**를 사용하고 싶습니다 (예 : REST 컨트롤러)? –

+0

아니요. 패키지 com.myapp.api에있는 모든 컨트롤러에 대해 "/ api/*"를 사용하고 com.myapp.web에있는 모든 컨트롤러에 대해 접두사를 사용하지 않으려합니다. –

0

원하는 @Controller 또는 @RestController 클래스의 맨 위에 @RequestMapping("/api")을 추가해야합니다.

클래스와 메소드 모두 주석이있는 경우 스프링 부트는 URL을 작성하는 동안 주석을 추가합니다. 아래 예제에서이 메소드는 /api/user 경로에 바인딩됩니다.

@RequestMapping("/api") 
@RestController 
public class MyController { 

    @RequestMapping("/user") 
    public List<User> getUsers(){ 
    return ... 
    } 

} 
+0

'원하는 모든 Controller 또는 RestController 클래스의 맨 위에.' - 그렇게하기 위해 어떻게 든 Spring을 설정하는 것은 불가능하지 않습니까? 유지하는 것이 더 쉬울 것 –

+0

패키지 레벨 주석이지만, '@ RequestMapping'은 그것을 지원하지 않습니다. – bekce

+0

어떻게 든 server.contextPath로 할 수 없지만 패키지에만 적용됩니까? –