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