SpringBoot 한눈에 보기 : 애너테이션 총정리

Eojin·2023년 6월 20일
0

작성일
2023.07.03


➡️ Spring Boot 실행 클래스 관련 애너테이션


@SpringBootApplication

: 스프링 부트 사용에 필요한 기본 설정을 하며, 아래와 같은 애너테이션들을 포함하는 애너테이션이다.


@SpringBootConfiguration
: 스프링 부트 관련 설정을 나타내는 애너테이션으로, 스프링 부트 개발자가 직접 다룰 일은 없다고 해도 무방하다고 한다.


@ComponentScan
: 사용자가 등록한 빈을 읽고 등록하는 애너테이션으로, @Component라는 애너테이션을 가진 클래스들을 찾아 빈으로 등록해준다.


@EnableAutoConfiguration
: 스프링 부트 서버가 실행될 때 메타 파일을 읽고 정의된 설정들을 자동으로 구성해주는 역할을 한다. 즉, spring.factories 파일 클래스들이 이 애너테이션에 의해 설정되는 것이다.


`@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class)`

➡️ 의존성 주입 관련 애너테이션


@Autowired : 타입에 맞는 Bean을 주입해주는 애너테이션



➡️ 컨트롤러 관련 애너테이션

@RestController

= @Controller + @ResponseBody
: 라우터 역할을 하는 애너테이션으로, 클라이언트의 요청에 맞는 메서드를 실행할 수 있게 하는 즉, 매핑할 수 있게하는 애너테이션이다.

CF. 라우터 : HTTP 요청과 메서드를 연결하는 장치


@Controller

= @Component + @Target(ElementType.TYPE) + · · ·
: @Component 즉, 해당 클래스를 빈으로 등록해주는 애너테이션이 걸려있기 때문에 @Controller 애너테이션만 붙여주면 되는 것이다.



➡️ 테스트 코드 관련 애너테이션


@DisplayName("더하기 테스트")

: 테스트 이름

@Test

: 테스트 방식을 구분할 수 있는 애너테이션으로, 메서드를 호출할 때마다 새 인스턴스를 생상하여 독립 테스트가 가능하다.

✅ 실행방식을 정해주는 애너테이션

@BeforeAll
: 전체 테스트를 시작하기 전에 한번 실행하라는 의미로, 메서드이 static으로 선언되어 있어야 한다.


@BeforeEach
: 테스트 케이스를 시작하기 전마다 실행하라는 의미


@AfterAll
: 전체 테스트를 마치고 종료하기 전에 한번 실행하므로, 메서드이 static으로 선언되어 있어야 한다.


@AfterEach
: 테스트 케이스를 종료하기 전마다 실행하라는 의미



➡️ 빈(Bean) 등록 관련 애너테이션

클래스 용도에 따라 다른 애너테이션을 사용하기는 하지만, 사실 내부 코드를 보면 @Component 애네터이션이 모두 달려 있다.


✅ @Component

클래스를 빈으로 등록하기만 해주면 될 때 사용하는 애너테이션

✅ @Configuration

클래스를 설정 파일을 등록하면서 빈으로 등록해줄 때 사용하는 애너테이션

✅ @Repository

클래스를 ORM 매핑을 하면서 빈으로 등록해줄 때 사용하는 애너테이션

✅ @Controlelr와 @RestController

클래스를 라우터로 만들어주면서 빈으로 등록해줄 때 사용하는 애너테이션이다.

예를 들어 아래와 같은 코드가 있다고 가졍해보자.

@GetMapping("/test")
public String test() {
return "Hello, world!";
}
/test라는 GET 요청이 왔을 때

✅ @Service

클래스가 비즈니스 로직을 담당하게 하면서 빈으로 등록시킬 때 사용하는 애너테이션



profile
'함께'가 즐거운 개발 공부하는 사람입니다.

0개의 댓글

관련 채용 정보