thug_choonsik 춘식이 주특기: 삼촌들 용돈 뺏기

스프링 주요 어노테이션 목록

» spring

스프링 혹은 스프링 부트 주요 어노테이션 목록 정리

@SpringBootApplication

스프링 부트 애플리케이션을 실행하기 위한 기본적인 어노테이션이다. SpringApplication.run() 메서드로 애플리케이션을 실행한다. 해당 메서드의 첫 번째 인수는 애플리케이션의 메인 클래스로 사용할 클래스이며, 두 번째 인수는 커맨드 라인의 인수들이다. 이 어노테이션은 내부적으로 @SpringBootConfiguration, @ComponentScan, @EnableAutoConfiguration을 포함하고 있다. 스프링 부트 애플리케이션을 시작할 때 이 어노테이션을 포함하는 클래스를 실행하게 된다.

@SpringBootConfiguration

  • 스프링 부트 관련 설정을 나타내는 어노테이션이다. @Configuration을 상속해서 만든 어노테이션이며, 개발자가 직접 사용하는 어노테이션은 아니다.

@ComponentScan

  • 사용자가 정의한 빈을 스캔해서 등록하는 어노테이션이다. @Component라는 어노테이션을 가진 클래스들을 찾아 빈으로 등록한다.

@EnableAutoConfiguration

  • 스프링 부트의 자동 설정을 활성화하는 어노테이션이다. 서버가 실행될 때 스프링 부트의 메타 파일을 읽고 정의된 설정들을 자동으로 구성한다.


@Autowired

의존성 주입을 위해 사용된다. 스프링의 IoC 컨테이너에서 자동으로 빈을 찾아서 해당 필드나 생성자에 주입합니다.

@Component

일반적인 컴포넌트 클래스를 정의하며, 이 어노테이션(이 어노테이션을 상속한 클래스 포함)이 지정된 클래스는 스프링의 IoC 컨테이너에 빈으로 등록된다. 실제로 개발할 때에는 @Component 자체 보다는 @Component를 상속해서 만든 어노테이션들을 주로 사용한다. @Repository, @Service, @Controller, @RestController, @Configuration 등이 이에 해당한다.

@Service

서비스 계층의 컴포넌트를 정의한다. 기술적으로는 @Component와 동일하지만, 의미론적인 차이를 갖고 있어 비즈니스 로직 처리를 위한 클래스에 사용된다.

@Repository

데이터 액세스 계층의 컴포넌트를 정의한다. 데이터베이스와의 상호 작용을 처리하는 클래스에 사용된다.

@Controller

웹 애플리케이션의 컨트롤러 계층의 컴포넌트를 정의한다. HTTP 요청을 처리하는 클래스에 사용된다.

@RestController

RESTful 웹 서비스의 컨트롤러 계층을 정의한다. @Controller와 @ResponseBody를 합친 것과 동일하다.

@RequestMapping

HTTP 요청 (예: GET, POST)을 특정 메서드에 매핑하는데 사용한다. 클래스 또는 메서드 레벨에서 사용할 수 있다.

@GetMapping, @PostMapping, @PutMapping 등

요청된 HTTP 메서드(GET, POST 등)별로 자바 클래스의 메서드에 매핑하는데 사용된다. @RequestMapping의 축약 형태이다.

@Entity

JPA를 사용하여 데이터베이스 테이블과 매핑되는 클래스를 정의한다.

@Bean

빈을 직접 생성하고 설정하기 위한 어노테이션이다. 개발자가 직접 제어가 불가능한 외부 라이브러리나 인스턴스 생성 방법을 변경하고 싶은 경우에 사용하는 어노테이션이다. 메서드에 붙여서 해당 메서드가 반환하는 객체를 빈으로 등록한다.