티스토리 뷰


Spring이 내부 매커니즘으로 사용하는 캐시도 조심해서 써야 한다. Spring MVC에서 작성되는 메서드의 리턴 타입에 문자열을 반환할 수도 있고, ViewResolver를 사용하여 뷰 객체를 반환할 수도 있다.

@Controller

public Class SampleController {

@RequestMapping("/member/")

public String hello(@PathVariable int id) {

...생략

return "redirect:/returnUrl;

}

}

@Controller

public Class SampleController {

@RequestMapping("/member/")

public ModelAndView hello(@PathVariable int id) {

...생략

return new RedirectView("/returnUrl");

}

}

두 가지 컨트롤러의 차이점은 반환에 있다. 문자열 자체를 리턴하면 Spring은 해당 문자열에 해당하는 뷰 객체를 찾는 매커니즘을 사용하는데, 이때 이미 찾아본 뷰 객체를 캐싱 해두면 다음에 동일한 문자열이 반환됐을 때 빠르게 뷰 객체를 찾을 수 있다. Spring에서 제공하는 ViewResolver 중에 InternalResourceViewResolver에는 캐싱 기능이 내장되어있다.

문자열로 반환하기보다는 뷰 객체 자체를 반환하는 방법이 메모리 릭을 방지하는 데 도움이 된다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함