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

초보개발자님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

다양한 설정 형식 지원 - 자바 코드, XML

Context 객체 생성 시 받을 타입 지정

작성

·

64

0

AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

이전 강의에선 자기 자신의 타입으로 받게 설정을 했는데

xml 설정 형식에선 부모타입인 ApplicationContext 으로 받으신 이유가 있을까요...?

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 초보개발자님

다음 내용을 참고해보시면 도움이 되실거에요 🙂

https://www.inflearn.com/questions/47449

감사합니다.

영한님 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.

코드 예시에서 AnnotationConfigApplicationContext를 사용하는 것과 XML 설정을 사용할 때 ApplicationContext로 받는 것 사이에는 일반적으로 다음과 같은 이유가 있습니다.

AnnotationConfigApplicationContext는 자바 기반의 설정을 사용할 때 사용되는 구체적인 ApplicationContext의 구현체입니다. 이는 주로 애노테이션 기반의 설정을 로드하는 데 사용됩니다.

반면에, XML 설정을 사용할 때는 ApplicationContext 인터페이스 타입으로 받는 이유는 구체적인 구현체에 의존하지 않기 위해서입니다. ApplicationContext는 여러 구현체 (AnnotationConfigApplicationContext, XmlWebApplicationContext, GenericApplicationContext 등)의 공통 기능을 정의하는 인터페이스입니다. 따라서, XML 설정이나 다른 형태의 설정을 사용할 때, 상위 타입인 ApplicationContext로 받음으로써 코드의 유연성을 증가시키고 구현체 변경에 따른 영향을 최소화할 수 있습니다.

실제 개발 과정에서는 구체적인 구현보다는 인터페이스에 의존하는 것이 좋은 설계 원칙 중 하나입니다. 이를 통해 코드의 유연성과 확장성을 높이고, 변경 사항에 좀 더 용이하게 대응할 수 있습니다. 따라서, XML 설정 형식을 사용할 때 부모 타입인 ApplicationContext로 받는 것은 이런 설계 원칙에 부합하는 것으로 볼 수 있습니다.