본문 바로가기
프로그래밍 언어/Java

Java) 10/09 - IOC (제어의 역전)

by nomfang 2021. 11. 9.
728x90
반응형

IOC - Inversion Of Control

J2SE 스펙에서는
main() 메소드가 존재하여
개발자에게 객채 생성, 메소드 호출 권한이 있다

J2EE 스펙 (웹 서버) 에서는
객체 생성 및 life cycle 메소드 호출을 WAS가 자동으로 호출

Ready-On State

클라이언트 요청 이전의 모든 상태는 Ready-On 상태
-> 생성자, init()

  1. D.D 파일을 읽어들인다 (@WenServlet('IS'))
  2. 객체 생성 -> 생성자 호출
  3. 클라이언트 요청 정보를 바탕으로 req, res 객체 생성
  4. 요청 처리를 위해 doGet(req, res) 호출
  5. doGet() 워커 실행
  6. req, res, thread(메소드 하나가 쓰레드로 구동 됨) Death

WEB-INF

WEB-INF
상위엔 정적인 문서
하위엔 동적인 문서

Life Cycle Method (Callback Method)

  • init()
  • service()
  • destroy()

제어의 역전이 일어나서 객체 생성 및 메소드 호출은 개발자가 하지 않지만
개발자는 WAS의 객체 생성과 메소드 호출에 관한 주문서를 작성한다
개발자는 호출될 객체와 메소드의 일생(생명 주기)를 관장한다

  1. 생성자 호출
  2. init() - 서블릿 객체가 생성된 직후 호출
  3. toGet(), doPost() - 클라이언트 요청 시
  4. destroy() - 서버를 stop시키면 반드시 호출 (서블릿이 메모리에서 내려온다)
반응형

댓글