개발/Spring 썸네일형 리스트형 IoC 컨테이너 12장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.13 LoadTimeWeaver 등록하기 스프링 2.5에서 도입된 context 네임스페이스는 load-time-weaver 요소를 제공한다.? 1 2 3 4 5 XML기반 스프링 설정파일에 이 요소를 추가하면 ApplicationContext에 대한 스프링 LoadTimeWeaver가 활성화된다. 해당 ApplicationContext내의 어떤 빈도 LoadTimeWeaverAware를 구현할 수 있기 때문에 로드타임 위버(load-time weaver) 인스턴스에 대한 참조를 받는다. 이는 JPA 클래스 변환때문에 로드.. 더보기 Ioc 컨테이너 11장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.11 JSR 330 표준 어노테이션 사용 스프링 3.0부터는 JSR-330 표준 어노테이션 (의존성 주입)을 지원한다. 이러한 어노테이션들은 스프링 어노테이션과 같은 방법으로 스캔한다. 클래스패스에 적절한 jar를 두기만 하면 된다. Note메이븐을 사용한다면 표준 메이븐 저장소(http://repo1.maven.org/maven2/javax/inject/javax.inject/1/)에서 javax.inject artifact를 사용할 수 있다. pom.xml 파일에 다음 의존성을 추가할 수 있다.? 1 2 3 4 5 ja.. 더보기 IoC 컨테이너 10장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.10 클래스패스 스캔과 관리된 컨포넌트 이 챕터의 예제 대부분은 스프링 컨테이너에서 각 BeanDefinition를 만드는 설정메타데이터로 XML을 사용한다. 이전 섹션(Section 4.9, “어노테이션기반의 컨테이너 설정”)에서 소스레벨의 어노테이션으로 어떻게 설정 메타데이터를 사용할 수 있는지 보여주었다. 어노테이션을 사용하는 예제에서도 "base" 빈 정의는 명시적으로 XML파일에 정의하고 어노테이션은 의존성 주입에만 사용한다. 이번 섹션은 클래스패스를 스캔해서 후보 컴포넌트들을 암묵적으로 찾아내는 옵션을 설명한다... 더보기 IoC 컨테이너 9장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.9 어노테이션기반의 컨테이너 설정 꺽쇄괄호()를 사용한 선언 대신 컴포넌트를 연결하기 위해 바이트코드 메타데이터에 의존하는 어노테이션 기반의 설정을 XML 설정의 대안으로 제공한다. 개발자들은 빈 연결을 나타내려고 XML을 사용하는 대신 적절한 클래스, 메서드 필스 선언에 어노테이션을 사용해서 선언을 컴포넌트 클래스로 옮겼다. Section 4.8.1.2, “예제 : RequiredAnnotationBeanPostProcessor”에서 말했듯이 BeanPostProcessor에 어노테이션을 사용해서 스프링 IoC 컨테.. 더보기 IoC 컨테이너 8장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.8 컨테이너 확장점(Extension Points) 보통 어플리케이션 개발자는 ApplicationContext 구현 클래스들의 서브클래스를 만들 필요가 없다. 대신 특수한 통합 인터페이스의 구현을 연결해서 스프링 IoC 컨테이너를 확장할 수 있다. 4.8.1 BeanPostProcessor를 사용한 빈 커스터마이징BeanPostProcessor 인터페이스는 개발자가 원하는(또는 컨테이너의 기본로직을 오버라이드하는) 인스턴스화 로직, 의존성 처리로직 등을 구현할 수 있는 callback methods를 정의한다. 스프링 컨.. 더보기 IoC 컨테이너 7장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.6 빈의 특성 커스터마이징하기 4.6.1 라이프사이클 콜백 컨테이너의 빈 라이프사이클 관리와 상호작용하기 위해 스프링의 InitializingBean과 DisposableBean을 구현할 수 있다. 빈의 생성과 소멸에서 어떤 행동을 하도록 컨테이너는 InitializingBean에 대해서 afterPropertiesSet()를 호출하고 DisposableBean에 대해서 destroy()를 호출한다. 초기화 메서드와 소멸 메서드의 객체 정의 메타데이터를 사용하면 클래스가 스프링 인터페이스와 커플링을 갖지 않으면서 이와 동일.. 더보기 IoC 컨테이너 6장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.5 빈(Bean) 범위 빈 정의를 생성할 때 빈 정의로 정의한 클래스의 실제 인스턴스를 생성하기 위해 레시피를 만든다. 클래스처럼 하나의 레시피에서 많은 객체 인스턴스를 생성할 수 있다는 것을 의미하기 때문에 빈 정의가 레시피라는 개념은 중요하다. 특정 빈 정의로 생성한 객체에 연결할 다양한 의존성과 설정값뿐만 아니라 생성된 객체의 범위도 제어할 수 있다. 이 접근방법은 자바 클래스 레벨에서 객체의 범위를 생성하는 대신에 설정을 통해서 생성한 객체들의 범위를 선택할 수 있으므로 강력하고 유연하다. 빈을 여러 가지 범위 중 .. 더보기 IoC 컨테이너 5장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.4.3 depends-on의 사용 빈 이 다른 빈의 의존성이 있다면 보통 빈은 다른 빈의 프로퍼티로 설정된다는 것을 의미한다. 일반적으로 이는 XML 기반의 설정 메타데이터에서 요소로 설정한다. 하지만 종종 빈들 사이의 의존성은 직접적이지 않을 수 있다. 예를 들어 데이터베이스 드라이버 등록같은 클래스의 정적 초기화(static initializer)는 실행될 필요가 있다. depends-on 속성은 요소로 빈을 초기화하기 전에 명시적으로 하나 이상의 빈을 강제적으로 초기화한다. 다음 예제는 하나의 빈의 의존성을 나타내려고.. 더보기 IoC 컨테이너 4장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.4.2 의존성과 설정에 대한 자세한 내용 이전 섹션에서 얘기했듯이 빈 프로퍼티와 생성자 아규먼트를 다른 곳에서 관리되는 빈(협력 객체)에 대한 참조나 인라인으로 정의된 값으로써 정의할 수 있다. 스프링의 XML기반의 설정 메타데이터는 이를 위해 와 요소내에서 서브 엘리먼트 타입을 지원한다. 4.4.2.1 스트레이트(Straight) 값 (프리미티브(primitive), Strings 등등) 요소의 value 속성은 사람이 읽을 수 있는 문자열로 프로퍼티나 생성자 아규먼트를 지정한다. 앞에서 얘기했듯이 이러한 문자열 값을 S.. 더보기 IoC 컨테이너 3장 이 문서는 개인적인 목적이나 배포하기 위해서 복사할 수 있다. 출력물이든 디지털 문서든 각 복사본에 어떤 비용도 청구할 수 없고 모든 복사본에는 이 카피라이트 문구가 있어야 한다. 4.4 의존성 일반적인 엔터프라이즈 어플리케이션은 하나의 객체(또는 스프링 용어로는 빈)로 이루어지지 않는다. 가장 간단한 어플리케이션에서 조차도 엔드유저가 하나의 긴밀한 어플리케이션처럼 느낄 수 있도록 함께 동작하는 약간의 객체들이 있다. 다음 섹션은 목표를 이루기 위해 객체들이 협력하는 완전히 구현된 어플리케이션에서 독립적인 다수의 빈을 어떻게 정의하는지 설명한다. 4.4.1 의존성 주입 의존성 주입 (DI)은 객체들이 같이 동작할 객체들의 의존성을 생성자 아규먼트와 팩토리 메서드의 아규먼트와 생성되거나 팩토리 메서드에서 .. 더보기 이전 1 2 다음