본문 바로가기
카테고리 없음

13. 스테레오 타입 어노테이션

by leek94 2024. 9. 20.

스프링 프레임워크에서 스테레오타입 어노테이션은 빈의 역할과 목적을 명시하기 위해 사용되는 어노테이션입니다. 이러한 어노테이션은 주로 컴포넌트 스캔을 통해 자동으로 빈을 등록하는 데 사용됩니다. 주요 스테레오타입 어노테이션은 다음과 같습니다:

1. @Component

  • 설명: 일반적인 컴포넌트를 정의합니다. 다른 스테레오타입 어노테이션이 특별한 목적을 가지고 있다면, @Component는 가장 기본적인 컴포넌트로 사용됩니다.
@Component public class MyComponent { // ... }

2. @Service

  • 설명: 서비스 레이어를 정의하는 데 사용됩니다. 비즈니스 로직을 수행하는 컴포넌트를 나타냅니다.
@Service public class MyService { // ... }

3. @Repository

  • 설명: 데이터 액세스 객체(DAO)를 정의하는 데 사용됩니다. 데이터베이스와의 상호작용을 담당하는 컴포넌트를 나타냅니다. 데이터 접근 중 발생할 수 있는 예외를 데이터 접근 예외로 변환하는 기능도 제공합니다.
@Repository public class MyRepository { // ... }

4. @Controller

  • 설명: 웹 MVC에서 컨트롤러를 정의하는 데 사용됩니다. 사용자 요청을 처리하고, 적절한 응답을 반환하는 역할을 합니다.
@Controller public class MyController { // ... }

5. @RestController

  • 설명: @Controller와 @ResponseBody가 결합된 어노테이션으로, RESTful 웹 서비스의 컨트롤러를 정의하는 데 사용됩니다. 반환하는 객체가 JSON 형식으로 직렬화됩니다.
@RestController public class MyRestController { // ... }

사용 방법

스프링에서 스테레오타입 어노테이션을 사용할 때는 다음 단계를 따릅니다:

  1. 어노테이션 추가: 빈으로 등록할 클래스 위에 스테레오타입 어노테이션을 추가합니다.
  2. 컴포넌트 스캔 설정: @ComponentScan 어노테이션을 사용하여 스프링이 해당 패키지를 스캔하도록 설정합니다.
  3. 주입: 다른 컴포넌트에서 @Autowired를 사용하여 의존성 주입을 수행합니다.

예시

 
@Configuration @ComponentScan(basePackages = "com.example") 
public class AppConfig { // ... } 

@Service 
public class MyService {
	@Autowired 
    private MyRepository myRepository; 
    // ... }


@Repository 
public class MyRepository { // ... }

스테레오타입 어노테이션은 코드의 가독성을 높이고, 빈의 역할을 명확히 하여 유지 보수성을 향상시키는 데 도움을 줍니다.