SpringFramwork의 구조

1. POJO(Plain Old Java Object)
- 특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바 객체
2.IoC/DI (Dependency Injection)
DI는 유연하게 확장 가능한 객체를 만들어 두고 객체 간의 의존관계는 외부에서 동적으로 설정
3. AOP(Aspect Oriented Programming)
- 관심사의 분리를 통해서 소프트웨어의 모듈성을 향상
- 공통 모듈을 여러 코드에 쉽게 적용가능
SpringFramwork 특징
1.경량 컨테이너
- 스프링은 자바 객체를 담고 있는 컨테이너이다.
- 스프링 컨테이너는 이들 자바 객체의 생성과 소멸과 같은 라이프 사이클을 관리한다.
- 언제든지 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.
2. DI 패턴 지원
- 설정 파일이나, 어노테이션을 통해서 객체 간의 의존 관계를 설정할 수 있다.
- 따라서, 객체는 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없다.
3. AOP(관점 지향 프로그래밍) 지원
- 로깅, 보안과 같이 여러 모듈에 공통으로 필요하지만 실제 모듈의 핵심이 아닌 기능들을 분리하여 각 모듈에 적용 가능하다.
4. POJO 지원
- 특정 인터페이스를 구현하거나 클랙스를 상속하지 않는 일반 자바 객체를 지원한다.
5. IoC
- 객체의 생성과 생명주기 관리 기능을 제공한다.