본문 바로가기

개발개발

@RequestMapping 의 비밀

스프링을 사용하면 @RequestMapping 어노테이션을 다음처럼 많이 사용합니다.

@RequestMapping("/foo")

@RequestMapping(value="/foo")

이거 이상하지 않나요? 왜 이게 동작할까요? spring 문서 를 참조하면 value 는 분명 배열 타입이거든요. value 뿐만 아니라 path 도 그렇구요. 이거 너무 이상한데 왜 다들 당연하게 사용하는걸까요?

제가 한동안 자바 공부를 게을리했는데 그동안 자바가 발전해서 String 값을 String[] 에 할당하면 업캐스팅이라도 된걸까요?

그럴리가 없습니다. ㅎㅎㅎ

자바 Language Specification에서 어노테이션에 대한 특별한 문법인것 같네요.

Language Specification section 9.7.1 on annotations:

If the element type is an array type, then it is not required to use curly braces to specify the element value of the element-value pair. If the element value is not an ElementValueArrayInitializer, then an array value whose sole element is the element value is associated with the element. If the element value is an ElementValueArrayInitializer, then the array value represented by the ElementValueArrayInitializer is associated with the element.

그렇습니다. 너무 궁금했습니다. 알게되서 다행이다~❤️

'개발개발' 카테고리의 다른 글

yarn berry에 github package 적용하기  (0) 2023.09.22
실행컨텍스트 정리  (0) 2023.02.11
문자열 해싱  (0) 2020.08.30
선언형 프로그래밍이란 무엇일까?  (0) 2020.08.17
타입 스크립트에서 배열과 튜플  (0) 2020.03.11