SSAFY11th-book-study / book-study

SSAFY 11기 6반의 '토비의 스프링 스터디'
0 stars 0 forks source link

[1.5.2] 애플리케이션 컨텍스트의 장점 #7

Open a-young-kim opened 8 months ago

a-young-kim commented 8 months ago

애플리케이션 컨텍스트와 오브젝트 팩토리를 비교하면서 애플리케이션의 장점을 설명하는 부분 중에서 1번 장점이 잘 이해가 안 가서 질문드립니다.

애플리케이션 컨텍스트를 사용하면 클라이언트는 구체적인 팩토리 클래스를 알 필요가 없다는 부분입니다.

두 코드의 UserDaoTest를 살펴보면

// 오브젝트 팩토리 사용
UserDao dao = new DaoFactory().userDao();
UserDao userDao = factory.userDao();
// 애플리케이션 팩토리 컨텍스트 사용 
 ApplicationContext context = new AnnotationConfigApplicationContext(DaoFactory.class);
 UserDao userDao = context.getBean("userDao", UserDao.class);

식으로 사용되는데 두 코드 모두 DaoFactory라는 클래스면, userDao라는 함수명과 클래스 명을 가지고 있는데 애플리케이션 컨텍스트가 어떤 면에서 구체적인 클래스를 알 필요가 없다는지가 궁금합니다.

gmelon commented 8 months ago

저는 설정 클래스를 명시해서 애플리케이션 컨텍스트를 사용하는 경우가 아닌, 컴포넌트 스캔을 통해 특정 패키지 하위의 모든 설정 파일을 읽어오도록 해서 사용하는 경우를 고려해서 말하는 장점이라고 이해했었습니다.

그럴 경우 원하는 빈 타입을 생성하는 구체 팩토리 클래스를 알지 않아도 괜찮으니까요!