본문 바로가기
Spring|Spring-boot

[Spring] @Component

by oncerun 2020. 6. 22.
반응형

 

 

@Bean과 @ Comopnent  어노테이션 둘 다 IoC Container에 Bean을 등록하도록 하는 메타 데이터를 기입하는 어노테이션입니다. 왜 두 개가 존재할까요  그 이유는 둘의 용도 차이입니다.

 

@ Bean 인경우 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만들려할경우 사용됩니다.

 

만약 ArrayList와 같은 라이브러리 등을  Bean으로 등록하기 위해서는  해당 객체를 반환하는 메서드를 만들고 @Bean 어니 테이션을 붙어주어야 합니다.  Bean id는 메서드의 이름을 카멜 케이스로 변경한 것이 id가 됩니다.

만약 name을 준다면 @Bean(name='name') 원하는 이름으로 빈을 등록할 수 있습니다.

 

 

@Component 어노테이션은 개발자가 직접 작성한 Class를 Bean으로 등록하기위한 어노테이션입니다.

@Component어노테이션 역시 value값으로 이름을 지정할 수 있으며 등록하지 않은 경우 class의 이름을 카멜 케이스로 변경한 것이 bean id로 사용됩니다.

 

@Component를 사용한 Bean의 의존성 주입은 @AutoWired 어노테이션을 이용한다.

 

@Component
public class Exam {

	@Value("20")
    private int math;
    
    private int kor;
}

또한 value어노테이션은 기본값을 설정할 수 있도록 도와준다.

 

 

@Component는 MVC방식으로 웹어플리케이션을 만들 경우 구성하고 있는 자바 코드에 대해 @Component라고 말한다.

우리는 좀더 의미론적으로  3단계로 나누어 볼 수 있습니다.

 


@Controller

@Service

@Repository

 

따라서 @Component 를 사용하는 것보다 3가지를 사용하게 되면 객체화하고자 하는 클래스가 어떠한 역할을 하는지 명시화 할 수 있기에 @Controller @Service @Repository 를 사용하는 것이 바람직합니다.

 

 

 

 

반응형

'Spring|Spring-boot' 카테고리의 다른 글

[Spring] 단순 연결을 위한 컨트롤러 처리  (0) 2020.06.23
[Spring] Java Configuration  (0) 2020.06.22
[Spring] @Autowired , @Qualifier  (0) 2020.06.18
[Spring] Annotaion  (0) 2020.06.18
[Spring] 생성자 DI  (0) 2020.06.17

댓글