[기존]
@Controller
@AllArgsConstructor
public class MemberController{
MemberService service;
//@Service 어노테이션을 붙인 상태
//Ioc 주입성이 이미 되고 있음
@ResponseBody
@GetMapping("/member/login")
public RsCode login(HttpServletRequest rq, HttpServletResponse rs) {
RQ rrqq = new RQ(rq, rs);
rrqq.getCookie("hi");
//RQ는 쿠키를 set, get, remove하는 기능
}
}
@ResponseBody
@GetMapping("/member/me")
public RsCode checkMe(HttpServletRequest rq, HttpServletResponse rs) {
RQ rrqq = new RQ(rq, rs);
rrqq.getCookie("ho");
//RQ는 쿠키를 set, get, remove하는 기능
}
/** 살펴봐야할 점
*1. 매번 RQ 객체를 생성한다.
*2. 매번 parameter에 HttpServletRequest, Response를 받아야 한다.
**/
IoC를 통해 RQ를 관리 하고자 하는 이유
[리팩토링]
@Controller
@AllArgsConstructor
public class MemberController{
MemberService service;
RQ rrqq;
//RQ 클래스에 @Component 와 @RequestScope 어노테이션 붙임
//@RequestScopte를 붙이는 이유
/*
*1. RQ는 service와 다르게 생명주기가 짧음
service: 프로그램 시작~ 끝
RQ: Request ~ Response
*2. 그래서 생명주기가 Request에 달려있다고 표시
*/
@ResponseBody
@GetMapping("/member/login")
public RsCode login() {
//parameter에 HttpServletRequest, Response 없어짐
// IoC가 알아서 RQ 생성시 넣어주기 때문
//RQ 생성자도 없어짐
//IoC가 알아서 생성해주기 때문에
rrqq.getCookie("hi");
}
}
@ResponseBody
@GetMapping("/member/me")
public RsCode checkMe() {
rrqq.getCookie("ho");
}
추가