Software Engineering/Spring

    [Spring] Core Technologies_Bean Scopes

    1.5. Bean Scopes Bean Scope 이름 ApplicationContext 필요 유무 설명 singleton X (Default) 스프링 컨테이너에서 해당 빈에 대한 유일한 객체 인스턴스를 생성한다 prototype X 스프링 컨테이너에서 해당 빈에 대한 임의의 수의 객체 인스턴스를 생성한다 - 필요할 때마다 새롭게 생성 가능 request O 단일 빈 객체 인스턴스의 범위를 단일 HTTP 요청의 수명 주기로 지정한다 session O 단일 빈 객체 인스턴스의 범위를 HTTP 세션의 수명 주기로 지정한다 application O 단일 빈 객체 인스턴스의 범위를 ServletContext의 수명 주기로 지정한다 websocket O 단일 빈 객체 인스턴스의 범위를 WebSocket의 수명 주..

    [Spring] Core Technologies_Dependencies_3

    1.4.3. Using depends-on .depends-on 속성을 사용하면 다수의 종속성이 먼저 초기화되도록 한다 .depends-on 에 명시된 빈들은 해당 빈이 해제되기 전에 먼저 해제된다 1.4.4. Lazy-initialized Beans .기본적으로 singletone 으로 설정된 빈은 ApplicationContext 가 초기화될 때 같이 초기화된다 .lazy-initialized 빈은 singletone 으로 설정되어 있어도 컨테이너가 초기화될 때가 아닌, 해당 빈이 필요할 때 만들어진다 .lazyinit 이 설정되지 않은 singletone 빈(기본적으로 eager-init 되는)이 lazyinit 빈을 종속성으로 갖고 있으면, lazyinit 빈은 eager-init 된다 -> 빈은..

    [Spring] Core Technologies_Dependencies_2

    1.4.2. Dependencies and Configuration in Detail Straight Values (Primitives, Strings, and so on) jdbc.driver.className=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mydb The idref element // 1 // 2 .첫번째 예시가 두번째 예시보다 선호되는데, idref 속성을 사용하면 스프링 컨테이너가 배포되어질 때 해당 빈이 실제로 존재하는지 확인해준다 -> 오타 문제를 예방할 수 있다 References to Other Beans (Collaborators) Inner Beans .내부 빈은 식별자가 필요없고, 구체적으로 명시한다 해도 스프..

    [Spring] Core Technologies_Dependencies_1

    1.4. Dependencies 1.4.1. Dependency Injection .DI는 객체가 필요로 하는 의존성을 외부로부터 주입받아 정의하는 과정이다 .컨테이너는 빈을 만들 때 의존성을 주입한다 .DI를 적용하면 코드가 깔끔하고, decoupling하다 .객체는 의존성을 찾을 필요가 없다 .결과적으로 테스트하기가 수월해지고, 인터페이스이거나 추상 클래스일 경우 mocking하기가 더욱 편해진다 Constructor-based Dependency Injection public class SimpleMovieLister { // the SimpleMovieLister has a dependency on a MovieFinder private final MovieFinder movieFinder; //..

    [Spring] Core Technologies_Bean Overview

    1.3. Bean Overview .컨테이너에게 빈 정의들은 BeanDefinition 객체로 표현된다 .BeanDefinition 객체는 다음과 같은 메타데이터들을 갖고 있다 -Class 풀 네임 -빈 행동 설정 : bean scope / lifecycle callbacks 등 -다른 종속성 있는 빈들에 대한 참조 -다른 설정들 : pool의 사이즈 제한 / 커넥션의 갯수 설정 등 .이 메타데이터들은 빈 정의를 구성하는 property 들로 변환된다 1.3.1. Naming Beans .모든 빈은 한 개 이상의 식별자를 갖는다 .식별자는 컨테이너 안에서 유일한 값이어야 한다 .주로 빈들은 한 개의 식별자만을 갖지만, 만약 여러 개의 식별자를 갖는 경우 한 개를 제외한 나머지는 별명으로 취급된다 .XML..

    [Spring] Core Technologies_Container Overview

    1. The IoC Container 1.1. Introduction to the Spring IoC Container and Beans .IoC(Inversion of Control)는 DI(Dependency Injection)이라고도 한다 .IoC는 객체의 종속성을 생성자, 팩토리 메서드, Setter 메서드 등을 통해서만 할당하는 과정을 말한다 .컨테이너는 빈을 만들 때 종속성을 주입한다 .객체가 직접 자신의 종속성을 제어하지 않는다 .org.springframework.beans과org.springframework.context 패키지가 Spring IoC 컨테이너의 기반 패키지이다 .BeanFactory 인터페이스가 모든 타입의 객체를 다루기 위한 향상된 구성 처리를 제공한다 .Applicat..