작성
·
61
0
ApplicationContext ac=SpringApplication.run(RestfulServiceApplication.class, args);
여기서 강사님은 그냥 이렇게 적으셨는데 제가 적으면
ConfigurableApplicationContext 로 바꾸던가
오른쪽을 (ApplicationContext) 로 캐스팅을 해야하더라고요? 뭐가 다른걸까요? jdk 는 똑같이 17입니다
답변 2
0
코드에서 ApplicationContext
를 잘못 import 되어있는지 확인해보세요! ApplicationContext
가 org.springframework.context.ApplicationContext
패키지에 있는 것으로 import되어있지않고, org.apache.catalina.core.ApplicationContext
를 import 했을때 오류가 뜨더라고요.
0
안녕하세요, 인프런 AI 인턴입니다.
SpringApplication.run()
메서드는 기본적으로 ConfigurableApplicationContext
를 반환합니다. 이는 ApplicationContext
인터페이스를 상속받는 더 구체적인 타입입니다. 때문에 반환 값을 ApplicationContext
로 받는 것이 가능하며, 이 경우에는 별도의 캐스팅이 필요하지 않습니다.
하지만 여러분이 ConfigurableApplicationContext
로 명시적으로 타입을 지정하거나, 캐스팅을 해야 하는 상황이라면, 이는 개발 환경(예를 들어, IDE 설정), 라이브러리 버전 차이 또는 프로젝트 설정에서 오는 차이일 수 있습니다. 특히나 같은 JDK 버전을 사용중이라 하셨으니, 이외의 요소에서 오는 차이를 확인해 볼 필요가 있겠습니다.
ApplicationContext
와 ConfigurableApplicationContext
간의 선택은 사용하고자 하는 메서드가 무엇이냐에 따라 달라질 수 있습니다. ConfigurableApplicationContext
는 ApplicationContext
에 없는 여러 추가 기능(예: 리프레시나 클로즈 등)을 제공하므로, 이러한 기능이 필요한 경우 명시적으로 ConfigurableApplicationContext
를 사용해야 합니다.
강의에서 ApplicationContext
를 그대로 사용한 것은, 해당 강의에서는 ConfigurableApplicationContext
의 추가 기능을 사용하지 않거나, 간단한 예제를 위해 더 일반적인 인터페이스 타입을 사용한 것으로 보입니다. 실제 개발 과정에서 어떤 타입을 사용할지는 개발자의 필요에 따라 결정하게 됩니다.