웹 서버에서 클라이언트에게 데이터를 전송하는 형태는 크게
정적 컨텐츠 전달
MVC와 템플릿 엔진의 동작
API의 전달
로 나뉘어 진다.
정적 컨텐츠 전달은 사용자가 url에 /hello-static.html 이라는 것을 요청하면 단순하게 우선 스프링은 스프링 컨테이너에 같은 이름의 컨트롤러(@라는 애너테이션이 붙은 것중 @Get Mapping 의 파라미터로 같은 이름이 있는지)가 있는지 확인 하고, 없으면, resources의 static이라는 파일에 같은 이름의 데이터가 있는지 확인하고, 있으면, 그대로 반환해준다.
MVC는 model, view, controller 의 약자로, 사용자가 url에 hello-mvc 라는 걸 요청하면 스프링은 @Controller가 붙은 컨트롤러에서 구현된 클래스 중, @GetMapping 에너테이션이 붙은 메서드 중 애너테이션의 파라미터로 같은 사용자가 요청한 url이 있는지 확인한다. mapping이 되면, 바로 model의 addattribute 메서드에 의해, templates 파일에서 mapping 메서드의 반환값과 이름이 같은 templates에 구현된 html 파일을 viewResolver로 반환한다.
*오버로딩=new 매서드 이름만 같고, 매개변수가 다름.
*오버라이딩=verify 메서드의 선언부가 전부 같고, 인터페이스를 구현한 클래스는 필수적으로 인터페이스 속 추상 메서드 들을 오버라이딩 해 줘야 함. 단, return 값은 크게 중요한 것이 아님.(달라도 됨.)
'기록 > Spring framework' 카테고리의 다른 글
스프링 웹 개발 입문강의. 요약. (0) | 2021.12.14 |
---|---|
인텔리제이 테스트 코드 작성 Tip. (0) | 2021.12.14 |
빈 라이프 사이클. InitializingBean, DiposableBean. 2021-11-29 (0) | 2021.11.29 |
@Component, 컴포넌트 스캔( 자동 스프링 빈 등록). 2021-11-23 (0) | 2021.11.23 |
@Autowired의 스프링 빈 필수여부( null 값 전달.), 의존 자동주입과 수동주입의 우선순위. 2021-11-18 (2) | 2021.11.18 |