Spring Framework(138)
-
Additional Capabilities of the ApplicationContext
서론에서 논의한 바와 같이, org.springframework.beans.factory 패키지는 프로그램 방식으로도 빈을 관리하고 조작할 수 있는 기본 기능을 제공합니다. org.springframework.context 패키지는 애플리케이션 프레임워크 지향 스타일로 추가 기능을 제공하기 위해 다른 인터페이스를 확장하는 것 외에도, BeanFactory 인터페이스를 확장한 ApplicationContext 인터페이스를 추가합니다. 많은 사람들이 ApplicationContext를 완전히 선언적으로 사용하여 프로그램 방식으로 생성하지 않고, ContextLoader 같은 지원 클래스를 사용하여 Jakarta EE 웹 애플리케이션의 일반적인 시작 프로세스의 일부로 자동으로 ApplicationContext..
2024.11.15 -
Registering a LoadTimeWeaver
LoadTimeWeaver는 Spring에서 클래스가 Java 가상 머신(JVM)에 로드될 때 동적으로 변환하는 데 사용됩니다.로드 타임 위빙을 활성화하려면, 다음 예제와 같이 @Configuration 클래스 중 하나에 @EnableLoadTimeWeaving을 추가할 수 있습니다: @Configuration@EnableLoadTimeWeavingpublic class AppConfig {} 또한, XML 설정에서는 context:load-time-weaver 요소를 사용할 수 있습니다: ApplicationContext에 로드 타임 위버가 구성되면, 해당 ApplicationContext 내의 모든 빈은 LoadTimeWeaverAware를 구현하여 로드 타임 위버 인스턴스에 대한 참조를 받을 수 ..
2024.11.15 -
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