어떤 경우에는 서비스 컨트롤러의 접두사가 일관됩니다. 예를 들어 모든 URL의 접두사는 /context-path/api/v1이고 일부 URL에는 통합 접두사를 추가해야 합니다.
가능한 해결책은 서비스의 context-path를 수정하고 api/v1을 context-path에 추가하는 것입니다. 전역 접두사를 수정하면 위의 문제를 해결할 수 있지만 URL에 접두사가 여러 개 있는 경우에는 단점이 있습니다. 일부 URL 앞에 api/v2를 붙여야 하는 경우에는 차이를 알 수 없습니다. 서비스의 일부 정적 리소스에 api/v1을 추가하지 않으려는 경우에도 차이를 알 수 없습니다.
다음은 사용자 정의 주석을 통해 특정 URL 접두어를 통합 추가한 것입니다.
여러 접두사가 필요한 경우 여러 구성 세트를 추가하세요. 예를 들어 다음을 추가하세요: api.prefix.v2=/api/v2
####### #### ####url 접두사 구성##############
api.prefix.v1=/api/v1
과 일치하며 api.prefix.v1의 구성에 해당합니다. 구성 세트가 여러 개인 경우에는 여러 개의 주석을 정의하세요.@RestController
@Data @Component @ConfigurationProperties(prefix = "api.prefix") public class ApiPrefix { private String v1; }
@RestController @Documented @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface ApiV1RestController { }
5. 테스트
@AutoConfiguration public class WebMvcConfig implements WebMvcConfigurer { @Autowired private ApiPrefix apiPrefix; @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.addPathPrefix(apiPrefix.getV1(), c -> c.isAnnotationPresent(ApiV1RestController.class)); } }
위 내용은 SpringBoot 다중 컨트롤러에 URL 접두사를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!