목차
- Spring 프로젝트 생성
- 라이브러리
- View 환경설정
- View 정리
- 빌드하고 실행하기
1. Spring 프로젝트 생성
전 게시물에서 말한 https://start.spring.io/ 을 사용합니다
제가 사용한 설정 (강의에선 java 11버전 Spring Boot 2.x.x)
Project : Gradle-Groovy
Language : Java
Spring boot : 3.0.6
java : 17
Dependencies :spring web,Thymeleaf (ADD DEPENDNCIES에서 spring web,Thymeleaf를 불러옵니다)
맨아래 왼쪽에 있는 GENERATE를 누르면 zip파일 형식으로 다운로드 됩니다!
ZIP파일은 스프링 부트 스타터 사이트에서 만든 스프링 프로젝트입니다.
압축을 풀고나서
intellij에서 build.gradle를 오픈을 합니다
오픈후에 많은 다운로드및 설정이 진행되고 마무리된다. (마무리하고 Gradle JDK설정의 1번은 하는 것을 추천한다)
설정진행하다가 Error가 뜬다면..?
( 설치한 OpenJDK와 부트스타터사이트에서 설정한 Java 의 버전이 동일하다고 할경우)
1) Intellij JDK 설치확인
왼쪽 위에 있는 File -> Project Structure 에서
Project Settings -> project에서 SDK를 필요한 JDK로 지정해줍시다.
2) Gradle JDK 설정
File -> Settings
- Gradle가 기본설정인데 실행 속도가 느리기떄문에 다음과 같이 설정해놨다.
- Gradle의 SDK설정이 잘되어있는지 확인하기 바란다.(필자는 zulu-17을 사용하기에 설정확인을 했다)
그후 문제가 생긴 에러코드에서 우클릭후 다시 돌려보면 재설정및 재설치가 되어 라이브러리등 설치가 됨을 알수있다 .
( build.gradle의 이부분을 확인하여 자신이 사용하는 위에서 설정한 버전과 같은지 확인하고
다를경우 프로젝트를 다시 만들거나 JDK를 재설치한다.)
2. 라이브러리
Gradle은 의존관계가 있는 라이브러리들을 함께 다운로드한다.
스프링 부트 라이브러리
- Spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣 (웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
- spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-core
- spring-boot-starter-logging
- logback, slf4j
- spring-boot
테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
3. View 환경설정
스프링부트가 제공하는 Welcome Page기능을 이용해서 Welcome Page를 만들었습니다.
scr/main/resources/static에
html파일을 하나만들어줍니다
필자는 index.html 를 생성했습니다
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>안녕하세요 Dohi입니다 </p>
<a href="/hello">안녕안녕하세요:)</a>
</body>
</html>
그후 run을 실행시킨후에 확인해본다
여기서 error가 뜨는 사람이 있다면 아래와 같은 코드인경우 해결방안을 이와같습니다
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
Process finished with exit code 1
해결방안
1) 8080을 할당중이여서 빼앗기
cwd에 netstat -ano | findstr :8080
입력하여 사용중인 PID확인후 제거하기
필자는 .. 학교과제로 사용해야하는 프로그램이 선점했기 때문에 다른 방법으로 우회했습니다.
2) 우리가 피해서 8081을 사용하기
여기있는 application.properties에 서버 포트값을 변경해준다
없을경우 추가를해서 만들어준다
그러고 다시 run을 하면 정상적으로 돌아갈 것이다
localhost:8080을 주소창에 입력해서 확인한다 (위에 필자처럼 오류가 있는경우로 우회한경우는 8080이 아닌 8081로한다)
결과물
4. View 정리
스프링 부트가 제공하는 Welcome Page
- static/index.html을 올려두면 기능 제공
- https://docs.spring.io/spring-boot/docs/current/reference/html/web.html#web.servlet.spring-mvc.welcome-page
thymeleaf 템플릿 엔진
: loop를 쓰거나 모양을 바꿀 수 있다.
- 공식 사이트 : http://www.thymeleaf.org/
- 스프링 공식 튜토리얼 : http://spring.io/guides/gs/serving-web-content/
- 스프링부트 메뉴얼 : http://docs.spring.io/spring-boot/docs/3.0.6.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-template-engines
thymeleaf 템플릿엔진 동작 확인
- 내장 톰켓 서버를 통해 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿엔진 기본 viewName 매핑
- resources:templates/+{ViewName}+.html
위에서 저와 같은 방법으로 포트를 변경한 경우는입니다:)
5. 빌드하고 실행하기 (윈도우기준)
우선 Cmd창을 킵니다.
1. gradlew.bat build (추가내용 + ) ./gradlew build (리눅스혹은 git bush 맥 사용자)
2. cd build/libs
3. java -jar hello-spring-0.0.1-SNAPSHOT.jar
4. 실행 확인
cmd창에서 파일이 저장되어있는 폴더까지 들어갑니다!
gradlew.bat build 입력후
위에 빌드가 끝나면 아래처럼 빌드파일이 생깁니다.
build파일 안에 있는 libs파일로 들어간다
그후 java -jar hello-spring-0.0.1-SNAPSHOT.jar 입하면 실행이된다 (실행하기전 intellij에서 run되어있는지 확인)
(에러가 뜨셨다면 0. Spring start ( Intellij 설치 ,spring.io )의 JAVA_HOME설정!확인)
+)
build는 어떻게 지우나요!
gradlew.bat clean 또는 gradlew.bat clean build
둘의 차이점
프로젝트 빌드 제거 gradlew.bat clean
제거와 동시에 새로운 빌드 gradlew.bat clean build
+추가내용) ./gradlew clean ./gradlew clean build (리눅스혹은 git bush 맥 사용자)
왼쪽엔 build파일이 없고 오른쪽에는 build파일이 있는것이 확인된다!
이렇게 프로젝트 환경설정을 배워봤습니다 !
'3.1 SpringBoot > SpringBoot 강의정리' 카테고리의 다른 글
1-4 스프링 빈과 의존관계 (0) | 2023.05.14 |
---|---|
1-3. 회원 관리 예제 (0) | 2023.05.14 |
1-2. 스프링 웹 개발 기초 (0) | 2023.05.13 |
0. Spring start (JDK설치 ,IDE(Intellij) 설치 ,spring.io ) (0) | 2023.05.07 |
Inflearn-Spring 목차 (0) | 2023.05.07 |
댓글