파게로그
Spring Framework 본문
Spring 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의 핵심 기능
종속 객체를 생성·조립하는 도구로서의 역할
'콤퓨타 왕기초 > Spring' 카테고리의 다른 글
annotation을 이용한 객체 생성 (0) | 2021.04.20 |
---|---|
Annotation을 이용할 때의 장점과 @Autowired 를 이용한 DI (0) | 2021.04.15 |
Spring Bean configuration (0) | 2021.04.14 |
Spring 없이 직접 DI를 한다면? Spring의 역할 (0) | 2021.04.14 |
Dependency Injection, IoC Container (0) | 2021.04.12 |