5.1 자동-구성 세부 조정하기

스프링에는 두 가지 형태의 서로 다르면서도 관련이 있는 구성이 있다.

  1. 빈 연결(Bean wiring)
    1. 스프링 애플리케이션 컨텍스트에서 빈으로 생성되는 애플리케이션 컴포넌트 및 상호 간에 주입되는 방법을 선언하는 구성
  2. 속성 주입(Property injection)
    1. 스프링 애플리케이션 컨텍스트에서 빈의 속성 값을 설정하는 구성

이 두 가지 구성은 스프링의 XML 구성과 자바 기반 구성 모두에서 사용 가능하다.

자바 기반 구성 → @Bean 어노테이션이 지정된 메서드 : 사용하는 빈의 인스턴스를 구성하며 속성 값도 설정

@Bean
public DataSource dataSource() {
		return new EmbeddedDataSourceBuilder()
		    .setType(H2)
        .addScript("taco_schema.sql")
        .addScripts("user_data.sql", "ingredient_data.sql")
        .build();
}

→ 다만 이는 스프링 부트를 사용 중일 때는 자동-구성이 DataSource 빈을 구성하므로, 작성할 필요가 없다.

5.1.1 스프링 환경 추상화 이해하기

스프리 환경 추상화(environment abstraction)는 구성 가능한 모든 속성을 한 곳에서 관리하는 개념이다.

즉, 속성의 근원을 추상화하여 각 속성을 필요로 하는 빈이 스프링 자체에서 해당 속성을 사용할 수 있게 한다.

스프링 환경에서는 아래와 같은 속성의 근원으로부터 원천 속성을 가져온다.