spring 설계 철학(https://docs.spring.io/spring-framework/reference/overview.html#overview-philosophy)

  1. 모든 레벨에서 선택권 제공 코드를 변경하지 않고도 configuration을 통해 persistence provider를 변경할 수 있음

  2. 다양한 관점 수용 유연성을 수용하고 작업 방식에 대해 고집하지 않음

다양한 관점의 애플리케이션 요구 사항 지원

  1. 강력한 하휘 호환성 유지 스프링 버전 간 큰 변화를 강요하지 않도록 관리됨

엄선된 범위의 jdk 버전과 third-party 라이브러리 지원

  1. API 설계 관심 Spring 팀은 직관적이고 여러 버전과 여러 해에 걸쳐 유지되는 API를 만들기 위해 많은 고민과 시간을 투자함

  2. 코드 품질에 대한 높은 표준 설정 Spring 프레임워크는 자바독에 중점을 둠

패키지 간에 순환 종속성이 없는 깔끔한 코드 구조를 주장할 수 있는 몇 안 되는 프로젝트 중 하나임


core 모듈 역할


core 모듈 패키지

IoC 관련

org.springframework.context

org.springframework.beans

org.springframework.core

org.springframework.core.env

org.springframework.core.io

스프링 AOP 관련

org.springframework.aop

PSA 관련

애플리케이션 서비스가 특정 기술에 종속되지 않도록 일관된 프로그래밍 모델 제공

여러 패키지에 걸쳐서 제공함

org.springframework.transaction

org.springframework.jdbc/orm

org.springframework.messaging

org.springframework.web.servlet/reative