• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

20.08.27 23:19 작성 조회수 101

0

Enviroment enviroment = ctx.getEnviroment();

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

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

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

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

답변 1

답변을 작성해보세요.

2

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