본문 바로가기
Java/Spring

[Spring/SpringBoot] 빈(Bean) 생성하는데 사용되는 어노테이션 정리

by 리요_ 2024. 7. 31.
반응형

Spring

스프링 및 스프링 부트에서 빈을 생성하는 데 사용되는 주요 어노테이션을 간략하게 정리해보았습니다.


1. @Configuration

@Configuration 어노테이션은 Java 기반의 설정을 통해 빈(Bean) 을 정의할 때 사용됩니다.
이 어노테이션이 붙은 클래스는 하나 이상의 @Bean 메서드를 포함하고 있으며, 스프링 컨테이너에 의해 빈으로 등록됩니다.

@Configuration
public class liyoConfig {
    @Bean
    public LiyoBean liyoBean() {
        return new LiyoBean();
    }
}

2. @Bean

@Bean 어노테이션은 @Configuration 클래스 내에서 사용하여 특정 객체를 빈으로 등록할 때 사용됩니다.
메서드에 적용되어 해당 메서드가 반환하는 객체를 스프링 컨테이너의 빈으로 등록합니다.

@Bean
public LiyoService liyoService() {
    return new LiyoService();
}

3. @Controller

@Bean 어노테이션은
설명: MVC 패턴에서 컨트롤러 역할을 하는 클래스를 정의합니다.
용도: 웹 애플리케이션에서 HTTP 요청을 처리하는 클래스에 사용됩니다.
예제:
java

@Controller
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }
}

4. @RestController

@RestController 어노테이션은 JSON 또는 XML 형식으로 데이터를 반환하는 REST API를 구현할 때 사용됩니다.
@Controller@ResponseBody를 결합한 어노테이션으로, RESTful 웹 서비스의 컨트롤러를 정의합니다.

@RestController
public class LiyoRestController {
    @GetMapping("/api/data")
    public LiyoData getData() {
        return new LiyoData();
    }
}

5. @ComponentScan

@ComponentScan 어노테이션은 자동으로 빈을 등록할 패키지를 지정할 때 사용됩니다.
스프링이 특정 패키지에서 컴포넌트를 검색하도록 지시합니다.

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

6. @Scope

@Scope 어노테이션은 빈의 생명주기를 제어할 때 사용되며, 빈의 범위를 정의합니다.
기본값은 싱글톤이며, 프로토타입, 요청, 세션 등 다양한 범위를 설정할 수 있습니다.

@Component
@Scope("prototype")
public class LiyoPrototypeBean {
}

7. @Value

@Value 어노테이션은 설정 파일의 값을 빈에 주입할 때 사용됩니다.
일반적으로 프로퍼티 파일에서 값을 주입받을 때 사용됩니다.

@Component
public class LiyoComponent {
    @Value("${liyo.property}")
    private String liyoProperty;
}

이 외에도 스프링에서는 다양한 어노테이션을 제공하여 빈을 생성하고 관리할 수 있습니다. 각 어노테이션은 특정한 목적과 사용 사례에 맞게 설계되어 있어, 적절한 상황에 맞게 선택하여 사용할 수 있습니다.

반응형

'Java > Spring' 카테고리의 다른 글

[Spring/SpringBoot] application 설정 값 가져오기  (0) 2024.08.01