Day83 - [Spring]의존객체 자동주입(어노테이션)

2021. 6. 14. 23:35Spring

이번에는, Spring 의 의존객체 자동주입 에 대해서 알아 봅시다.

 

의존객체 자동주입

의존객체 자동주입 이란, <bean> 에서 class 안에 다른 클래스가 들어갈 때, <constructor-arg> 또는 <property> 를 사용해서 객체를 주입하지 않고도, 자동으로 객체를 넣어주는 것을 말합니다.

 

어노테이션 을 이용합니다.

 

어노테이션을 사용하기 위해서는 .xml 파일에 추가 해줘야 할 코드가 있습니다.

.xml 파일에 위의 빨간색 박스에 있는 코드를 추가 한 후에, 의존객체 주입이 필요한 곳에 아래의 어노테이션 기법을 사용합니다.

 

@Autowired() : 같은 타입 자동 주입

@Qualifier("id") : .xml 파일에서 지정한 bean 객체 id 와 동일한 것을 주입함

@Resource(name="id") : id 를 찾아서 동일한 것을 주입함. 없다면 같은 타입 자동 주입

@Autowired() 는, 멤버변수, 생성자, setter메서드 어디에든 사용할 수 있습니다.

@Autowired(required = flase) 는, 같은 타입의 <bean> 객체가 2개 이상 있을 경우 어떠한 객체를 주입 해야할지 모르게 되면서, 에러를 발생시키는데 required = false 를 사용함으로써, 에러를 건너 뜁니다. ( 자동주입 x )

 

@Qualifier : 멤버변수, setter메서드 에 사용할 수 있습니다. ( id 로 비교해서 반 강제 연결 )

 

@Resource(name="id") : 자바 1.8 버전 밑에서만 작동하는 어노테이션 기법입니다. 멤버변수, setter 메서드 에 사용할 수 있습니다.

 

어노테이션 기법으로 이용한 의존객체 자동주입 방법은 일반적으로 매개변수에 사용하는 것이 약속 입니다.

 

예제. 아래처럼 Computer 클래스가 있을 때, 어노테이션을 이용해서 자동 주입 하시오.

먼저, .xml 파일에서 Mouse, Keyboard, Monitor, Computer 객체를 만들어 줍니다.

Computer 클래스에서, 어떤 어노테이션을 사용해도 상관은 없지만, 하나씩 써봅니다.