Spring 8

Spring - MVC Framework

DispatcherServlet Spring의 MVC Framewokr는 모든 HTTP request와 response들을 다루는 DispatcherServlet 주변에 구성되어 있습니다.DispatcherServlet은 HTTP request를 받으면 다음 일련의 이벤트가 발생합니다.DispatcherServlet은 HandlerMapping을 참조하여 적절한 Controller를 호출합니다.Controller은 request를 받고 GET 혹은 POST 메서드에 기반한 적절한 서비스 메서드를 호출합니다. 이 서비스 메서드는 정의된 비즈니스 로직에 근거하여 model data를 가져오며, DispatcherServlet에게 view 이름을 반환합니다.DispatcherServlet은 request를 위..

Spring 2017.03.29

Spring Bean Definition Inheritance

Bean definition은 생성자 arguments, 속성값들, 그리고 container의 초기화 메서드, 정적 factory 메서드 등과 같이 많은 configuration 정보들을 포함할 수 있습니다. Spring Bean definition에서는 상속이라는 개념이 있는데, 이는 자바의 클래스 상속과 무관하지만 상속이라는 개념은 같습니다. parent의 bean definition을 template으로 정의하고, 다른 child bean들이 필요한 설정들에 대해서 parent bean으로부터 상속 받는 것 입니다. XML-based configuration metadata를 사용한다면, bean definition의 parent 속성의 값을 상속할 parent bean의 이름으로 지정함으로써 상속..

Spring 2017.03.03

Spring Bean Post Processor

BeanPostProcessor interface는 개발자만의 고유한 초기화 로직을 제공할 수 있도록 구현할 수 있는 call back 메서드들을 정의합니다. 예를 들어, Bean이 초기화 되기 전에 해야할 작업들 혹은 초기화 후에 해야할 작업들을 BeanPostProcessor를 통해서 정의할 수 있습니다.BeanPostProcessor interface를 plug-in하여 Spring container가 bean의 인스턴스화, 설정, 초기화 작업이 끝난 후에 custom logic을 구현할 수 있습니다. 또한 여러개의 BeanPostProcessor interface들을 설정할 수 있으며, order 속성을 세팅함으로써 interface가 실행되는 순서를 지정할 수 있습니다. BeanPostProce..

Spring 2017.02.27

init-method와 destroy-method 속성

Spring Bean의 생명 주기는 이해하기 쉬운 편입니다. Bean이 초기화 되면, 사용할 수 있는 상태가 되기 위해 몇가지의 초기화 작업이 필요합니다. 비슷하게, Bean이 더 이상 필요하지 않게 되고, container에서부터 제거되면, 몇가지 clean up 작업이 필요합니다. Bean이 초기화 되고 파괴될 때 여러 보이지 않는 작업들이 발생하지만, 그 중에서도 가장 중요한 두 가지의 life cycle callback 메서드를 설명 드리고자 합니다. Bean을 정의할 때 init-method와 destroy-method 속성을 통해서 Bean 인스턴스가 만들어지고, 파괴될 때 호출되는 메서드를 지정할 수 있습니다. 1. Initialization, destruction callbacks by u..

Spring 2017.02.26

Spring Bean Scope

Spring에서 Bean을 정의할 때, Bean의 scope를 선언할 수 있는 option이 있습니다. 예를 들어서, bean instance를 매번 필요할 때마다 생성되게 하고 싶은 경우 scope 설정을 prototype으로 두면 됩니다. 또, Spring이 매번 bean instance를 호출할 때마다 같은 bean instance를 return하게 하고 싶은 경우, bean scope 설정을 singleton으로 하면 됩니다. Spring Framework는 다음 다섯가지의 scope들을 제공합니다. ScopeDescriptionsingletonSpring IoC Container가 하나의 instance를 만들어 사용합니다.prototype하나의 Bean definition으로 여러개의 객체 i..

Spring 2017.02.24

Bean Definition

Application을 구성하고 Spring IoC Container로부터 관리되는 객체들을 Beans라고 부릅니다. Bean은 Spring IoC Container로부터 초기화 되고, 어셈블되고 관리되며, IoC Cotainer가 이를 위해 참조하는 설정 데이터를 configuration metadata라고 합니다. 예를 들어, XML 형태의 태그와 같이 말이죠. Container는 다음과 같은 정보들을 알기 위해서, configuration metadata를 참조합니다.1. 어떻게 Bean을 생성할 것인지.2. Bean의 라이프 사이클 세부 정보.3. Bean의 dependencies.모든 위의 Configuration metadata들은 bean 객체를 정의하는 다음 설정들로 구성됩니다. Prope..

Spring 2017.02.24

Spring IoC Container

Spring container는 Spring Framework의 핵심입니다. container는 객체들을 만들고, 객체들을 묶어 주고, 설정하며, 생성 시점부터 파괴될 때까지의 라이프 사이클을 관리해줍니다. Spring container는 어플리케이션을 구성하는 컴포넌트들을 관리하기 위해서 dependency injection을 사용하며, 이 객체들을 Spring Beans라고 부른다. Container은 configuration metadata를 통해서 어떤 객체를 초기화하고 설정하며 만들지 결정합니다. Configuration metadata는 XML이나 Java annotation, 혹은 Java 코드로 표현됩니다. 다음 그림은 어떻게 Spring이 작동하는 지 보여주는 대략적인 다이어그램입니다. ..

Spring 2017.02.24