본문 바로가기
Spring/study

Spring 1강 개발 환경설정

by avvin 2019. 5. 27.


http://mannaedu.com/bbs/board.php?bo_table=pds&wr_id=74


(server.xml 한글데이터 처리 생략)


Spring 개발환경


https://www.youtube.com/watch?v=KkMlhnEI9ds&list=PLY9pe3iUjRrRiJeg0jw22yW1G5yzAdiqC



2019년 현재 스프링 최신 버전은 5.1.4ㅇ며 에러가 발생할 경우 하위 버전으로 설정

(Java 최신 버전은 11이지만 호환성을 위하여 1.8로 설정함)


JDK 8+ for Spring Framework 5.x

JDK 6+ for Spring Framework 4.x

JDK 5+ for Spring Framework 3.x



다운로드

https://spring.io/tools


STS 버전

spring-tool-suite-4-4.2.2.RELEASE-e4.11.0-win32.win32.x86_64


1. STS 다운로드

2. C: 디렉토리에 옮기기

3. STS 실행

4. 환경변수 설정

4. STS 4에서 Spring Lagacy Project를 지원하지않으므로 Eclipse MarketPlace에서 

Spring Tool 3 Add-On 3.9.7. Release를 추가 설치해야 함




Help > Eclips Marketplace에서 Spring Tool 3 Add-On 3.9.8. Release 확장프로그램 설치


프로그램 기본설정


workspace바뀌면 설정 다시해야한다.


Windows - Preference - 


General > Workspace > Text file encoding : other (UTF-8)


General > Editor > Text Editors - Spelling - encoding : other (UTF-8)


Web - CSS Files / Web-HTML Files / Web-JSP Files Encoding : UTF-8


JSP 인코딩 설정이 없다면 아래 소프트웨어 설치 후 재설정


Help - Install New Software 


Work with : 2018-12 - http:// ~  [ Add ]


Java web 검색해서

Eclipse Java Web Developer 설치





JSP 템플릿 설정



Web JSP Files > Editor > Templates


이클립스 구버전에서는 HTML 5가 등록돼있지 않아 HTML 4.01을 HTML5 형식으로 변경해주어야했지만 이제 그럴 필요 X




Get 방식 한글데이터 처리 ( tomcat 구버전 )


Server.xml 편집

URIEncoding = "utf-8" 속성 추가 (2군데)


<Connector connectionTimeout="20000" port ="8080" prococol="HTTP/1.1"

redirectPort="8443"

URLEncoding="utf-8" />


...


<Connector  port ="8009" prococol="AJP/1.3"

redirectPort="8443"

URLEncoding="utf-8" />




스프링 프로젝트 설정


설정이 복잡하므로 샘플프로젝트 받아서 진행


아래 링크에서 Spring sample 프로젝트 다운로드 받은 후 압출 풀고 import


http://mannaedu.com/bbs/board.php?bo_table=pds&wr_id=74



File - import - General > Existing Project into Workspace  [ next ]


sample 디렉토리 추가

(Option에 Copy projects into Workspace 는 알아서 설정)




이 sample 프로젝트는 메이븐(maven) 프로젝트 형식


jar파일 (외부 라이브러리 ) 참조를 간단하게 처리한다.


xml에 라이브러리 이름과 버전만 연계시키면 maven 툴이 서버에서 자동으로 라이브러리를 다운받아와 쉽게 관리해줌



프로젝트를 보면 jar 파일이 하나도 없는데, jar파일은 c:/사용자/user/.m2 /repository에 모여있다.


 c:/사용자/user/.m2 /repository는 메이븐에서 관리하는 외부 라이브러리 디렉토리



지금까지는 프로젝트를 만들면 하나하나 jar파일을 추가해야했는데, maven은 공유해서 사용한다.


배포될때는 jar파일을 포함해서 배포하나, 개발할때는 따로 추가할 필요가 없다. (개발시 편리)


http://mvnrepository.com (메이븐 저장소 서버)




원하는 외부소스 검색해서 소스 코드를 복사 (자동복사됨)





