먼저 Spring 프레임워크를 설치해보자
기존에 사용중인 이클립스에 STS 플러그인을 설치해 사용할 것이다.
이클립스 상단 메뉴 [Help] >> [Marketplace]





restrart 해주면 완료
환경설정을 해보자

프로젝트를 생성한다

참고로 Spring Starter Project는 Spring boot 용이다




되는지 확인하려면
HomeController.java 파일을 실행시켜서

controller/ 뒤 주소 모두 지우고

이렇게 뜨면 완료
Project Facets를 설정해주자
프로젝트 우클릭 >> Properties >> Project Facets 검색




home.jsp 파일에서 utf-8로 설정해주면 한글이 깨지지 않고 잘 출력된다

maven 설정하기

pom.xml 파일을 수정해준다
Maven
Maven은 빌드 툴(Build Tool)이다. 프로젝트의 라이브러리를 관리하는 프로그램이 바로 Maven이다.
pom.xml
: Maven을 이용하여 프로젝트에 라이브러리를 빌드 처리하기 위한 정보를 제공하는 환경설정 파일이다.
→ 로컬 저장소의 라이브러리 파일을 제공받아 프로젝트에 빌드 처리 해준다.
→ 로컬 조장소에 라이브러리 파일이 없는 경우 메이븐 저장소에서 라이브러리 파일을 다운로드 받아 로컬 저장소에 저장한다.
로컬 저장소(Local Repository)는 프로젝트에 빌드 처리될 라이브러리 파일을 저장하는 폴더를 뜻한다.
→ 기본적으로 사용자 폴더의 .m2 폴더를 로컬 저장소로 사용한다.

→ 라이브러리 파일에 문제가 있어 프로그램 실행시 에러가 발생될 경우 이클립스 종료 후 해당 라이브러리 파일(폴더)을 삭제하고 이클립스를 재실행하면 된다.
메이븐 저장소(Maven Repositroy)는 라이브러리 파일이 저장된 인터넷상의 저장소를 뜻한다.
→ https://mvnrepository.com 사이트 참조
properties 엘리먼트
: pom.xml 파일에서 자주 사용되는 값을 이름을 이용하여 등록하기 위한 엘리먼트
- 하위 엘리먼트의 이름을 식별자로 사용하여 엘리먼트 내용을 값으로 제공한다.
- pom.xml 파일에서 ${이름} 형식으로 값을 제공받아 사용한다.
- 라이브러리 버전을 효율적으로 관리하기 위해 properties 엘리먼트를 사용한다.



버전을 바꿔준다
버전을 통일성 있게 바꿔주기 위해 properties 엘리먼트를 사용한다.


dependencies 엘리먼트 : dependency 엘리먼트를 등록하기 위한 엘리먼트
dependency 엘리먼트 : 라이브러리 파일을 제공받아 프로젝트에 빌드 처리하기 위한 엘리먼트
→ 라이브러리 의존관계에 의해 다른 라이브러리 파일을 프로젝트에 자동으로 빌드 처리할 수 있다. - 의존 전이(Transitive Dependencies)
groupid : 라이브러리 파일을 제공하는 그룹의 도메인을 설정하기 위한 엘리먼트
artifactId : 라이브러리의 이름을 설정하기 위한 엘리먼트
version : 라이브러리의 버전을 설정하기 위한 엘리먼트
exclusions : exlusion 엘리먼트를 등록하기 위한 엘리먼트
exclusion :의존 관계의 라이브러리 중 제외 라이브러리를 설정하기 위한 엘리먼트

scope : 라이브러리가 프로젝트에 빌드되는 시점을 설정하는 엘리먼트

검정색 아이콘 >> scope에 의해 시점에 따라 빌드된다
Servlet


Test



→ 로그 구현체가 환경설정파일을 읽어 실행할 때 파일 경로에 인식할 수 없는 문자가 존재하면 예외 발생 - 파일 경로를 부호화처리하는 기능을 제공하는 라이브러리

context 경로 바꾸기
서버 더블클릭

Modules

/controller 를 /spring으로 변경
homecontroller 실행시 classnotfoundexception 에러 발생하면


에서 Maven Depencies 추가
'학원 > 복기' 카테고리의 다른 글
[Spring] 제어의 역전(Inversion of Control, IoC) (0) | 2023.07.26 |
---|---|
[Spring] 로그 구현체 설정 (0) | 2023.07.26 |
[Spring] Spring 프레임워크란? (0) | 2023.07.24 |
[MyBatis] 인터페이스 기반의 매퍼 파일만 사용해 매퍼 등록하기 (0) | 2023.07.24 |
[MyBatis] 동적 SQL(Dynamic SQL) (0) | 2023.07.23 |