[Spring] 어노테이션

김진서·2024년 5월 9일

Spring MVC

목록 보기
6/9
post-thumbnail

Spring 어노테이션은 Spring 프레임워크에서 특정 행동이나 설정을 지정하기 위해 사용하는 메타데이터 표기입니다.
Java의 어노테이션을 기반으로 동작하며, 애플리케이션 개발을 간소화하고 구조화하는 데 중요한 역할을 합니다.

다양한 Spring 어노테이션의 종류

  1. @Component:
  • Spring 컨테이너가 자동으로 인식할 수 있는 빈(Bean)으로 등록됩니다.
  • 세부적으로 분류된 다른 어노테이션들과 함께 쓰이기도 합니다 (예: @Service, @Repository, @Controller).
  1. @Controller:
  • 웹 애플리케이션에서 컨트롤러 계층을 나타내며, HTTP 요청을 처리하고 응답을 반환하는 역할을 합니다.
  • 주로 @RequestMapping 등과 같이 사용됩니다.
  1. @Service:
  • 비즈니스 로직을 담당하는 서비스 계층을 나타냅니다.
  • @Component와 유사하게 동작하며, 가독성과 유지 보수를 위해 비즈니스 로직을 이 어노테이션으로 구분합니다.
  1. @Repository:
  • 데이터 엑세스 계층을 나타내며, 데이터베이스 작업을 담당하는 빈으로 등록됩니다.
  • 예외를 변환하여 애플리케이션 코드에 보다 의미 있는 예외로 제공하는 역할을 합니다.
  1. @Configuration:
  • 자바 기반 설정 클래스를 나타냅니다. 이 클래스에는 다른 빈을 정의하는 @Bean 메서드가 포함될 수 있습니다.
  • applicationContext.xml과 같은 XML 설정을 대신할 수 있습니다.
  1. @Bean:
  • Spring 프레임워크에서 사용되는 애너테이션 중 하나로, 메서드가 Spring 컨테이너에 의해 관리되는 빈(Bean) 객체를 생성하도록 표시합니다.
  1. @Value:
  • Spring 프레임워크에서 빈의 속성 값을 설정할 때 사용합니다.
  • 주로 외부의 설정 파일(properties 파일)이나 환경 변수와 같은 외부 소스에서 값을 가져와 빈의 필드에 주입할 때 활용합니다.
  1. @Transactional:
  • Spring Framework에서 사용되는 어노테이션 중 하나로, 트랜잭션 처리를 지원하는 데 사용합니다.
  1. @Autowired:
  • 의존성 주입을 위해 사용되며, 해당 빈을 컨테이너에서 자동으로 주입합니다.
  1. @Qualifier:
  • 의존성 주입 시 특정 빈을 선택해야 하는 경우에 사용됩니다. 예를 들어, 같은 타입의 여러 빈이 존재할 때 어떤 빈을 사용할지 지정할 수 있습니다.
  1. @RequestMapping:
  • HTTP 요청 URL과 해당 요청을 처리하는 컨트롤러의 메서드를 연결합니다.
    메서드 또는 클래스 수준에서 사용할 수 있으며, HTTP 메서드(GET, POST 등)와도 결합할 수 있습니다.
  1. @RestController:
  • @Controller와 @ResponseBody의 결합으로, RESTful 웹 서비스를 만들기 위한 컨트롤러로 사용됩니다.
  • 해당 클래스가 RESTful 웹 서비스의 엔드포인트를 처리하는 컨트롤러임을 표시합니다.
  • JSON 또는 XML 형식의 응답을 반환하며, 각 메서드는 HTTP 요청 메서드에 대한 핸들러 역할을 수행합니다.
  1. @Aspect:
  • AOP(Aspect-Oriented Programming)를 위한 애노테이션입니다. 특정 메서드나 클래스에 횡단 관심사(로깅, 보안, 트랜잭션 관리 등)를 적용할 때 사용합니다.
  1. @CrossOrigin:
  • CORS (Cross-Origin Resource Sharing) 설정을 지정합니다.

15.@Id:

  • JPA에서 엔터티 클래스의 기본 키(primary key)를 지정합니다.
  1. @GeneratedValue(strategy = GenerationType.IDENTITY):
  • JPA에서 엔터티의 기본 키를 자동으로 생성하는 전략을 설정하는 부분입니다.
  1. @PrePersist:
  • JPA 엔터티에 사용되는 콜백 애노테이션 중 하나로, 엔터티가 저장되기 전에 호출되는 메서드를 지정합니다.
  1. @PreUpdate:
  • JPA 엔터티에 사용되는 콜백 애노테이션 중 하나로, 엔터티가 업데이트 되기 전에 호출되는 메서드를 지정합니다.
  1. @Entity:
  • JPA(Java Persistence API)에서 엔터티 클래스를 나타내는 어노테이션 입니다.
  1. @Builder:
  • Lombok에서 제공하는 어노테이션 중 하나로, 빌더 패턴을 자동으로 생성해주는 기능을 제공합니다.
  • 빌더 패턴은 객체 생성 과정을 편리하게 만들어주는 디자인 패턴 중 하나입니다.
  1. @Data:
  • Lombok에서 제공하는 어노테이션 중 하나로, 주로 데이터 객체(Data Object)를 생성할 때 코드를 간소화하기 위해 사용합니다.
  • 자동으로 필드에 대한 게터(Getter), 세터(Setter), toString(), equals(), hashCode() 메서드를 생성합니다.
profile
PAy IT forwaRD를 실천하는 프론트엔드 개발자. 근데 이제 백엔드를 곁들인..

0개의 댓글