개발/Java

[java] Annotation 인식

승리승리 2020. 11. 11. 00:01

#목적
   1. Annotation을 쓰는 이유

 

#내용
   1. class의 별명을 명시해준다.
      a. 사용법
         i. @Service("Login")
   2. 1번이 내가 그동안 이해하고 사용한 이유였다. 그런데 이번 글을 옮겨 적으며 찾아보니 많이 잘못 이해하고 있었다.
Annotation은 소스코드에 특정 정보를 주입해준다.
이를 통해 비즈니스 로직에는 영향을 주지 않지만 해당 타겟의 연결 방법(내가 그동안 사용한 1번 기능)이나 소스코드의 구조를 변경할 수 있다.
1번에서 사용한 기능은 Custom Annotation으로 내가 Service라는 Annotation을 정의하고 이를 통해 해당 Annotation이 붙은 class는 Service임을 알려준 것이다.
Annotation은 @Override, @Deprecated, @SuppressWarnings 등 다양한 종류가 있으며 각각에 대한 기능은 아래 링크를 참고하였다.
         i. nesoy.github.io/articles/2018-04/Java-Annotation
   
2. Annotation을 사용하면서 알아둘점
      a. Annotation은 이름을 별도로 지정하지 않으면 해당 class명의 첫글자가 소문자로 바뀌어 빈에 저장된다.
        i. https://jeong-pro.tistory.com/151
      b. Request URL은 소문자로 인식된다.
        i. 이 글을 작성할 때에 Request URL에서 전달한 Service명을 Server에서 찾지 못하는 문제가 있었다.
이에 해당 내용을 찾아보았었다. (내 문제는 Server에서 URL의 Service명 첫 글자를 대문자로 바꿔주는 소스를 뒤늦게 발견하여 발생한 문제였다.)
        ii. https://soooprmx.com/archives/1291

 

#배운점
   1. 그동안 너무 단편적으로 이해하고 사용해왔던 Annotation에 대한 이해