티스토리 뷰
컨트롤러 객체 없이 뷰에 요청 전달하기
웹 애플리케이션에서 요청이 오면 그에 해당하는 컨트롤러 객체가 필요하다. 하지만 단순 페이지만 사용자에게 보여주기 위해서는 굳이 컨트롤러 객체가 필요하지 않을 수 있다. 아래 예제를 통해 알아보았다.
예제
WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 요청 url: /
registry.addViewController("/").setViewName("home");
// 요청 url: /no-view, 요청 페이지 없음
registry.addViewController("/no-view").setViewName("noView");
// 요청 url: /view, 페이지 경로: view/view
registry.addViewController("/view").setViewName("view/view");
// 요청 url: /view, 페이지 경로: view/view2, 요청 url 중복일 때
registry.addViewController("/view").setViewName("view/view2");
}
}
위의 코드를 보면 WebConfig 클래스가 WebMvcConfiguer를 상속받았고 addViewControllers 메서드를 구현하였다. 그리고 해당 메서드의 내부를 보면 요청 url과 url에 대한 페이지를 적용할 수 있다.
페이지 경로

실행 결과
1. 정상 출력

2. 요청 url에 대한 페이지가 없을 때

3. 요청 url이 중복시 마지막에 적용한 페이지가 호출

정리
단순 페이지를 호출할 경우 불필요한 컨트롤러 객체가 생길 수 있다. 하지만 위와 같이 WebMvcConfiguer를 구현한 객체를 통해 메서드를 구현하면 객체 없이 요청에 대한 페이지를 적용할 수 있다. 하지만 같은 url를 등록할 경우 마지막에 적용한 페이지가 호출된다.
'Java > Spring' 카테고리의 다른 글
| <Spring> 프로토타입 빈과 싱글톤 빈을 함께 사용시 문제점 (0) | 2024.09.02 |
|---|---|
| <Spring> 의존 관계 주입 방법 (0) | 2024.08.27 |
| <Spring> 스프링 초기화 시점에서의 트랜잭션 적용 (0) | 2024.08.09 |
| <Spring> 트랜잭션 프록시 내부 호출시 문제점 (0) | 2024.07.29 |
| <Spring> @SessionAttribute 이란? (0) | 2024.07.25 |
댓글
