본문 바로가기

Programing/JVM(Java, Kotlin)

[후펴파는 스프링] 스프링 컨테이너 계층 정리

스프링 프레임워크는 객체지향 원리를 지향하다 보니 계층적이고 인터페이스도 오발라게 많다.

클래스다이어 그램으로 그려두면 한눈에 볼 수도 있고 정리를 한다는 생각으로 만들어보았다.

스프링 버전은 4.1.4.RELEASE 기준이다.


크게 우선 두 가지 컨테이너(BeanFactory와 ApplicationContext라는 인터페이스)로 구분할 수 있을 것이다.

간단하게 패키지적인 관점에서 보면 아래와 같다.

하지만 객체지향개념중에 클래스나 인터페이스에서 가장 중요한 것은 어떤 역할을 수행하느냐이다. 이런 역할들은 메소드를 통해서 정해진다.


실제 계층구조를 인터페이스 메소드를 포함해서 그려보면 아래와 같이 복잡해진다.
(이미지가 커서 글씨가 작으므로 클릭하여 확대해서 보거나 다운받아 보길 권장한다.)

또한 인터페이스만으로는 자바 세계에서 할 수있는 일이란 없다.

즉, 구체 클래스가 있어야 하는 것이다. 말단에 위치한 클래스를 기준으로 정리를 해보았다.

UML 파일: astah community라는 툴로 그렸다.


spring.container.hierarchy.asta


spring.hierarchy.overview.asta


springframework.asta