XML 기반 구성과 자바 기반 구성 그리고 자동 구성

dongeranguk·2023년 1월 4일
0

XML 기반 구성

XML 기반의 구성은 아래와 같다.

<bean id="inventoryService" class="com.example.service.InventoryService"/>

<bean id="characterDao" class="com.example.dao.CharacterDao"
	constructor-args ref="inventoryService" />

자바 기반 구성

위에서 본 XML 기반 구성을 자바 기반 구성으로 나타내보자.

@Configuration
public class ServiceConfiguration {
	
    @Bean
    public InventoryService inventoryService() {
    	return new InventoryService();
	}
    
	@Bean
    public CharacterDao characterDao() {
    	return new CharacterDao(inventoryService());
    }
}

@Configuration 어노테이션은, 이 클래스가 설정 클래스임을 스프링에게 알리고

@Bean 어노테이션을 지정한 메소드들에서 반환되는 객체가 스프링 애플리케이션 컨텍스트의 빈으로 추가되어야 한다는 것을 나타낸다. (빈의 id가 메서드의 이름과 동일)

이러한 별도의 xml 구성과 자바 구성은 스프링의 자동-구성 기능을 사용할 수 없는 경우에만 필요하다.

자동-구성

자동-구성은 자동 연결컴포넌트 스캔이라는 스프링 기법으로 한다.

1.컴포넌트 스캔(Component scanning)

컴포넌트 스캔은 classpath에 지정된 컴포넌트를 찾은 후 스프링 애플리케이션 컨텍스트에 자동으로 빈을 등록한다.

2.자동 연결(Autowiring)

이렇게 등록된 빈들은 자동 연결을 사용하여 의존 관계가 있는 다른 빈자동으로 주입(연결)한다.

0개의 댓글