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

송재학님의 프로필 이미지
송재학

작성한 질문수

토비의 스프링 부트 - 이해와 원리

스프링 컨테이너로 통합

THIS!

해결된 질문

작성

·

450

1

안녕하세요, 자바 기본 적인 질문 한가지만 드릴게요...!

 

public class HellobootApplication {

public static void main(String[] args) {

GenericWebApplicationContext applicationContext = new GenericWebApplicationContext() {

@Override

protected void onRefresh() {

super.onRefresh();

ServletWebServerFactory serverFactory = new TomcatServletWebServerFactory();

WebServer webServer = serverFactory.getWebServer(servletContext -> {

servletContext.addServlet("dispatcherServlet",

new DispatcherServlet(this))

.addMapping("/*");

});

webServer.start();

}

};

applicationContext.registerBean(HelloController.class);

applicationContext.registerBean(SimpleHelloService.class);

applicationContext.refresh();

}

}

 

여기서 this는 HellobootApplication class가 아닌, applicationContext 를 지칭 하는게 맞을까요..?

매번 this가 조금씩 헷갈리네요 ,,,,

이상한 질문 죄송합니다....!

답변 1

1

토비님의 프로필 이미지
토비
지식공유자

익명 클래스 내부에서 쓰는 this는 익명 클래스에 의해서 만들어지는 오브젝트를 가리킵니다.
따라서 위 코드에서 this는 다음 익명 클래스 내부에서 사용되므로 GenericWebApplicationContext 타입의 오브젝트가 됩니다.

new GenericWebApplicationContext() {
}

송재학님의 프로필 이미지
송재학

작성한 질문수

질문하기