1. 스프링 시작하기 - eva-seulki/spring-in-action5 GitHub Wiki
- 로드 존슨이 << Expert One-on-One J2EE Design and Development >>(2002)에서 스프링을 처음 소개할 때와 지금은 많이 다름
- 당시엔 RDBMS를 사용하는 웹 애플리케이션이 가장 많이 사용되었다면, 지금은 다양한 데이터베이스에 데이터를 저장하는 클라우드에 맞춰진 마이크로서비스나 리액티브 프로그래밍이 관심사임
- 그에 따라 스프링 프레임워크도 진화했고, 간소화 된 Springboot도 생겼음
- 대부분의 애플리케이션은 각 기능을 담당하는 컴포넌트로 구성되어 이들 간에 협력을 통해 작업을 처리하므로 애플리케이션 실행 시 각 컴포넌트가 생성되고 서로 간에 알 수 있어야 함
- 스프링에서는 이를 위해 Spring Application Context라는 Container가 애플리케이션 컴포넌트(Bean)을 생성하고 관리하며, DI를 통해 각 Bean들을 상호연결함
- 컨테이너는 모든 컴포넌트를 생성/관리하고 해당 컴포넌트가 필요한 Bean에 주입하는데 이는 생성자인자 또는 속성의 접근자 메서드를 통해 처리 됨
- 생성자인자 방식
<bean id="productService" class="com.example.InventoryService">
<constructor-arg ref="inventoryService/>
</bean>
- 접근자 메서드 방식
@Bean
public ProductService productService() {
return new ProductService(inventoryService());
}
- Java Configuration에서는 Autowiring과 Component Scanning라는 스프링기법을 통해 Auto-Configuration 기능을 제공함
- Spring Boot에서 Auto-Configuration 기능이 더욱 향상 되었음
https://github.com/eva-seulki/spring-in-action5/commit/eea684c849ac433394ecaf2de8e44ef5ea015f10