인프런 커뮤니티 질문&답변
안녕하세요 DI에 관해 궁금한 점이 생겨서 질문하게 되었습니다
작성
·
147
0
해당 강의를 여러번 들으며 개인적인 프로젝트를 진행하던 중 DI에 관해 궁금한 점이 생겼습니다!
아래와 같은 Bean으로 지정된 클래스가 있을 때, Something은 bean으로 등록된 class, Something2는 bean이 아닌 일반적인 class입니다. 이 때, Controller에서 myClass를 생성하려고 하는데, notBean class의 경우 bean이 아니기 때문에 아래 코드는 에러가 발생합니다. 이 문제를 해결하기 위해 setNotBean을 만들어 주입받고 생성자에는 bean만 등록하여 사용하는 것은 좋은 방법이 아닐까요? bean이 갖는 field는 꼭 bean이어야 할까요?
@Service
public class myClass{
private Something bean;
private Something2 notBean;
@Autowired
public myClass(Something bean, Something2 notBean){
this.bean = bean;
this.notBean = notBean;
}
}
답변 1
0
김영한
지식공유자
안녕하세요. 주훈님^^
Bean이 가지는 필드가 모두 Bean일 필요는 없습니다.
대신에 싱글톤으로 관리하고 주입을 받으려면 빈으로 관리되어야 합니다.
관련해서 더 자세한 기본 지식을 쌓고 싶으시면 스프링 핵심 원리 - 기본편 강의를 참고해주세요.
감사합니다.





