[Spring] 🔗basic
잘 생성되는지 확인 테스트해보기
eGovFrameDev의 eclipse를 실행한다
처음 서버로부터 파일을 내려받아서 에러표시가 뜨지만 에러가 사라짐
새로운 프로젝트 생성하기
버전을 변경시켜준다.
Web-lib웬만하면 안쓰고 Maven 사용
[ Maven ]
라이브러리 전용 저장소(repository)를 제공하므로, 통합 관리가 가능
메이븐(Maven)은 소프트웨어를 개발할 때 반복되는 작업을 자동화하는 빌드 도구.
메이븐을 사용하면 표준 프로젝트를 일관된 방식과 구조로 관리하고 배포하고 운영할 수 있다.
<pom.xml>
.m2 경로에 메이븐에 의해서 내려받은 파일들이 있다.
▼ 메이븐의 특징
메이븐의 특징
- 정형화된 구조와 절차를 제공 : 메이븐은 컴파일(compile),패키징(package),테스트(test) 등의 작업 프로세스를 정형화하고 이를 준수하도록 장제
- 디펜던시 라이블러리 해결을 자동화 : 디펜던시 라이블러리 혹은 라이브러리 디펜던시는 라이브러리 의존성(혹은 종속성)을 의미한다. 애플리케이션을 실행하기 위해 필요한 라이브러리들과 그 라이브러리들이 필요로 하는 라이브러리들을 가리킨다.
- 라이브러리 관리가 용이 : 메이븐에서는 라이브러리 전용 저장소(repository)를 제공하므로, 통합 관리가 가능
- 라이프 사이클을 가짐 : 라이프 사이클에 따라서 연속적으로 단계를 설정
- 다양한 플러그인을 활용할 수 있음 : 플러그인으로 기능을 확장한다. 플러그인을 사용하면 IDE 프로젝트로 자동 변환, 데이터베이스 통합, 다양한 리포트 생성 등의 작업을 수행할 수 있다. 메이븐은 pom.xml 파일에 위의 내용을 기술한다.
- 디펜던시 관리
프로젝트에 포함된 디펜던시는 pom.xml 파일 안에 <dependencies> 요소를 사용하여 표현하며 POM의 일부로 메이븐에서 사용하게 된다. 프로젝트 디펜던시들은 저장소에 저장된다.
- 디펜던시 필수 항목은 세 가지
항목 | 설명 |
groupId | 부분적인 프로젝트나 조직에서의 라이브러리 집합을 식별하기 위해 제공 |
artifactId | 프로젝트의 실제 이름으로 groupId와 합쳐져서 프로젝트 식별에 쓰인다. |
version | 선언한 디펜던시 아티팩트의 버전으로 프로젝트 내에서 사용하는 아티팩트의 일관성을 지킬 수 있다. |
- 추가로 scope 항목을 정의(JDK나 웹 애플리케이션 서버(WAS)에서 제공하는 라이브러리와 디펜던시에서 선언한 라이블러리 간의 충돌이 일어나는 경우가 발생할 수 있으므로 사용하고자 하는 라이브러리의 스코프(scope)를 명시해야 하는 경우)
디펜던시 scope | 적용 범위 |
compile | 기본값으로 모든 클래스 패스에서 사용 가능하다 |
provided | 컴파일과 유사나 패키지에는 포함되지 않는다. 컨테이너나 JDK에서 제공한다. 예) 웹 애플리케이션을 위한 Servlet API, JSP API |
runtime | 컴파일러가 아닌 런타임 시에 사용된다. 예) JDBC drivers |
test | 테스트 단계에서만 사용된다. 예) JUnit |
system | provided와 유사하나 개발자가 직접 JAR 파일을 제공해야 하고 저장소에서 지정한 dependency를 잦지 않는다 |
원하는게 있을 때 dependency세트로 읽어올 수 있는데 정보를 알수있는 사이트가 있다.
(*주의 - 버전에 따라 호환이 안되는 것이 있을 수 있다.)
예를 들어 jstl을 검색했을 때는
일반적으로 쓰는 것이 javax.servlet > jstl 이다.
눌러보면 안내문구도 나와있고 버전도 나와있다.
설정 값을 복사해서 사용할 수 있다.
xml 설정파일 생성하기
기본 패키지는 지우고 새로 만든다.
스프링에서 기존에 이런식의 생성방법은 컨테이너에 넣지못한다. (컨테이너에 넣어야 기능을 실행할 수 있다.)
(나중에 방법 배운다.)
설정파일에 클래스명을 명시 → 그 클래스명으로부터 클래스를 읽어와서 객체를 생성 → 컨테이너에 넣는다.
Key: Value 형태의 간단한 형태의 설정은 properties파일을 사용하는데,
복잡한 설정을 할 경우에는 xml설정파일을 이용한다.
src/main/resources 경로에 xml설정파일을 만든다
Spring Bean Configuration File 이 안나오는 경우에는 Perspective가 Spring인지 확인한다.
Spring Legacy Project improt하기
Spring LegacyProject는 maven을 이용하는 방식이라서
war로 묶은것을 import하면 설정방식이 깨지기 때문에 zip파일로 import 해야한다.