스프링에는 두 가지 형태의 서로 다르면서도 관련이 있는 구성이 있다.
이 두 가지 구성은 스프링의 XML 구성과 자바 기반 구성 모두에서 사용 가능하다.
자바 기반 구성 → @Bean 어노테이션이 지정된 메서드 : 사용하는 빈의 인스턴스를 구성하며 속성 값도 설정
@Bean
public DataSource dataSource() {
return new EmbeddedDataSourceBuilder()
.setType(H2)
.addScript("taco_schema.sql")
.addScripts("user_data.sql", "ingredient_data.sql")
.build();
}
→ 다만 이는 스프링 부트를 사용 중일 때는 자동-구성이 DataSource 빈을 구성하므로, 작성할 필요가 없다.
스프리 환경 추상화(environment abstraction)는 구성 가능한 모든 속성을 한 곳에서 관리하는 개념이다.
즉, 속성의 근원을 추상화하여 각 속성을 필요로 하는 빈이 스프링 자체에서 해당 속성을 사용할 수 있게 한다.
스프링 환경에서는 아래와 같은 속성의 근원으로부터 원천 속성을 가져온다.