강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

오주훈님의 프로필 이미지
오주훈

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 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일 필요는 없습니다.

대신에 싱글톤으로 관리하고 주입을 받으려면 빈으로 관리되어야 합니다.

관련해서 더 자세한 기본 지식을 쌓고 싶으시면 스프링 핵심 원리 - 기본편 강의를 참고해주세요.

감사합니다.

오주훈님의 프로필 이미지
오주훈

작성한 질문수

질문하기