파게로그

Spring Framework 본문

콤퓨타 왕기초/Spring

Spring Framework

파게 2021. 4. 12. 04:46

Spring projects

https://spring.io/projects

 

 

 

Spring Framework

Provides core support for dependency injection, transaction management, web apps, data access, messaging, and more.

 

 

 

기업형 응용 프로그램을 보조하기 위한 쉬운 프레임워크

 

☕ Java SE(Java Standard Edition)

일반적인 로컬 응용 프로그램 개발을 위한 API

파일 I/O, 콘솔 I/O, 윈도우 I/O, 네트워크 I/O, Thread, ...

 

 Java EE(Java Enterprise Edition) → Spring으로 대체

분산형, 기업형 응용 프로그램 개발을 위한 API

결합력을 낮추는 DI, DB Transaction 처리, 로그 처리, ...

 

 

 

웹을 위한 Spring Framework 모듈

 

MVC ← DI ← 느슨한 결합력과 인터페이스

Transaction ← AOP

인증과 권한 ← Servlet Filter

 

 

코드 수정을 없애고, DI를 위한 설정

 

UI - Service - DAO(Data Access Object) - DB

         S             A1

                        B1

 

B1의 알고리즘을 수정하려면?

 

방법 1: B1의 코드를 수정 → 굉장히 위험하다.

 

방법 2: B2를 만들어 B1을 덮어쓰기 S에도 수정이 필요하다.

private B1 b = new B1(); // 이걸 없애고

b.getData();

 

private B2 b = new B2(); // 이렇게 바뀌어야 하는데... 결국 수정이 필요함

b.getData();

 

private B b = new B2(); // 인터페이스 B

b.getData();

 

UI - Service - <<interface>> Dao - Dao - DB

         S               A                    A1

                          B                    B1

                                                B2

 

그런데

private B b = new B2(); // 여기서 B2는 어떻게 해야 할까?

 

B b = new B1(); 

service.setB(b);

소스코드 없이 바꾸기 위해선, 객체 생성과 조립을 위해 XML이나 Annotation을 통한 외부 설정이 필요하다.

 

 

Spring Framework의 핵심 기능

종속 객체를 생성·조립하는 도구로서의 역할

Comments