최대 1 분 소요


컨트롤러 통합

V1의 @RequestMapping이 클래스 단위가 아니라 메서드 단위에 적용되어 있기 때문에, 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다.

SpringMemberControllerV2

/**
 * 클래스 단위 -> 메서드 단위
 * @RequestMapping 클래스 레벨과 메서드 레벨 조합
 */
@Controller
@RequestMapping("/springmvc/v2/members")
public class SpringMemberControllerV2 {

    private MemberRepository memberRepository = MemberRepository.getInstance();

    @RequestMapping("/new-form")
    public ModelAndView newForm() {
        return new ModelAndView("new-form");
    }

    @RequestMapping("/save")
    public ModelAndView save(HttpServletRequest request, HttpServletResponse  response) {
        String username = request.getParameter("username");
        int age = Integer.parseInt(request.getParameter("age"));

        Member member = new Member(username, age);
        memberRepository.save(member);

        ModelAndView mav = new ModelAndView("save-result");
        mav.addObject("member", member);
        return mav;
    }
}

조합
컨트롤러 클래스를 통합하는 것을 넘어 조합도 가능하다.
다음과 같이 클래스 레벨에 @RequestMapping을 두면 메서드 레벨과 조합이 된다.

@Controller
@RequestMapping("/springmvc/v2/members")
public class SpringMemberControllerV2 {}

조합 결과

  • 클래스 레벨 @RequestMapping("/springmvc/v2/members") +
    • 메서드 레벨 @RequestMapping("/new-form")
      • /springmvc/v2/members/new-form


<출처 : 인프런 - 스프링 MVC 1편 : 백엔드 웹 개발 핵심 기술(김영한)>

댓글남기기