Programming/Spring

[Spring Framework] STS사용법(배포)

개발도비 2022. 3. 10. 10:58

정리해두지 않으면 세팅할 때마다 헷갈릴 것 같아 기록한다

Windows10, Java1.8을 사용하고 있다

 ***** STS(Spring Tool Suite) 다운로드 *****
   접속)  https://spring.io/tools/sts/all 접속후 다운로드 받는다
   
    window용으로 다운받는다(상황에 맞게 다운받으면 된다)
       spring-tool-suite-3.9.8.RELEASE-e4.11.0-win32-x86_64.zip

   설치법)
      - 압축 해제시 생성할 폴더 이름이 길면 에러가 발생하므로 짦게 만들 것(ex.sts)
        E:\sts\sts-bundle\sts-3.9.4.RELEASE\sts.exe 실행
      - 이클립스와 비슷하지만 STS는 Spring 프로젝트가 따로 만들어져있다
 ***** 디폴트 서버 삭제  *****

    실행하면 Pivotal서버가 기본으로 설정되어 있다
    우리는 톰캣 서버를 사용할 것이므로 이것을 지워줘야 한다

    1. Servers 탭에서 삭제

    2. Window->Prefernces -> Server -> Runtime Environment에서 삭제

     꼭 두가지 모두 실행해야 한다
 **** 톰캣 서버 설치*****

    Servers뷰에서 오른쪽 마우스 버튼 -> New -> Server ->Apache -> Tomcat v8.5 Server 선택
    -> Next -> Browse (톰캣위치-C:\Program Files\Apache Software Foundation\Tomcat 8.5)
    -> Finish

    설치 후 
    Package Explorer의
    server.xml에서 

     Connector connectionTimeout="20000" port="8080" 에서 port변경하기  
                                                           port="8088"
 *****  제대로 설치 되었는지 test 해보기 *****

    File - New- Dynamic Web Project 만들어서 test 해볼 것
 *****  Spring MVC Project 생성법 *****

  1. Spring MVC Project 생성
     File - New -  Spring Legacy Project 선택

     ->
        Project name : springTest
        Templates: Spring MVC Project 선택
..   -> next

     Project Settings - Spring MVC Project
     Please specify the top-levle package e.g.com.mycompany.myapp*

     com.naver.myhome   .... finish
     ==>myhome이 pom.xml의 <artifactId>엘리먼트 안에 들어가는 값으로 프로젝트이름 대신 접근한다
     예) http://localhost:8088/myhome/board.write_nhn

      
  
  2. Project Explorer 뷰에서 springTest 프로젝트를 선택한 상태에서 마우스 오른쪽 버튼을 클릭하여 맨 아래의
    "Properties"를 선택한다.
     왼쪽에서 [Project Facets]를 선택하고 Java 버전을 1.8로 수정한다.
     오른쪽에 [Runtimes]탭에서 Apache Tomcat v8.0을 <Apply>버튼을 클릭한다.

   - maven과는 달리 pom.xml 파일의 내용이 기본 제공하는 것이 들어있다.

   - ModelAndView가 아닌 Model객체를 사용

  3. pom.xml파일을 선택해서 
      <org.springframework-version>5.1.3.RELEASE</org.springframework-version>로 변경한다


      Spring MVC Projcet는 Maven(자바용 프로젝트 관리 도구)을 기본으로 프로젝트가 생성된다
     /*
         아파치 소프트웨어 재단에서 개발하는 Java 기반 프로젝트의 라이프사이클 관리를 위한 빌드 도구. 
         이에 따라 컴파일과 빌드를 동시에 수행, 테스트를 병행하거나 서버 측 Deploy 자원을 관리할 수 있는 
         환경을 제공한다. 또한 라이브러리 관리 기능도 내포하고 있다. 
         Java로 개발하다 보면 다양한 라이브러리를 필요로 하게 되는데, 
          pom.xml 파일에 필요한 라이브러리만 적으면 Maven이 알아서 다운받고 설치해주고 경로까지 지정해준다 
    */

그러므로 Maven의 기본 폴더 구조를 갖는다
또한 MVC 프로젝트를 위한 스프링 설정 파일들을 기본으로 생성해주며 로그를 위한 log4j도 장착해준다
main  -----------------------------------------------------------------   

src.main.java ------------------------------------------------------------ 자바 코드

src.main.resources ----------------------------------------------------- 코드에 필요한 리소스들

src.main.webapp -------------------------------------------------------- 웹어플리케이션 디렉토리

src.main.webapp.resources -------------------------------------------- 웹어플리케이션의 정적리소스

src.main.webapp.resources.META-INF -------------------------------- 웹어플리케이션 메타정보

src.main.webapp.resources :: log4j.xml ------------------------------- 로그설정파일(log4j)

src.main.webapp.WEB-INF.spring -------------------------------------- 스프링 설정파일 폴더

src.main.webapp.WEB-INF.spring :: root-context.xml ----------------- web.xml의 context-param설정 파일

src.main.webapp.WEB-INF.spring.appServlet :: servlet-context.xml - web.xml의 servlet의 init-param설정 파일

src.main.webapp.WEB-INF.views -------------------------------------- 어플리케이션 뷰파일들 (jsp, vm, jsf등)

src.main.webapp.WEB-INF.views :: home.jsp ------------------------- 기본으로생성된 뷰페이지 (hello world)

src.main.webapp.WEB-INF :: web.xml --------------------------------- 웹어플리케이션 명세

target ------------------------------------------------- 빌드를 실행하면 생기는 war, jar 파일을 저장하는 폴더

test ---------------------------------------------------- 프로그램에서 사용하는 단위 테스트의 소스 코드가 저장되는 폴더

  *****  Spring MVC Project 실행 *****
  3. 실행
     springTest-src-main-webapp- WEB-INF -views - home.jsp 파일을 한번 실행시킨후

     웹브라우저에 다음과 같이 입력한다
     http://localhost:8088/myhome      

     현재 시스템의 날짜, 시간이 나타나면 성공! 

     한글이 깨져서 나오면 

     springTest-src-main-webapp-WEB-INF-views - home.jsp 파일에
     
     <%@ page language="java" contentType="text/html; charset=UTF-8" %> 추가할 것

=====================================================================================================
pom.xml(Projet Object Model)
 Project Object Model의 약자로 Maven이 프로젝트를 빌드하기 위한 설정 정보를 담은 파일

- build 시, pom.xml 을 읽어서, dependency에 정의된 jar 파일을 
  Maven Central Binary Repository 에서 download 한다.

    - addressing system 이 있으며, Group Id, Artifact Id, version 정보로 구별한다.
      
       1) groupId - 프로젝트 속하는 그룹 식별 값. 회사, 본부, 또는 단체를 의미하는 값이 오며, 
          패키지 형식으로 계층을 표현한다. 
          
       2) artifactId - 프로젝트 결과물의 식별 값. 프로젝트나 모듈을 의미하는 값이 온다. 
         
       3) name - 프로젝트 이름        

       4) package - 컴파일된 클래스 파일과 리소스 파일들을 war 혹은 jar와 같은 파일로 묶는 것.
      
       5) version - 결과물의 버전을 입력한다. 기본 값인 1.0-SNAPSHOT을 사용.

       6) <dependencies> : 의존성 정의 및 설정 영역
          <packaging> : 컴파일된 클래스, 리소스 파일들을 war또는 jar 같은 유형으로 정의하는 영역
          <properties> : pom.xml에서 중복해서 사용되는 설정(상수)값들을 저장해놓는 영역