홀리데이즈
1k
2019-03-16 01:07:21
2
174

spring 스트럿츠에 대해 질문이 있습니다.


안녕하세요. 이번에 새로 이직을 하게 되었습니다.


새로운 회사에서는 스트럿츠를 사용하는데요.


구조가 신기해서 여기에 물어보게 되었네요.


struts-context.xml

에서 url path와 Action class, 그리고 호출할 함수를 매핑시켜주는 기능이 있고


XXXAction.java 가 함수를 호출하는 것 까지는 이해했습니다

다만 함수를 보면


XXXAction.java

...

public ActionForward findAllEmps(ActionForm form, ServletRequest req....) {

   Employee emp = (Employee)form;

  ...

  return forward;

}


이렇게 ActionForm 상속하고 프로젝트에서 정의된 Employee 클래스로 ActionForm 클래스가 캐스팅을 해주더군요.


그러면 어디선가

ActionForm form = new Employee();

action.findAllEmps(form, ...);

가 처리되겠구나 라는 생각이 들어서

어디선가 요청 전처리를 해주는 곳이 있겠거니 생각하고 찾아보았지만 찾지를 못했습니다.


설정파일(properties, xml 등)에서

ActionForm 을 상속한 Employee의 package값을 전달해주는 곳도 찾지 못했구요.


그러면 어떻게 스프링 프레임워크가 개발자가 정의한 Employee 클래스를 인식하고 해당 객체를 만들어서 Action 함수에 전달해준걸까요?





0
0
  • 답변 2

  • 아로마
    780
    2019-03-16 03:16:07


    의존성 주입을 (DI) 을 통한 객체간의 자동 주입 됩니다.

    스프링 프레임워크의 큰 특징 중 하나입니다.

    객체를 직접 생성하거나, 제어하는 것이라 스프링 프레임워크에서 처리해 주는 것이죠.


    책 한번 보셔야 될 것 같습니다.

    1
  • devlara
    75
    2019-03-16 08:05:48 작성 2019-03-16 08:09:13 수정됨
    저분이 궁금해하는건 
    Dependency Injection이 아니라

    어떻게 스프링 컨테이너가 개발자가 정의한 Employee 객체를 알아내서 객체를 생성했는지 궁금해 하는것 같은데요 ?
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.