프레임워크의 구조
- 프레임워크 코어 (Cold Spot) : 프레임워크가 제공하는 JAR(Java Archive) 파일 ▶ ex. 뼈
- 확장모듈 (Hot Spot) : 애플리케이션의 비즈니스 로직 추가 ▶ ex. 살
- 메타데이터 : xml 환경설정 파일 ▶ ex. 뼈와 살을 연결해주는 연결고리
스프링(Spring) 프레임워크
POJO(Plain Old Java Object) 란 말 그대로 평범한 옛날 자바 객체를 의미
Not POJO 클래스
- POJO 이전의 자바 기술들
- Applet / Servlet / JSP / EJB
- 규칙이 복잡함 ▷ 마음대로 클래스를 만들 수 없음.
- 메모리 사용량 多 ▷ 느림, 디자인 패턴 공부 필요.
POJO 특징
- Spring
- 상속받는 클래스가 없음 ▷ 독립적인 클래스
- 마음대로 만들 수 있음
- 메모리를 덜 사용 ▷ 빠름
스프링(Spring) 컨테이너
tomcat 의 다른 이름 : catalina
tomcat 은 자바 클래스에 불과함 ▶ tomcat 서버를 클래스로 만들 수 있음.
Tomcat server = new Tomcat();
server.start();
// tomcat 서버를 8080 포트로 구동한 것과 똑같음.
Servlet Engine = Servlet Container
- tomcat 객체 생성
- Servlet Container 생성
- Servlet Container 가 web.xml 읽어들임
참고> web.xml 파일에 오류가 났을 경우 Servlet Container 를 생성할 때 에러가 남.
Servlet Container 는 web.xml 에 있는 콜백 메서드들을 호출하면서 라이프사이클을 관리.
=> Spring Container 동일
IoC(Inversion of Control) 컨테이너
컨테이너
- 객체를 저장하고 체계적으로 관리하는 일종의 컬렉션(배열, 리스트 같은)
- 모든 컨테이너는 자바 클래스에 불과함.
- 다형성 = 상속 + 오버라이딩 + 형변환
IoC
- 객체에 대한 제어를 순방향 / 역방향으로 하는 지에 차이
- 순제어 : 객체 생성 및 관계를 개발자가 일일이 제어하는 것
- 역제어 : 객체 생성의 주도권을 컨테이너가 가지고 있는 것, 관계 역시도 처리
- Spring IoC를 사용하면 객체관리 및 유지보수할 때 자바 소스를 안건들이고 유지보수가 가능함.
Spring 컨테이너의 종류
- GenericXmlApplicationContext : 파일 시스템이나 클래스 경로에 있는 xml 파일을 로딩하여 구동하는 컨테이너
- XmlWebApplicationContext : 웹 기반의 스프링 애플리케이션을 개발할 때 사용하는 컨테이너
lazy loading ↔ pre loading
- lazy loading
- 컨테이너가 생성할 때는 아무것도 하지 않고, 클라이언트가 요청할 때 요청된 객체만 메모리에 생성
- 장점 - 메모리를 효율적으로 사용
- 단점 - 느림
- ex. Servlet 컨테이너
- pre loading
- 컨테이너가 생성될 때 xml 에 등록된 bean 객체를 생성
- 장점 - 빠름 (요청이 들어오면 바로 응답)
- 단점 - 메모리를 많이 사용
- ex. Spring 컨테이너
Spring 설정 파일
- <beans> 루트 엘리먼트
- <beans> 엘리먼트
- init-method 속성
- destroy-method 속성
- lazy-init 속성
반응형
'IT > Spring' 카테고리의 다른 글
ViewResolver 적용하기 (0) | 2022.05.30 |
---|---|
포워드(Forward)와 리다이렉트(Redirect) 차이 (0) | 2022.05.26 |
Java Framework - Spring(4) : MVC 모델 (0) | 2022.05.19 |
Java Framework - Spring(3) : JDBC (0) | 2022.05.18 |
Java Framework - Spring (2) : DI / AOP (0) | 2022.05.18 |
댓글