본문 바로가기
Spring Tutorial

[스프링MVC 31] 스프링 MVC: 컨트롤러 통합

by 미소5 2023. 8. 8.

[스프링MVC 30] 스프링 MVC 시작하기 (tistory.com)

 

[스프링MVC 30] 스프링 MVC 시작하기

스프링이 제공하는 컨트롤러는 애노테이션 기반으로 동작해서, 매우 유연하고 실용적이다. 과거에는 자바 언어에 애노테이션이 없기도 했고, 스프링도 처음부터 이런 유연한 컨트롤러를 제공

joly156.tistory.com

@RequestMapping이 클래스 단위가 아니라 메서드 단위에 적용된 것을 확인할 수 있다. 따라서 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다.

 


  • 컨트롤러를 통합한 예제 코드 
    • 컨트롤러 클래스를 통합하는 것을 넘어서 조합할 수 있다. 
      • 클래스 레벨 다음과 같이 @RequestMapping을 두면 메서드 레벨과 조합이 된다.
      • /springmvc/v2/members라는 중복코드를 제거했음을 확인할 수 있다.
@Controller
@RequestMapping("/springmvc/v2/members")    //메서드 레벨과 조합
public class SpringMemberControllerV2 {
    private MemberRepository memberRepository = MemberRepository.getInstance();


    @RequestMapping("/new-form")    //조합 결과: /springmvc/v2/members/new-form
    public ModelAndView newForm(){
        return new ModelAndView("new-form");
    }


    @RequestMapping("/save")    // /springmvc/v2/members/save
    public ModelAndView save(HttpServletRequest req, HttpServletResponse resp){
        String username = req.getParameter("username");
        int age = Integer.parseInt(req.getParameter("age"));

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

        ModelAndView mv = new ModelAndView("save-result");
        mv.addObject("member", member); //Model 데이터 추가
        return mv;
    }


    @RequestMapping     // /springmvc/v2/members
    public ModelAndView members() {
        List<Member> members = memberRepository.findAll();
        ModelAndView mv = new ModelAndView("members");
        mv.addObject("members", members);
        return mv;
    }

}

 



[스프링MVC 32] 스프링 MVC 실무 (tistory.com)

 

[스프링MVC 32] 스프링 MVC 실무

MVC 프레임워크 만들기 v3는 ModelView를 개발자가 직접 생성해서 반환했기 때문에 불편하여, v4에서 실용적으로 개선하였다. [스프링MVC 24] MVC 프레임워크 만들기: Model 추가 (*중요*) (tistory.com) [스프

joly156.tistory.com

 

728x90
반응형