Step8. 어노테이션

이신욱·2023년 8월 11일
0

Spring

목록 보기
8/11
post-thumbnail

1. 어노테이션이란?


이전에 Step3. 인터페이스에서 어노테이션에 대해서 설명할 때
"코드 실행시 컴파일러에게 특별한 정보를 전달하는데 사용된다"라고 설명했었다.

스프링에서 어노테이션은 주로 클래스, 메서드, 필드 등의 요소에 부가적인 정보를 제공하고, 작업을 지시하거나 DI, AOP(Aspect-Oriented Programming)등의 기능을 지원하기 위해 사용된다.

스프링에서는 다양한 어노테이션을 제공하며, lombok라이브러리를 사용하여 어노테이션을 통해 컴파일 시점에 자동으로 코드를 생성할 수도 있다.(ex. 모든 필드의 getter를 작성하기보다 @getter를 사용하여 컴파일 시점에 자동으로 코드를 생성하도록 함)

이 어노테이션들 중에서 많이 쓰이는 어노테이션들에 대해서 간단하게 알아보자.

2. 어노테이션의 종류


1. @Autowired

DI를 구현하기 위한 핵심적인 어노테이션이다.
Bean을 자동으로 주입한다.

2. @Component, @Service, @Repository, @Controller

Bean으로 등록되는 클래스의 종류를 나타낸다.
@Component는 알반적인 Bean, @Service는 비즈니스 로직을 처리하는 Bean
@Repository는 데이터 엑세스 처리를 위한 Bean, @Controller는 웹 요청을 처리하는 클래스 Bean을 나타낸다.

3. @RequestMapping

특정 uri로 웹 요청을 보냈을 때 Controller에서 어떠한 방식으로 처리할지 정의를 한다.
이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용되는 어노테이션이다.

4. @GetMapping

HTTP GET 요청을 처리하는 메서드에 적용된다.
이 어노테이션은 특정 URL 경로에 대한 GET 요청을 처리하는 메서드를 지정하는데 사용된다.

5. @PostMapping

HTTP POST 요청을 처리하는 메서드에 적용된다.
이 어노테이션은 특정 URL 경로에 대한 POST 요청을 처리하는 메서드를 지정하는데 사용된다.

6.@Override

해당 메서드가 부모 클래스(혹은 인터페이스)에서 정의된 메서드를 Override되었다는것을 나타낸다.

7. @Bean

Bean을 정의하는 메서드에 사용되며, 해당 메서드가 반환하는 객체를 스프링 컨테이너에 Bean으로 등록한다.

8. @Configuration

해당 클래스가 스프링 설정파일임을 나타내거나 Bean을 등록하기 위한 어노테이션이다.
1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration을 명시해야 한다.

9. @RequestParam

Get 방식의 웹 요청에서 파라미터를 메서드 배개변수에 바인딩하기 위해 사용되는 어노테이션이다.
웹 요청이 발생할 때, 클라이언트가 전달하는 쿼리의 파라미터 같은 정보를 Controller 메서드의 매개변수로 받을 때 사용된다.

10. @Transactional

트랜잭션 처리를 위해 사용되며, 메서드나 클래스에 트랜잭션을 적용한다.

11. @Scpoe

Bean의 스코프를 지정한다.
기본값은 Singleton이며, Prototype, Request 등의 다양한 스코프를 사용할 수 있다.

profile
1인분 하는 개발자 되기

0개의 댓글