WEB/✿Spring Framework

[Spring] 🔗basic

W_W_Woody 2022. 2. 22. 23:42

잘 생성되는지 확인 테스트해보기

eGovFrameDev의 eclipse를 실행한다

처음 서버로부터 파일을 내려받아서 에러표시가 뜨지만 에러가 사라짐


새로운 프로젝트 생성하기

버전을 변경시켜준다.

Web-lib웬만하면 안쓰고 Maven 사용

[ Maven ]

 라이브러리 전용 저장소(repository)를 제공하므로, 통합 관리가 가능 

메이븐(Maven)은 소프트웨어를 개발할 때 반복되는 작업을 자동화하는 빌드 도구.

메이븐을 사용하면 표준 프로젝트를 일관된 방식과 구조로 관리하고 배포하고 운영할 수 있다. 

 

<pom.xml>

.m2 경로에 메이븐에 의해서 내려받은 파일들이 있다.

▼ 메이븐의 특징

더보기

메이븐의 특징

  1. 정형화된 구조와 절차를 제공 : 메이븐은 컴파일(compile),패키징(package),테스트(test) 등의 작업 프로세스를 정형화하고 이를 준수하도록 장제
  2. 디펜던시 라이블러리 해결을 자동화 : 디펜던시 라이블러리 혹은 라이브러리 디펜던시는 라이브러리 의존성(혹은 종속성)을 의미한다. 애플리케이션을 실행하기 위해 필요한 라이브러리들과 그 라이브러리들이 필요로 하는 라이브러리들을 가리킨다.
  3. 라이브러리 관리가 용이 : 메이븐에서는 라이브러리 전용 저장소(repository)를 제공하므로, 통합 관리가 가능
  4. 라이프 사이클을 가짐 : 라이프 사이클에 따라서 연속적으로 단계를 설정
  5. 다양한 플러그인을 활용할 수 있음 : 플러그인으로 기능을 확장한다. 플러그인을 사용하면 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세트로 읽어올 수 있는데 정보를 알수있는 사이트가 있다.

(*주의 - 버전에 따라 호환이 안되는 것이 있을 수 있다.)

https://mvnrepository.com/ 

예를 들어  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 해야한다.


Eclipse가 무거워질 때