-
@Component @Autowired란?Spring/이론 정리 2023. 8. 7. 00:47반응형
@Component란?
- 개발자가 직접 작성한 Class를 @Bean으로 등록하는 것이다
- 기본값으로 싱글톤 클래스 빈을 생성하고 @Scope(“protoype") 변경이 가능하다
>> 클래스에 @Component @Scope(“protoype")로 변경
@Bean란?
- 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용된다
@Bean과 @Commponent
- @Bean과 @Commpent는 Spring(IOC) container에 Bean을 등록하도록하는 메타데이터를 기입하는 어노테이션이다 차이점은 @Commponent는 개발자가 직접 작성한 Class를 @Bean으로 등록하는 것
@Autowired
- @Component를 사용한 Bean의 의존성 주입은 @AutoWired 어노테이션을 이용하여 할 수 있다
>> @AutoWired를 이용하여 의존성을 자동으로 주입하였다
>> Toy 클래스도 @Component를 가지고 있어야 @AutoWired을 주입 할 수 있다
@Qualifier( )
>> @Component가 없으므로 @Autowired는 superEngine과 turbeEgine 값만 남게 된다
>> @Qualifier(“superEgine”) 은 @Autowired가 검색할 때 superEngine을 사용하라고 지정해준다
>> @Qualifier(“superEgine”) + @Autowired 대신 @Resource(name="superEgine") 과 같이 하나의 문장으로 사용할 수 있다
>> @Qualifier(“superEgine”) + @Autowired는 byTybe으로 찾고 @Qualifier(“superEgine”)으로 확인
>> @Resource(name="superEgine")는 byName으로 찾는
@Commponent
Class를 자동으로 Bean에 등록하라고 하기 위해서 XML파일에 따로 설정이 필요하다
config.xml (resources → config.xml 생성) <context:component-scan>
>> <context:component-scan> 태그의 등록이 필요하다
>> base-packge="스캔할 패키지 경로"
>> <context:component-scan>안에는 @AutoWired의 태그 <context:annotation-config/>도 포함되어 있어 @AutoWired도 사용할 수 있다
추가
반응형'Spring > 이론 정리' 카테고리의 다른 글
@Value와@PropertySource (0) 2023.08.07 DTO DAO VO란? (0) 2023.08.06