본문 바로가기
Spring

자바 bean ?? 클래스란

by 디찌s 2020. 4. 3.
728x90
반응형

Bean이란 자주 사용하는 객체를 singleton으로 만들어 놓고 어디서든 불러쓸 수 있도록 만든것이다.

 

자바에서는 bean은 재사용이 가능하게 만들어진 component??이다

 

 

1. Singleton

  •  'singleton' bean은 Spring 컨테이너에서 딱 한 번 생성된다. 컨테이너가 제거될때 bean 함께 제거된다.
  • 생성된 하나의 인스턴스는 single beans cache에 저장되고 해당 bean에 대한 요청과 참조가 있으면 캐시된 객체를 반환한다.
  • 기본적으로 모든 bean은 scope가 명시적으로 지정되지 않다면 singleton으로 작동한다

 

2.서블릿 컨테이너

서블릿 컨테이너는 개발자가 웹서버와 통신하기 위하여 소켓을 생성하고 , 특정 포트에 리스닝하고 , 스트림을 생성하는 등의 복잡한 일들을 할 필요가 없게 해준다.

container는 servlet의 생성부터 소멸까지 일련의 LIFECYCLE을 관리한다. 서블릿 컨테이너는 요청이 들어올때마다 새로운 스레드를 만드는데 우리가 대표적으로 알고있는 Servlect Contatiner가 바로 톰캣이다 톰캣은 was로 java파일을 컴파일해서 Class로 만들고 메모리에 올려 servlet 객체를 만든다.

 

 

 

 

3.스프링 컨테이너

스프링 컨테이너를 이해하려면 IOC 개념과 DI를 알아야한다

 

IOC는 개발자가 JAVA코딩시 New 연산자,인터페이스 호출,팩토리 호출방식으로 객체를 생성하고 소멸시킨다. IOC란 

 

인스턴스의 생성부터 소멸까지의 객체 생명주기 관리를 개발자가 하는대신 스프링이 관리한다.

 

DI는 IoC를 실제로 구현하는 방법으로 의존성있는 컴포넌트들 간의 관계를 개발자가 직접 코드로 명시하지 않고 컨테이

 

너인 스프링이 런타임에 찾아서 연결해주는 것이다.

 

스프링 컨테이너는 빈들의 생명주기를 관리하는데 , 스프링 컨테이너는 어플리케이션을 구성하는 빈들을 관리하기위해

 

IOC를 사용한다. Spring 컨테이너 종류에는 BeanFactory와 이를 상속한 ApplicationContext가 존재한다. 이 두개의 컨

 

테이너로 의존성 주입된 빈들을 제어하고 관리할수있다.

 

 

1. 웹 애플리케이션이 실행되면 톰캣(was 서버)에서 web.xml을 로딩한다.

2. web.xml에 등록되어있는 ContextLoaderListener(java class)가 생성된다 ContextLoaderListener 클래스는 ServletContextListener 인터페이스를 구현하고 있으며, ApplicationContext를 생성하는 역할을 수행한다. 

 

 

 

3. 생성된 ContextLoaderListener는 root-context.xml을 로딩한다 

4. root-context.xml에 등록되어있는 spring container가 구동된다 이때 개발자가 작성한 비즈니스 로직에 대한 부분과 DAO,VO 객체들이 생성된다.

5.클라이언트로 부터 웹 애플리케이션이 요청이 온다

6. DispatcherServlet이 생성된다. DispatcherServlet은 FrontController의 역할을 수행한다. 클라이언트로부터 요청 온 메시지를 분석하여 알맞은 PageController에게 전달하고 응답을 받아. 요청에 따른 응답을 어떻게 할지 결정만한다. 실질적은 작업은 pageController에서 이루어지기 때문이다. 이러한 클래스들을 HandlerMapping,ViewResolver  클래스라고 한다.

7.DispathcerServlet은 servlet-context.xml을 로딩한다.

8. 두번째 스프링 컨테이너가 구동되며 응답에 맞는 PageController 들이 동작한다. 이 때 첫번째 스프링 콘테이너가 구동되면서 생성된 DAO,VO,ServiceImpl클래스들과 협업하여 알맞은 작업ㅇ을 처리하게 도니다.

 

728x90
반응형

댓글