TIL

[TIL] Spring boot @Deprecated 어노테이션

봄봄로그 2023. 6. 27. 18:20

내가 관리하는 서비스엔 너무나도 많은 엔드포인트들이 존재한다. 업체 별로 버전을 만들거나 버전을 올리거나.. 하면서 우후죽순으로 생겨난 url들이다.....

그래서 처음엔 비슷한 이름으로 너무 여러 개 있어서 외부로 나가는 API 연동문서 없이는 일할 수 없었지..

 

이번에 어떤 프로젝트를 진행하면서 소스를 대대적으로 검토하고 있는데, 이런 쓰이는지 안쓰이는지도 모르는 엔드포인트를 정리할 필요성을 느꼈다. 그렇게 해서 알게된 것은 Spring boot의 어노테이션 @Deprecated 

이것은 앞으로 사용하지 않는 소스라는 표시를 하는 것이다.

그렇다고 해서 호출 자체를 막는 것은 아니고 그냥 표시를 해두는 것으로 알고있다.

    @Deprecated
    @PostMapping("/v1/deprecated")
    public @ResponseBody
    Object deprecated(@RequestBody Map<String, Object> commandMap, ModelMap model, HttpServletRequest request) throws Exception {
    }

이렇게 method 위에 표시하면 해당 method는 deprecated 처리 된다.

 

 

@RestController
@Deprecated
public class TestController {

@PostMapping("/test")
    public @ResponseBody Object test(@RequestBody Map<String, Object> commandMap, HttpServletRequest request) throws Exception {

}

이렇게 Class 전체를 막을 수도 있다. 전체를 deprecated 처리하면 클래스는 사용하지 않는 다는 의미로 취소선이 생긴다.