분류 전체보기(359)
-
Environment Abstraction
Environment 인터페이스는 애플리케이션 환경의 두 가지 주요 측면인 profile과 properties을 모델링하는 컨테이너에 통합된 추상화입니다. profile은 지정된 profile이 활성 상태일 때만 컨테이너에 등록할 논리적 빈 정의 그룹입니다. 빈은 XML이나 애노테이션으로 정의되든 profile에 할당될 수 있습니다. Environment 객체의 profile과 관련된 역할은 현재 활성화된 profile이 무엇인지, 디폴트로 활성화되어야 할 profile이 무엇인지를 결정하는 것입니다. properties은 거의 모든 애플리케이션에서 중요한 역할을 하며, properties 파일, JVM 시스템 속성, 시스템 환경 변수, JNDI, 서블릿 컨텍스트 파라미터, 임시 Properties 객체..
2024.11.14 -
Using @PostConstruct and @PreDestory
CommonAnnotationBeanPostProcessor는 @Resource 애노테이션뿐만 아니라 JSR-250 라이프사이클 애노테이션인 jakarta.annotation.PostConstruct와 jakarta.annotation.PreDestroy도 인식합니다. Spring 2.5에서 도입된 이러한 애노테이션 지원은 initialization callbacks과 destruction callbacks에서 설명된 라이프사이클 콜백 메커니즘에 대한 대안을 제공합니다. CommonAnnotationBeanPostProcessor가 Spring ApplicationContext 내에 등록되어 있으면, 이러한 애노테이션이 부여된 메서드는 해당 Spring 라이프사이클 인터페이스 메서드나 명시적으로 선언된 ..
2024.11.14 -
Using @Value
@Value는 Spring에서 외부화된 속성 값을 주입하는 데 유용한 애노테이션입니다. @Value를 통해 application.properties 또는 application.yml 파일의 값을 주입하거나, 스프링 표현 언어(SpEL)를 사용해 런타임 시 계산된 값을 주입할 수 있습니다. 다음은 @Value의 다양한 활용 방법과 설정 방법에 대한 설명입니다.1. 기본 사용법: 외부 속성 값 주입@Value 애노테이션은 외부 속성을 주입하는 데 사용됩니다. 예를 들어, application.properties 파일에서 catalog.name 속성을 정의하고 이를 클래스에 주입할 수 있습니다.# application.properties 파일catalog.name=MovieCatalog @Componentpu..
2024.11.14 -
Injection with @Resource
Spring은 JSR-250의 @Resource 애노테이션(jakarta.annotation.Resource)을 필드나 빈 속성 세터 메서드에 사용하여 주입을 지원합니다. 이는 Jakarta EE에서 흔히 사용되는 패턴으로, 예를 들어 JSF 관리 빈과 JAX-WS 엔드포인트에서 사용됩니다. Spring은 Spring 관리 객체에 대해 이 패턴을 지원합니다.@Resource에는 name 속성이 있습니다. 디폴트로 Spring은 이 값을 주입할 빈 이름으로 해석합니다. 즉, 이름에 따른(by-name) 주입 방식을 따르며, 다음 예제와 같이 사용할 수 있습니다:public class SimpleMovieLister { private MovieFinder movieFinder; @Resource(name=..
2024.11.14 -
Using CustomAutowireConfigure
CustomAutowireConfigurer는 BeanFactoryPostProcessor로, Spring의 @Qualifier 애노테이션이 없어도 사용자 정의 qualifier 애노테이션 타입을 등록할 수 있도록 합니다.import org.springframework.beans.factory.annotation.CustomAutowireConfigurer;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Collections;@Configurationpublic class AppConfig { @Bean public..
2024.11.14 -
Using Generics as Autowiring Qualifiers
@Qualifier 애노테이션 외에도, Java 제네릭 타입을 사용하여 암시적인 qualification 형태로 활용할 수 있습니다. 예를 들어, 다음과 같은 구성이 있다고 가정해 보겠습니다:@Configurationpublic class MyConfiguration { @Bean public StringStore stringStore() { return new StringStore(); } @Bean public IntegerStore integerStore() { return new IntegerStore(); }} 앞서 언급한 빈들이 제네릭 인터페이스(즉, Store 및 Store)를 구현한다고 가정하면, Store 인터페이스에 @Autowire를 사용하여 제네릭 타입이 qualifier 으로..
2024.11.14