📱인프런 모바일 App 😆

어떻게 변수명으로 컨테이너에서 맞는 빈을 리턴해주는 거죠?

미해결질문
Youngjo Kim 프로필

@Bean

public String keesun() {

return "keesun";

}

이라는 함수를 선언해서 컨테이너에 등록하고 이거를 꺼내쓸 때

@Autowired

String keesun;

을 선언하셨는데요, keesun이라는 함수명을 참조해서 keesun()함수를 찾아낸 건가요? 함수이름이랑 변수이름만 참고해서 리턴이 되는 건가요?

이게 어떤식으로 변수명을 참고해서 함수를 리턴해주는 건지 궁금합니다.

백기선 프로필
백기선 8달 전

String이라틑 타입의 빈을 꺼내 쓴 겁니다. 컨테이너 안에 들어있는 빈을 꺼내올 때 @Autowired를 사용하면 꺼내오려는 빈의 타입을 보고 꺼내려고 시도하거든요.

빈을 등록할 때 사용한 함수 이름이 빈의 이름이 되고, 말씀하신대로 그 빈의 이름으로 꺼내 올 수도 있긴합니다. 하지만 여기서는 타입으로 꺼내온 것이며, keesun 대신 다른 이름을 써도 가져올 수 있을거에요.

자세한건 스프링 프레임워크 핵심 기술의 @Autowired 수업에서 다루지만 이 강좌에서 이 정도만 이해하셔도 좋을것 같습니다.

좋은 질문 감사합니다.