Spring Framework(182)
-
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 -
Using JSR 330 Standard Annotations
Spring은 JSR-330 표준 애노테이션(의존성 주입)을 지원합니다. 이러한 애노테이션은 Spring 애노테이션과 동일한 방식으로 스캔됩니다. 이를 사용하려면 관련 JAR 파일이 클래스패스에 포함되어 있어야 합니다. Maven을 사용하는 경우, jakarta.inject 아티팩트는 표준 Maven 리포지토리(https://repo.maven.apache.org/maven2/jakarta/inject/jakarta.inject-api/2.0.0/)에서 사용할 수 있습니다. pom.xml 파일에 다음 종속성을 추가할 수 있습니다: jakarta.inject jakarta.inject-api 2.0.0 Dependency Injection with @Inject and @Named@Autowired 대신..
2024.11.14