스프링5 - 최범균 - 가메출판사 책을 참조하여 공부한 내용입니다.
스프링은 웹 어플리케이션을 작성하는데 도움이 되는 프레임워크입니다
스프링의 주요 기능
- 의존 주입
- AOP
- MVC 웹 프레임워크
- DB연동 지원
스프링은 컨테이너 방식으로 동작되는데 3가지 방식으로 서비스를 제공할 수 있습니다.
1) 객체사용
2) 어노테이션 사용
3) 인터페이스 구현 사용
먼저 스프링을 사용하는데 있어서 사용자에게 자동으로 라이브러리의 추가와 클래스 설정 기능을 제공하기 위해 메이븐 프로젝트를 사용합니다.
메이븐 프로젝트의 폴더 구조는 다음과 같습니다.
프로젝트 폴더
- pom.xml : 메이븐 프로젝트의 설정 정보 관리 파일
- src
- main
- java : 자바소스코드 존재
- resources : .properties, .xml등 리소스 파일 존재
- webapp : 웹 어플리케이션 개발시 웹앱 기준 폴더로 사용
- WEB-INF
- web.xml
메이븐 프로젝트는 pom.xml이 핵심이 됩니다. 모든 메이븐 프로젝트는 pom.xml 파일을 프로젝트 루트 폴더에 작성합니다.
pom.xml은 메이븐 프로젝트의 설정 정보를 관리하는 파일로 프로젝트 정보와 프로젝트에서 필요로 하는 모듈 혹은 플러그인에 대한 정보가 있습니다.
프로젝트 정보는 <groupId><artifactId><version>으로 식별하여 <artifactId>는 모듈 설정시 필요한 정보입니다.
모듈에 대한 정보는 <dependencies><dependency>로 의존 모듈을 설정합니다.
빌드 과정에 필요한 것들은 <bulid><plugin>을 사용하여 플러그인을 설정합니다.
<dependencies>에는 프로젝트가 사용할 모듈이 <dependency>로 나열 되어져 있습니다.
<dependency>에는 <artifactId>가 있으며 이는 하나의 모듈을 가리키는 단위로써 라이브러리 이름으로 사용됩니다.
<gropuId>는 로컬 리포지토리에 저장될 모듈의 폴더명으로 사용됩니다.
<version>은 해당 아티팩트의 버전을 의미합니다.
해당모듈의 이름은 artifactId + version 의 이름으로 로컬 리포지토리 안에 groupId 폴더 하위에 위치하게 됩니다.
메이븐 프로젝트의 주된 사용 목적으로 자동으로 라이브러리를 추가해주는 의존 전이 때문입니다.
메이븐 프로젝트는 해당 프로젝트가 의존하는 모듈이 로컬 리포지토리에 없다면 원격 리포지토리에서 다운 받아 로컬 리포지토리에 복사하게 됩니다.
이때 의존하는 pom파일을 다운 받게 되며 이 파일에는 프로젝트가 의존하는 대상이 명시되어져 있습니다.
즉 의존 전이란 위의 다운 작업을 반복적으로 수행하여 메이븐 프로젝트가 의존하는 대상의 의존하는 대상들 까지 자동적으로 다운하여 로컬 리포지토리에 위치시키고 클래스 패스 설정하는 것을 말합니다.
'학습(구) > Spring 요약' 카테고리의 다른 글
Spring - Bean라이프사이클과 스코프 (0) | 2020.10.16 |
---|---|
Spring - 자동 Bean 등록 (0) | 2020.10.16 |
Spring - 자동 의존 주입 (0) | 2020.10.15 |
Spring - DI(의존주입) (0) | 2020.10.15 |
Spring - Bean 컨테이너 (0) | 2020.10.14 |