반응형
@Component
개발자가 직접 작성한 class 전체를 Spring Bean 으로 등록
하위로 @Controller, @Service, @Repository 어노테이션이 있다
@Component
public class MyComponent {
// 클래스 내용
}
@Configuration
스프링에게 해당 클래스가 Bean 구성 Class 임을 알리는 어노테이션이다
즉, Bean 등록용 class로 사용할 수 있고 일반 메소드 또한 만들수있지만 주로 Bean 을 보조하는 역할을 한다
@Bean
외부 라이브러리 등 반환되는 객체를 Bean 으로 등록한다
쉽게말하면 @Bean 어노테이션을 사용하면 new ~ 로 생성해서 import 하지않아도 된다
스프링 간 객체가 의존관계를 관리하도록 하는 것에 가장 큰 목적이다
new 로 생성하면 생성자를 그득그득 붙여서 변경가능성이 있는데, Bean 을 사용하면 변경이 안되겠지
@Configuration //여기는 @Bean 등록 전용 class!
public class TestConfig {
@Bean
public MyBean myBean() {
return new MyBean();
}
@Bean(name="myMethod")
public MyBean myBean() {
return new MyBean();
}
// @Bean 어노테이션이 없는 메소드
public SomeConfiguration someConfiguration() {
// 구성 정보 반환
return new SomeConfiguration();
}
}
728x90
'BackEnd > JAVA' 카테고리의 다른 글
Spring boot Multi module Project (2) - 프로젝트 실행 (1) | 2024.01.22 |
---|---|
Spring boot Multi module Project (1) - 스프링 멀티모듈 프로젝트 생성 (0) | 2024.01.22 |
@RequestParam, @RequestBody, @ResponseBody (0) | 2024.01.01 |
@Controller, @RestController (0) | 2023.12.31 |
@MappedSuperClass @inherited @Embadded 상속정리 (0) | 2023.02.11 |