@Autowired

Spring Container에서 타입으로 빈을 검색 참조변수에 자동 주입(DI) 검색된 빈이 n 개면, 그 중에 참조 변수+이름이 일치하는 것을 주입한다.

//Engine으로 받을 수 있는 빈이 n개 일 경우
//@Component("engine") 또는 (class engine)과 맵핑됨.
@Autowired Engine engine;

/*
주입 대상이 변수일 때, 검색된 빈이 1개 아니면 예외 발생
주입 대상이 배열일 때, 검색된 빈이 n개라도 예외 발생 X
*/

@Autowired(required = false) //주입할 빈을 찾지 못하여도 예외X.
SuperEngine superEngine;

@Resource

Spring Container에서 이름으로 빈을 검색해서 참조 변수에 자동 주입(DI) 일치하는 이름의 빈이 없으면 예외 발생

자바 9이후부터 지원 안한다고 함.

<dependency>
	<groupId>javax.annotation</groupId>
	<artifactId>javax.annotation-api</artifactId>
	<version>1.3.1</version>
</dependency>

따라서 사용하려면 pom에 추가 해줘야 함.

Untitled

class Car{
		@Resource(name = "superEngine") 
		//superEngine의 이름을 가지는 빈이 주입됨.
		
		Engine engine;
}

class Car{
	@Resource

	//engine의 이름을 가지는 빈이 주입됨.
	Engine engine;
}

//Type으로 먼저 찾고 
//superEngine과 이름이 일치하는거
class Car{
		@Auotwired
		@Qualifier("superEngine")
		Engine engine;
}

Untitled