작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
539
답변 1
0
안녕하세요. hjemsti님, 공식 서포터즈 OMG입니다.
.
Map에 들어가는 ControllverV1객체라 하면
@WebServlet(name = "frontControllerServletV1", urlPatterns = "/front-controller/v1/*")
public class FrontControllerServletV1 extends HttpServlet {
private Map<String, ControllerV1> controllerMap = new HashMap<>();
// 생성자 시작
public FrontControllerServletV1() {
controllerMap.put("/front-controller/v1/members/new-form", new MemberFormControllerV1());
controllerMap.put("/front-controller/v1/members/save", new MemberSaveControllerV1());
controllerMap.put("/front-controller/v1/members", new MemberListControllerV1());
}
// 생성자 끝
위의 코드 중 생성자 부분을 말씀하시는걸까요?
FrontContollerServletV1이 서블릿 객체로 싱글톤으로 관리되며 따라서 객체 생성은 한번만 발생하며 재사용됩니다.
public class MemberFormControllerV1 implements ControllerV1 {
public MemberFormControllerV1() {
System.out.println("MemberFormControllerV1.MemberFormControllerV1");
}
public class MemberListControllerV1 implements ControllerV1 {
public MemberListControllerV1() {
System.out.println("MemberListControllerV1.MemberListControllerV1");
}
public class MemberSaveControllerV1 implements ControllerV1 {
public MemberSaveControllerV1() {
System.out.println("MemberSaveControllerV1.MemberSaveControllerV1");
}
다음과 같이 생성자 부분에 출력 메서드를 하나 두어 어느 시점에 호출되는지(애플리케이션 로딩 시점 or 요청마다) 확인해보시면 이해에 도움되리라 생각합니다.
그리고 아래 영한님 설명 중 서블릿 객체에 대한 내용도 참고해주세요 ^^
.
감사합니다.