스프링에서 인터페이스란..

미해결질문
박요셉 프로필

Enviroment enviroment = ctx.getEnviroment();

ApplicationContext에서 EnviromentCapable를 상속하기 때문에 getEnviroment() 를 사용할 수 있다고 하셨는데요, 

자바에서 인터페이스를 사용하는 이유는 사용자가 인터페이스에 존재하는 불완전한 클래스를 오버라이드 해서 강제로 구현시키려는 목적이라고 배웠어요.. EnviromentCapable만 봐도 getEnviroment메소드에 아뭐것도 정의되어 있지 않잖아요! 

근데 스프링강좌에서는 인터페이스를 일반 클래스처럼 상속해서 사용하는데 이거를 스프링이 대신 구현해 주는건가요?.. 

만약 그렇다면 인터페이스가 아니라 기냥 일반 클래스를 라이브러리로 제공해 주는거랑 똑같은거 아닌가요..? 왜 굳이 인터페이스로 구현하게 한 다음 사용자가 구현하는게 아니라 스프링이 구현하게 하는거죠..? 기냥 완전한 클래스를 제공하면 되는거잖아요..

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

EnvironmentCapable은 말씀하신대로 인터페이스니까 규약만 정의했을 뿐 getEnvironment의 구현은 EnvironmentCapable 인터페이스를 구현하고 있는 ApplicationContext 구현체들이 구현하고 있죠.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스