| 컴포넌트 ( Component )
구성요소 라는 뜻으로
컴포넌트는 독립적인 단위 모듈이다. 유저가 사용하는 시스템에 대한 조작장치를 이야기한다.
| @Component 란
개발자가 직접 작성한 Class 를 Bean 으로 만드는 것이다.
싱글톤 클래스 빈을 생성하는 어노테이션이다. 물론 @Scope를 통해 싱글톤이 아닌 방식으로도 생성이 가능하다.
이 어노테이션은 선언적(Declarative)인 어노테이션이다.
즉, 패키지 스캔 안에 이 어노테이션은 "이 클래스를 정의했으니 빈으로 등록하라" 는 뜻이 된다.
* ConponentScan : Component 어노테이션이 붙은 클래스들을 검색한다.
| @Bean 이란
개발자가 작성한 Method 를 통해 반환되는 객체를 Bean으로 만드는 것이다.
주로 @Configuration 어노테이션이 들어간 Spring 을 설정하는 클래스 내에 들어가는 메소드에서 선언한다.
@Component 로 따지면, 스프링은 스캔할 패키지를 검색해서 @Component 어노테이션을 발견하면 이렇게 등록하는 꼴이 된다.
설정 할때에 XML 으로 하는 장점이라면?
바로 넣었다 뺐다, 클래스 바꾸는 등의 유연한 설정이 가능하다는 이점이다.
그냥 XML 파일 편집하고 앱을 재시작하면 끝이다. 간단하다. 필요없는 빈은 주석처리하면 된다. XML 이나 클래스나 수정하면 앱 재시작 해야 하는건 매한가지다. 또한 스캔할 필요 없이 빈 등록이 빠르게 이루어진다.
출처:
https://galid1.tistory.com/494
https://velog.io/@composite/Spring-Component-Bean-%EC%95%8C%EA%B3%A0-%EC%93%B0%EA%B8%B0
'개발 > Spring' 카테고리의 다른 글
[Spring] Quartz 란 ( Quartz Scheduler ) (0) | 2020.07.06 |
---|---|
[Spring] 스프링 트랜잭션 ( Transaction ) - 2 (0) | 2020.07.03 |
[Spring] 스프링 트랜잭션 ( Transaction ) - 1 (0) | 2020.07.03 |
[Spring] 전자정부 프레임워크 Exception , LeaveaTrace, AOP (0) | 2020.07.03 |
[Spring] AOP, Interceptor, Filter (0) | 2020.07.03 |
댓글