inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

프론트 컨트롤러 도입 - v1

Map에 들어가는 ControllerV1 객체

595

작성자 없음

작성한 질문수 0

0

는 싱글톤이 아닌 것인가요 ?

 

스프링 빈으로 저장도 안해줬고, static을 선언해서 클래스 변수도 아닌데 이럴 경우에는 호출 할 때마다

 

ControllerV1 객체가 생성되고 process를 진행되는 형식인가요 ?

spring mvc

답변 1

0

OMG

안녕하세요. 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 요청마다) 확인해보시면 이해에 도움되리라 생각합니다.

그리고 아래 영한님 설명 중 서블릿 객체에 대한 내용도 참고해주세요 ^^

https://www.inflearn.com/questions/830732/%EC%84%9C%EB%B8%94%EB%A6%BF-%EB%82%B4%EC%9E%A5%EA%B0%9D%EC%B2%B4-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4


.
감사합니다.

servlet과 container에 대한 질문입니다

0

25

1

api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?

0

64

1

jsp 의존성 수정 요청

0

80

2

요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?

0

143

1

save() 메서드 문의

0

67

1

절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상

0

101

1

request-body-json

0

83

2

MVC 패턴의 적용 단위

0

97

1

RequestMapping을 이용한 핸들러, 어댑터

0

119

2

save 후 결과화면

0

89

2

jsp를 이용한 view

0

97

1

application.properties에 debug 추가해도 결과가 똑같습니다.

0

178

1

수업 코드 제공 관련 문의

0

97

2

RequestMappingHandlerAdapter의 Controller 호출 과정

0

100

3

파일 오픈 시

0

70

1

스프링 배치 관련

0

78

1

@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부

0

112

1

postman으로 /request-body-json-v1 호출시 500 error

0

96

1

프론트엔드와 백엔드의 mvc, rest api에 대한 질문

0

79

1

모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문

0

111

1

console log 출력 관련 질문입니다.

0

75

1

애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ

0

139

1

html 변경하는 부분 적용 문제

0

103

1

한글 깨짐

0

77

2