1. Spring 개발환경 설정
가. Spring 개발 환경 설정
1) 스프링 개발 툴
가) 이클립스 + 스프링 플러그인
spring IDE 3.9.2 Release 확장 프로그램 설치
나) STS (Spring Tool Suite - 이클립스에 스프링 플러그인이 포함된 버전)
다) InteliJ
2) STS 다운로드 및 설치 - https://spring.io/tools/sts/all/
- sts 다운로드
- sts.exe 실행
- 에러가 발생할 경우 -> 환경변수에 JAVA_HOME, path에 JAVA_HOMT/bin 추가
- 주의 : STS 설치 디렉토리 및 workspace는 한글 이름이 들어간 디렉토리를 사용하지 말 것.
STS 실행을 한다.
아래 두가지를 사용을 한다.
Spring Legacy Project - jsp
Spring Boot
구버전의 Spring Legacy Project를 사용하기 위해
help - marketplace에 가서 find에 spring 입력 - Spring Tool 3 Add-On을 install - 재시작
재시작 후 초기설정을 한다.
한글설정을 한다.(WINDOW-Preperenceis)
나. spring sample project를 다운받은 후 압축 풀고 import.
http://mannaedu.com/bbs/board.php?bo_table=pds&wr_id=74
샘플프로젝트는 메이븐 프로젝트다
메이븐(maven)
외부 라이브러리 관리를 간단하게 처리한다.
c:/사용자/계정/.m2 메이븐이 관리하는 외부라이브러리 관리경로다.
c:/사용자/계정/.m2 폴더에 저장되어 개발시에 프로젝트에 빠져있어 무게가 덜 나가게 한다.
배포될때는 프로젝트에 포함된다.
메이븐 저장소 : http://mvnrepository.com
pom.xml에서 다운받아서 약간 수정해준다.
<java-version>1.8</java-version>
<org.springframework-version>5.1.4.RELEASE</org.springframework-version>
다. spring01 프로젝트 생성 :
- Spring Legacy Project => Spring MVC project선택하면 관련된 파일들 다운받는다.
- 패키지 이름 : com.example.spring01
- 메이븐 라이브러리 : 사용자/.m2 디렉토리 확인
- spring 버전 변경 : pom.xml 수정
pom.xml을 보면 상단에
<project xmlns="http://maven.apache.org/POM/4.0.0" ... >
라이브러리를 개발자가 아닌 메이븐이 관리해주겠다는 내용
www.mbc.com => com.mbc.www
www는 바뀔수 있으니 artifactid이고
com.mbc는 groupId가 된다.
자바버전과 스프링버전 업그레이드
<java-version>1.8</java-version>
<org.springframework-version>5.1.4.RELEASE</org.springframework-version>
이렇게 하면 에러표시가 뜰 수 있는데 아래 버전을 수정한다.
- jdk 버전 수정 : Project Facets, Java compiler 버전 확인
project - Properties -
Java Compiler - JDK Compilance를 1.6 -> 1.8로 수정후 적용
Project Facets - Java를 1.6 -> 1.8로 수정후 적용
그래도 오류가 뜨면
Java Build Path - Libraries - JRE System Labrary 더블클릭
System Library의 Execution environment가 1.8인지 확인해보는데 이것보다
세번째 것이 더 낳더라.
Workspace default JRE (jdk1.8.0_112) 클릭
혹시 여기도 확인한다 Installed JRES... 클릭 - Installed JREs 차이 뜨는데
jdk1.8... 에 체크되어 있으면 안된다. 밖에 버전과 이 안쪽의 버전이 맞는지 확인해야한다.
총 4개가 다 맞아야 한다.
JRE System = 1.8
Project Facets = 1.8
Compile = 1.8
pom.xml = 1.8
- 2019년 1월 현재 스프링의 최신 버전은 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
아. 메이븐 빌드 에러 발생시 해결 방법
1. Java Build Path에서 jdk 버전을 1.8로 조정
2. Project Facets에서 jdk 버전을 1.8로 조정
3. 프로젝트 > Properties > Deployment Assembly > Add > Java Build Path Entries > Maven Dependencies 선택
스프링3 이하버전에서는 적용안됨 (최신버전만 체크)
4. pom.xml에서 spring version을 낮은버전으로 조금씩 조정해보면 해결되는 경우 있다.
5. 프로젝트 clean, server clean (톰킷 우클릭 - Clean, Clean Tomcat Work Directory)
5.1 한 가지더 우클릭 - Maven - Update Project - Update Maven Project - Force Update 체크
pom.xml에 있는 파일들을 새로 다운로드 받는다.
6. STS를 종료한 후 메이븐 저장소(.m2) 삭제, STS 재시작
저장소(.m2) 삭제해도 스프링을 시작시키면 다시 다운받는다.
그래도 안된다면 (이런 경우)
<java-version>1.8</java-version>
<org.springframework-version>5.1.4.RELEASE</org.springframework-version>
이렇게 했는데 아래의 다른 라이브러리 버전은 낮다.
호환이 잘 안되는 버전이 있다.
전반적으로 설정을 바꾼다.
그래서 전에 다운받아 설치했던 sample 프로젝트에 있는 내용을 복사한다.
- sample 프로젝트에서 설정파일 복사 :
시간상 문제로 복사를 하고 이해를 먼저 해본다.
1. pom.xml 복사
2. src/main/resources/mappers 디렉토리 생성
3. src/main/resources/mappers/sampleMapper.xml 복사
4. src/main/resources/log4j.xml 복사
5. src/main/resources/log4jdbc.log4j2.properties 복사
6. src/main/resources/logback.xml 복사
7. mabatis-config.xml 복사
8. src/main/webapp/WEB-INF/web.xml 복사
9. src/main/webapp/WEB-INF/spring/root-context.xml 복사
10. src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 복사
복사 후에 클린 작업을 해본다.
1.프로젝트 clean
2. Tomcat clean 2가지
3. 메이븐 클린 - Force Update 체크함 (전체적으로 다운로드 다시 받는다)
복사 후에 돌려본다.
project - run (버튼누름) 하면 tomcat 설정이 나와야 한다. 없으면 추가
Java Build Path에서 tomcat을 추가할 것.
Java Build Path - Add Library - Server Runtime - Apache Tomcat V9.0을 설치
아파치 톰킷이 목록에 보이지 않으면 톰킷9.0을 다운받아서
server - runtime에 추가하지 않아서다.
참고 : http://blog.naver.com/PostView.nhn?blogId=dg_667&logNo=220600222121
Library 탭에 3가지 (Apache, JRE, Maven)가 있어야 한다.
Servers 탭에 우리가 만든 톰킷이 있으면 내려준다.
Servers - Add and Remove - Configured에 spring01만 있어야한다.
처음부터 POM.XML 파일의 내용을 복사붙여넣기 하면 에러가 잘 나지 않는다. 아래에러가 나지 않았다.
한글깨지는 것은
시작을 누르면 에러발생
The archive: C:/Users/i5/Downloads/apache-tomcat-8.0.43-windows-x64/apache-tomcat-8.0.43/bin/bootstrap.jar which is referenced by the classpath, does not exist.
참고 http://blog.naver.com/PostView.nhn?blogId=woni0221&logNo=220090667504
Server - tomcat더블클릭 - open laounch configuration 클릭 - Classpath에서 User Entries의 bootstarp.jar 파일 삭제 (bootstarp이 위와 두개로 잡혀있는데 위의 경로에 있는 파일 삭제)
프로젝트의 내용을 본다.
HomeController 클래스를 보면
@Controller 가 붙어 있으면 '서블릿 클래스'가 된다는 뜻이다.
@RequestMapping(value = "/", method = RequestMethod.GET)
이렇게 되어 있으면 여기가 시작 페이지란 뜻이다.
이 url과 매칭이 된다. (http://localhost/spring01/)
sts-4 부터는 spring legacy project를 지원하지 않으므로 Eclipse Marketplace에서
Spring Tools 3 Add-On 3.9.7 Release를 추가 설치해야 함.
sts-3 플러그인 다운로드
Help > Eclipse Marketplace > spring으로 검색 > Spring Tools Add-On 3.9.7.Release 확장 프로그램 설치
4) 프로젝트의 기본 설정을 한다.
import시 - copy projects into workspace로 복사해서 가져온다.
스프링부트는 jsp만쓰지 않고 다른 템플릿을 써라고 한다.
jsp템플릿을 추가해야 한다.
help - install new software
work with: 2018-12 - http://download.eclipse.org/releases/2018-12 선택
java web으로 검색
Eclipse Java Web Developer Tools 선택
설치 후 재시작 -
window - preferences - Web - JSP Files 확인
jsp utf-8인지 확인
라) JSP 템플릿 편집(있으니깐 패스)
window - preferences - Web - JSP Files - Editor - Templates - New JSP FILE(html) 선택 후 - Edit클릭
New JSP FILE(html5)
바) Get 방식의 한글데이터 처리(tomcat 구버전)
Server.xml 편집
URIEncoding="utf-8" 속성 추가(2군데)
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="utf-8" />
<Connector port="8009" protocol="AJP/1.3"
redirectPort="8443"
URIEncoding="utf-8" />
톰킷을 구동시키는 툴이 안보이면 설치한다.
install new software - 2018-12 - http://download.eclipse.org/releases/2018-12 선택 java로 검색 Eclipse Java EE developer tools
프로젝트 - Properties - Deployment Assembly 에 들어가면
Maven Dependences가 안보이면
add - Java Build Path Entries - Maven Dependences 선택
최종적으로 프로젝트 실행할때
servlet-context.xml의 맨 아래부분을
<context:component-scan base-package="com.example.example" />
example을 spring01로 수정해야 함.
example01이 아님....
JSP파일에 한글이 깨지면 아래코드를 추가한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
'프로그래밍 > JAVA & SPRING' 카테고리의 다른 글
[기타] [빵형] 코드로 배우는 스프링 (0) | 2020.06.07 |
---|---|
[LifeSoft] spring 4강 Controller와 View의 연결 방법 (0) | 2020.06.07 |
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 (0) | 2020.06.07 |
MyBatis 프레임워크 1 - MyBatis Getting Started (박재성) (0) | 2020.06.07 |
"토비의 스프링 그렇게 보지 마세요." (백기선 : 스프링 가이드) (1) | 2020.06.07 |