ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컨테이너란 무슨뜻일까
    개발/java 2015. 1. 15. 00:10

    JSP컨테이너는 서블릿 컨테이너와 같다.


    (서블릿 컨테이너란?

    서블릿을 동작 시킬수 있는 환경을 제공하는 서버 프로그램입니다. 즉 HTTP 요청을 받아서 해당 서블릿을 동작을 시키고 그 결과를 사용자의 브라우저로 전달을 해줄 수 있는 기능을 제공합니다. 보통 컨테이너라고 하는 이유는 서블릿 프레임워크 안에서 동작을 하고 서블릿이 동작할 수 있는 환경을 제공해주며, 기타 필요한 작업등을 제공해주기 때문에 그렇게 얘기를 합니다. 즉 HTTP 파라미터 파싱 및 결과 전달 컨트롤, Forwarding, Redirecting 등의 기능을 컨테이너에서 제공을 해줍니다. 이때 서블릿 개발자는 자신이 만든 서블릿을 이 컨테이너에 등록을 하게 되고, 실제 동작을 컨테이너가 알아서 하게 되기 때문에 사용되는 언어입니다.

    )



    JSP를 해석하고 실행할수 있는 프로그램을  톰켓이라고 부르고 

    톰켓이라는 소프트웨어를 우리는 컨테이너라고 부른다.



    그리고 

    스프링컨테이너 == IOC 컨테이너 == applicationContext


    SPRING 컨테이너란

    우리는 web.xml 에 서블릿태그를 하나 생성한다.

    예를들면 아래와 같이 서블릿을 만든다

    서블릿클래스는 springframework 안에있는 DispatcherServlet 서블릿을 이용하고

    <param-value>/WEB-INF/spring-web-servlet.xml</param-value> 이쪽에 있는 xml로보내주게 된다

    따로 입력하지 않았을경우에는 기본값으로     <servlet-name>이름</servlet-name>  이름-servlet.xml 으로 생성된다

    이쪽 아래있는 이름-servlet.xml 파일을 우리는 스프링 컨테이너라고 부른다.

    이쪽에 스프링관련된 파일들을 다때려 넣어서 만들수도 있지만


    <servlet>
        <servlet-name>spring-web</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring-web-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>


    아래와 같은ContextLoaderListener 를 만들어서 

    <param-name>contextConfigLocation</param-name> 위에 init-param안에 넣어준다


      <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring/context-*.xml</param-value>

      </context-param>

      <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

      </listener>


    이이유는 root context 와 child context 로 나눠지는데


    ContextLoaderListener 에 해당하는 부분이 root context 가 되고

    DispatcherServlet 에 해당하는 부분이 child context 가 된다


    이렇게 둘로나누어지면서

    자바 객체지향 상속관계에 관한 내용중에 

    자식은 부모에 있는 내용을 상속받아서 사용할수는 있지만

    부모는 자식에 있는 내용을 상속받아서 사용할수 없다.


    마찬가지로 child context 에 있는 설정정보들을   root context에서는 사용을 못한다.


    그렇게 스프링 컨텍스트 는 루트와 자식컨텍스트로 나눠진다.


    스프링컨테이너 == IOC 컨테이너 == applicationContext





    '개발 > java' 카테고리의 다른 글

    기본설정  (0) 2015.12.18
    JPA 시작  (0) 2015.12.18
    서브도메인과의 opener 권한문제 해결방법  (0) 2015.05.03
    interface 와 추상클래스 차이  (0) 2015.01.17
    전자정부프레임워크에서 프로퍼티값 가져오기  (0) 2014.10.12
Designed by Tistory.