Annotation
Annotationμ΄λ μ£Όμμ΄λ λ»μΌλ‘, μΈν°νμ΄μ€λ₯Ό κΈ°λ°μΌλ‘ ν λ¬Έλ²μ΄λ€. μ£Όμκ³Όλ κ·Έ μν μ΄ λ€λ₯΄μ§λ§ μ£Όμμ²λΌ μ½λμ λ¬μ ν΄λμ€μ νΉλ³ν μλ―Έλ₯Ό λΆμ¬νκ±°λ κΈ°λ₯μ μ£Όμ ν μ μλ€. λ ν΄μλλ μμ μ μ ν μλ μλ€.(Rentention Policy) Annotationμλ ν¬κ² μΈ κ°μ§ μ’ λ₯κ° μ‘΄μ¬νλ€. JDK μ λ΄μ₯λμ΄ μλ built-in annotationκ³Ό annotationμ λν μ 보λ₯Ό λνλ΄κΈ° μν annotationμΈ Meta-annotation κ·Έλ¦¬κ³ κ°λ°μκ° μ§μ λ§λ€μ΄ λ΄λ Custom Annotationμ΄ μλ€.
Annotationsμ metadataλ₯Ό ꡬ문과 μ°κ²°νλ ν΄λμ€ , λ©μλ λλ νλμ κ°μ Java ꡬ문μ μ μ©λλ λ°μ½λ μ΄ν°μ λλ€. μ΄λ¬ν λ°μ½λ μ΄ν°λ μμ±μ΄λ©° μ체μ μΌλ‘ μ΄λ€ μ½λλ μ€ννμ§ μμ§λ§ λ°νμ νλ μμν¬ λλ μ»΄νμΌλ¬μμ νΉμ μμ μ μννλ λ° μ¬μ©ν μ μμ΅λλ€. μ’ λ 곡μμ μΌλ‘ λ§νλ©΄ Java μΈμ΄ μ¬μ(JlS), μΉμ 9.7μμ λ€μκ΄ κ°μ μ μλ₯Ό μ 곡ν©λλ€.
An anotation is a marker which associates information with a program construct, but has no effect at run time
Built-in Annotation
@Override
λ©μλκ° μμλ λ©μλμ λμμ μ¬μ μνκ±°λ λ체ν¨μ λνλ΄λ λ° μ¬μ©λ©λλ€.
@FunctionalInterface
μΈν°νμ΄μ€μ νλμ λ©μλλ₯Ό λνλ΄λ λ° μ¬μ©λ©λλ€.
@SuppressWarnings
μ½λμ μΌλΆμμ νΉμ κ²½κ³ λ₯Ό 무μνκ³ μΆλ€λ κ²μ λνλ λλ€.
@SafeVarargs
varargs μ¬μ©κ³Ό κ΄λ ¨λ κ²½κ³ μ νμ μ μ©λ©λλ€.
@Deprecated
APIλ₯Ό λ μ΄μ μ¬μ©νμ§ μλλ‘ νμν μ μμ΅λλ€.
Meta-Annotations
@Target
μ μ©ν μ μλ λμμ μ€λͺ ν©λλ€.
@Retention
μ»΄νμΌλ¬μ μν΄ μ μ§λμ΄μΌ νλ κΈ°κ°μ μ€λͺ ν©λλ€.
RetentionPolicy.SOURCE β μ»΄νμΌλ¬μ λ°νμ λͺ¨λμμ λ³Ό μ μμ΅λλ€.
RetentionPolicy.CLASS β μ»΄νμΌλ¬μμ λ³Ό μ μμ
RetentionPolicy.RUNTIME β μ»΄νμΌλ¬μ λ°νμμμ λ³Ό μ μμ΅λλ€.
@Inherited
μμ μ νμ μ μ©λλ κ²½μ° νμ μ νμ μν΄ μμλμ΄μΌ ν¨μ λνλ λλ€.
@Documented
κΈ°λ³Έμ μΌλ‘ Javaλ Javadocsμμ @Annotation μ¬μ©μ λ¬Έμννμ§ μμ΅λλ€.
κ·Έλ¬λ @Documented μ£Όμμ μ¬μ©νμ¬ Javaμ κΈ°λ³Έ λμμ λ³κ²½ν μ μμ΅λλ€.
@Repeatable
λμΌν 컨ν μ€νΈμμ μ¬λ¬ λ² μ μ©ν μ μμ λνλ λλ€. μ¦ ν΄λμ€λ λμΌν μ£Όμμ λ λ² μ΄μ μ μ©ν μ μμ΅λλ€.
λλ§μ μ΄λ
Έν
μ΄μ
λ§λ€κΈ° (@Component
)
@Component
)Reference
Last updated
Was this helpful?