오봉이와 함께하는 개발 블로그
스프링 MVC 1 - 스프링 MVC 컨트롤러 통합 본문
728x90
스프링 MVC - 컨트롤러 통합
@RequestMapping 을 잘 보면 클래스 단위가 아니라 메서드 단위에 적용된 것을 확인할 수 있다.
따라서 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다.
SpringMemberControllerV2
@Controller
@RequestMapping("/springmvc/v2/members")// @RequestMapping 클래스 레벨과 메서드 레벨 조합
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);
System.out.println("member = " + member);
memberRepository.save(member);
ModelAndView mv = new ModelAndView("save-result");
mv.addObject("member", member);
return mv;
}
@RequestMapping
public ModelAndView members() {
List<Member> members = memberRepository.findAll();
ModelAndView mv = new ModelAndView("members");
mv.addObject("members", members);
return mv;
}
}
조합
위 코드는 /springmvc/v2/members
에 중복이 발생했기 때문에 조합을 했다.
- @RequestMapping("/springmvc/v2/members/new-form")
- @RequestMapping("/springmvc/v2/members")
- @RequestMapping("/springmvc/v2/members/save")
이렇게 사용해도 괜찮지만 코드에 중복이 발생하기 때문에 중복을 제거하는 것이 작성하기 편리하다.
- 클래스 레벨 @RequestMapping("/springmvc/v2/members")
- 메서드 레벨 @RequestMapping("/new-form") -> /springmvc/v2/members/new-form
- 메서드 레벨 @RequestMapping("/save") -> /springmvc/v2/members/save
- 메서드 레벨 @RequestMapping -> /springmvc/v2/members
출처 : 인프런 김영한 지식 공유자님 강의 - 스프링 MVC 1편 백엔드 웹 개발 핵심 기술
728x90
'BE > Spring' 카테고리의 다른 글
스프링 MVC 1 - 프로젝트 생성 (0) | 2022.08.13 |
---|---|
스프링 MVC 1 - 스프링 MVC 실용적인 방식 (0) | 2022.08.12 |
스프링 MVC 1 - 스프링 MVC 시작하기 (0) | 2022.08.12 |
스프링 MVC 1 - 뷰 리졸버 (0) | 2022.08.12 |
스프링 MVC 1 - 핸들러 매핑과 핸들러 어댑터 (0) | 2022.08.12 |
Comments