반응형

Spring 페이지 https://spring.io/
→ Spring Boot를 기본으로 가이드가 제공됨

Eclipse가 없는 경우(or 다른 Tool 사용시) 빌드

Spring 페이지에서 Tool을 다운받아 빌드시킨다


Eclipse 버전 빌드

  • Help > Eclipse MarketPlace > 'sts' 검색 > Spring Tools 3 Add-On for Spring Tools 다운로드


  • 다운로드 완료 후 우측 상단의 open perspective를 눌러 spring으로 perspective 변경


  • spring으로 변경 후 새로운 폴더를 만들기 위해 NEW 선택시 여러개의 spring이 뜨는데 이 중 Spring Legacy Project로 생성한다.


  • Spring Legacy Project를 선택하면 Template을 선택할 수 있는데 여기서 Spring MVC Project 선택(웹 어플리케이션을 만들 것이므로)NEXT 를 누르면 파일 다운로드 창이 나오는데 YES 선택
  • Legacy 프로젝트는 maven을 기본으로 사용(Library Build Tool임)


  • 이후에 패키지명을 정하라는 창이 뜨는데 회사명이 예시로 나와있음 현재는 site.itwill.controller라고 생성(Model Class를 이 패키지에 담을 것임)


  • FINISH를 눌러 생성하면 필요한 라이브러리를 다운받고 있기 때문에 프로젝트에 에러 발생 ⇒ 빌드 작업이 다 종료될때까지 기다리기!(다른 작업을 요청할 경우 빌드가 제대로 안될수있음)


  • Problems를 보면 에러가 발생한 것을 볼 수 있다 ⇒ maven이 기본으로 빌드하는 JDK가 1.6인데 사용하는 버전이 1.8이므로 에러 발생


  • 프로젝트 폴더명을 우클릭하여 Properties로 들어간다


  • Java Build Path에서 JRE를 사용하는 버전인 1.8로 변경


  • BUT 변경해도 에러발생 > 컴파일할 때의 JDK 버전(1.6)과 다르기 때문! > 이것도 바꾸기

반응형
  • Properties에 다시 들어가 Project Facets로 들어가기 *상위버전으로는 올릴 수 있지만 하위버전으로는 불가능(다시 설치하는 방법으로만 가능)


  • Java 버전을 1.8로 변경 && Dynamic Web Module도 4.0을 사용할 것이므로 변경


  • BUT log4j.xml 파일에 현재로서는 접근이 불가능 하여 에러 메세지가 뜨지만 무시 ⇒ 에러 메세지를 우클릭하여 delete해도 나중에 다시 뜸,,,,하지만 지워주기


  • 서버 변경 : 서버를 더블클릭하여 실행 > 아래쪽의 module 탭
  • spring 프로젝트의 경로가 controller인 것을 확인할 수 있다(레거시 프로젝트는 프로젝트명이 context명이 되지 않고 가장 처음에 입력했던 패키지 이름으로 context명이됨)


edit을 눌러 **프로젝트명(spring)**으로 바꾼 후 서버 재실행하기!

pom.xml

라이브러리를 조작하는 xml 파일. 가장 기본적인 버전만 빌드되므로 꼭! 수정한다
MVNRepository 사이트에서 artifactId이름으로 검색하여 최신 버전으로 수정한다.
버전 변경시 알파버전이나 베타버전은 제외하고 변경 && 무조건 서버 STOP후 저장
간혹 이름이 변경될 수 있으므로 복붙하기 (ex-servlet-api는 최신버전의 경우 artifactId 변경된 상태임)
test를 위한 junit의 경우 <scope>가 있으면 인식이 잘 안되므로 지워주기~!
의존관계에 있는 라이브러리도 변경될것임(서버 STOP후 저장 후 확인하기)

Spring 프로젝트 구조

  • Spring의 기본 구조
    • src 폴더
      • main 영역은 기본적으로 프로그램을 만드는 영역
      • test 영역은 module 단위의 프로그램을 테스트 해보는 영역
      • src/main/java : Class 파일 생성
      • src/main/resources : Bean Configuration 파일(XML 환경설정파일) 저장*+properties 파일*
      • src/test/java : 테스트용 Class 파일 생성
      • src/test/resources : 테스트용
    • pom.xml : maven이 빌드하는 라이브러리를 조작할 수 있다
      • 유지보수 용이 - 특히 버전을 바꿀때
      • 기본적으로 최소로 필요한 라이브러리만 빌드 ⇒ 필요한 버전으로 바꾸기
    • target 폴더는 파일이 생성되서 저장되는 곳(건드릴 필요x) ex- WAR 파일
    • main > webapp : resource 파일*(resources 폴더), JSP 파일(views 폴더)*
      • main > webapp > resources : css, js, image 파일 등
      • main > webapp > WEB-INF > views : JSP 파일 생성(클라이언트 접근 불가, WAS 직접 접근 불가하나 WAS가 클래스를 통해 접근)

Maven Dependencies : 모든 라이브러리를 maven이 제공하므로(JDK의 라이브러리인 JRE 제외) 아파치 톰캣 라이브러리등이 필요없다.

HomeController.java + home.jsp

  • 파일명에 S가 뜨는 것은 Spring 파일이라는 것(Spring Container에서 제어)


⇒ BUT 실행시 콘솔 로그에 에러가 뜰 수 있음 WHY? 로그 구현체가 인식 못하는 언어가 있어서 그런것! (아파치 톰캣이 저장된 경로에 한글이 있는 경우 에러가 발생함)
xerces를 검색하여 pom.xml 파일에 추가시키기

만약 실행이 되지 않을 경우 이클립스를 종료하고 .m2 폴더를 삭제 후 다시 이클립스를 실행하면 다시 maven이 라이브러리를 빌드할 것임

그래도 실행되지 않는다면 프로젝트명 우클릭 > maven > Update Project 또는 Run As > Maven clean


반응형

+ Recent posts