복사한 소스 코드를 pom.xml의 <dependency> 아래에 붙여넣는다




스프링 프로젝트 생성



-Spring Legacy Project > Spring MVC project //STS 3 확장프로그램 설치해서 추가된것

  > Project name : spring01

     Templates : Spring MVC project


Please specify the top-level package e.g. com.mycompany.myapp*


- 패키지 이름 : com.example.spring01 // 주소 뒤집은 형식 ex) www.mbc.com => com.mbc.www


- 메이븐 라이브러리 : 사용자/.m2 디렉토리 확인


spring01 프로젝트의 pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>spring01</artifactId>
    <name>spring01</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
        <java-version>1.8</java-version>
        <org.springframework-version>5.1.4.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>
    <dependencies>
cs


java와 springframework 버전을 변경하면 maven이 알아서 빌드해준다.


jdk 버전 수정 : Project Facets, Java compiler 버전 확인


빌드 실패해서 에러가 뜰 경우 : [ 에러 해결 방법 ]


1. 

프로젝트 우클릭 - Properties > Java Compiler > JDK Compliance


Use compliance from execution environment ~ on the 'JavaBuild Path' 체크 풀고


바로 하단의 Compiler compliance level을 1.8로 바꿔준다.


Properties > Maven > Project Facets 

Java Version을 1.8로 변경


프로젝트 우클릭 - Build Path 설정 확인 // JRE 더블클립 > Workspace default JRE로 변경해본다

 


2. 프로젝트 > Properties > Deployment Assembly > Add > Java Build Path Entries > Maven Dependencies 선택


3. pom.xml에서 스프링 버전 다시 조정해보기 (약간 낮은버전으로)

   <org.springframework-version>5.1.4.RELEASE</org.springframework-version>


4. 프로젝트 clean, server clean


Project - Clean - 해당 프로젝트 체크 - clean


하단  Server 창에서 서버 우클릭 - Clean  / 서버 우클릭 - Clean Tomcat Work Directory


6. 프로젝트 우클릭 - Maven - Update Project >Force Update of Snapshots/Releases도 체크 후 OK


7. STS 종료한 후 메이븐 저장소 (.m2) 삭제, STS 재시작




-sample 프로젝트에서 설정파일 복사 :


1. pom.xml 복사


2. src/main/resources/mappers 디렉토리 생성 

// 기존 JavaResources - src/main/resources 폴더에 mappers 폴더 만드는 과정

//  sample 프로젝트에서 mappers 폴더를 복사해와도 된다. (MemoMapper.xml 파일은 지워준다 )


3. src/main/resources/sampleMapper.xml 복사


4. src/main/resources/log4j.xml 복사


5. src/main/resources/log4jdbc.log4j2.properties 복사


6. src/main/resources/logback.xml 복사 // 이미 있는 파일은 덮어쓰기


7. mybatis-config.xml 복사


//하단 src 폴더 (sample에서 spring01로)

8. src/main/webapp/WEB-INF/web.xml 복사 // 덮어쓰기


9. src/main/webapp/WEB-INF/pring/root-context.xml 복사

 

10. src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 복사 // 옮긴 후 아래처럼 코드 수정


<context:component-scan base-package="com.example.spring01" />



반드시 Java Build Path에서 tomcat 추가할 것 

(실행 한번 안해보면 라이브러리 추가할 목록에 안뜰수도 있으니 다른 프로젝트로 서버 실행해보고 다시 시도)


Add Library - Server Runtime  톰캣 추가 



Help - Install New Software Workwith : 2018 ~ 선택하고 java 검색


Eclipse Java EE developer tools 설치


이미 설치돼있으면 다운로드 가능 목록에 안뜬다. 

바로 프로젝트의 Preperties - Deployment Assembly - [ Add ] - Java Build Path Entries - Maven Dependencies를 추가해준다.


다시 실행하면 정상 작동



 한글 깨짐 발생시 

src - main - webapp - WEB-INF - views - home.jsp 소스코드 수정


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>~