JAVA Spring 어노테이션1

윤슬·2025년 9월 22일

@ : 어노테이션 = 설명/방법

  1. 정의 : 자바 및 Spring에서 코드에 메타데이터를 추가하는 문법

  2. 목적 : 1. 메타데이터 제공 2. 코드 간소화 3. 가독성 향상

  3. 종류

    1. 표준 어노테이션 : 자바에서 기본적으로 제공하는 어노테이션
      • @Override : 상위 클래스로부터 메소드를 재정의할 때 사용
      • @Deprecated : 더 이상 사용하지 않는 코드라고 설명할 때 사용
      • 등등
    2. 메타 어노테이션 : 코드를 정의하거나 동작 제어할 때 사용되는 어노테이션
      1. 서블릿(자바 웹 클래스) 제공
      2. 스프링 회사 제공하는 @어노테이션
  4. 어노테이션 만들기

    1. @interface 어노테이션 { }
    2. 인터페이스 위에 다양한 @ 붙인다. 설정한다.
      • @Retention() : 어노테이션 생성 주기(유지기간)을 설정
        • @Retention(RetentionPolicy.RUNTIME) // 런타임(실행 중)까지 유지
        • @Retention(RetentionPolicy.CLASS) // .class 파일에 포함, 실행 중에는 유지 X
        • @Retention(RetentionPolicy.SOURCE) // 컴파일 이후 삭제
      • @Target() : 어노테이션 적용할 수 있는 위치(대상) 설정
        • @Target(ElementType.METHOD) : 메소드에서 사용
        • @Target(ElementType.TYPE) : 클래스, 인터페이스 등 타입에서 사용
        • @Target(ElementType.FIELD) : 멤버변수에서 사용
        • @Target(ElementType.PARAMETER) : 매개변수에서 사용
        • @Target(ElementType.CONSTRUCTOR) : 생성자에서 사용

메타데이터

  1. 정의 : 코드를 설정하는 데이터, 사용법 정의
  2. 목적 : 자바 코드에 추가적인 데이터를 주입/넣기 할 때 사용
  3. 동작 구조
    1. 컴파일(번역) : .java → .class 파일로 변환하며 바이트 코드 생성
    2. 리플렉션 : 런타임(실행 중)에 클래스를 읽어와 동적으로 객체 생성/조작
      Class.forName("com.mysql.cj.jdbc.Driver");
      // 프로그램 실행 중 MYSQL 클래스 로드 함수, new Driver();
    3. 예) 스티커/라벨/설명서/태그처럼 해당 코드를 사용하는 방법/부가 정보 부착
profile
우상향그래프

0개의 댓글