Feb 20, 2023
5 mins read
지금까지 직접 만들어 본 스프링 프레임워크 구조를 스프링에서 제공하는 애노테이션을 사용하여 바꿔보자.
(인프런 수업 듣는중)
스프링 MVC 구조
package hello.servlet.web.springmvc.v1;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller //스프링이 자동으로 빈에 등록 내부로 가보면 @Component도 있음 그리고 @RequestMapping의 대상으로 인식됨.
//@Component
//@RequestMapping //@Controller = @Componet @RequestMapping 두개를 같이 클래스 레벨로 선언한거랑 똑같이 동작.
public class StrpingMemberFormControllerV1 {
@RequestMapping("/springmvc/v1/members/new-form")
public ModelAndView process() {
//뷰리졸버에서 모델이름에 맞는 뷰를 찾아줌
return new ModelAndView("new-form");
}
}
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
package hello.servlet.web.springmvc.v1;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@Controller
public class SpringMemberSaveControllerV1 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@RequestMapping("/springmvc/v1/members/save")
public ModelAndView process(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 mv = new ModelAndView("save-result");
//편하게 Member오브젝트 넣어주는 메서드
mv.addObject("member", member);
return mv;
}
}
package hello.servlet.web.springmvc.v1;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import hello.servlet.web.frontcontroller.ModelView;
@Controller
public class StringMemberListControllerV1 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@RequestMapping("/springmvc/v1/members")
public ModelAndView process() {
List<Member> members = memberRepository.findAll();
ModelAndView mv = new ModelAndView("members");
mv.addObject("members", members);
return mv;
}
}
http://localhost:8080/springmvc/v1/members/new-form
http://localhost:8080/springmvc/v1/members