spring이란 2003년에 최초로 서비스하며 java의 전반적인 모든 기능들을 다 제공하기에 볼륨이 매우크다. 즉, spring의 모든 기능을 외울 순 없고 본인이 필요한 것을 잘 찾고 적용하는 능력이 매우 중요하다.
maven이나 gradle같은 build tool들은 요즘에 의존관계를 다 관리를 해준다. 예를 들어 spring boot starter web을 땡기면 관련된 lib들을 다아~ 땡겨오는데 우선 밑에 사진을 봐보자
alt * 2
누르기를 통하여 잠깐 띄워서 볼 수 있다.(*)
이 붙어있는 것도 있는데 이는 중복된 것을 알아서 제거해준 것이다.resource/static/index.html
이 환경에 있는 인덱스 파일을 프로젝트 시작하면 바로 홈페이지화면(welcomepage)으로 띄워준다.
그래서 이와관련된 문서를 보고싶으면 spring.io에 들어가서 확인하면 된다.
또한 이 manual에서 검색할줄 알아야 한다.
<!doctype html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>thymeleaf</title>
</head>
<body>
<p th:text="'helo '+${name}">hello! empty</p>
</body>
</html>
<tag>
안에 있는 내용으로 치환되기 때문이다..html
파일의 절대경로를 복사하여 주소창에 붙혀넣으면 template engine은 실행되지 안지만 안의 내용을 확인할 수 있다.resources:templates/
+{ViewName}+.html
spring-boot-devtools
libary를 추가하면 html
파일을 컴파일(메뉴 build => Recompile)만 해주면 서버 재시작 없이 View 파일 변경이 가능하다. 즉, node.js의 nodemon 포지션으로 생각하면 되겠다.0.0.1-SNAPSHOT.jar
파일을 서버에 올리면 서버 배포가 된다. 그리고 java -jar
를 하면 실행이 된다../gradlew clean
,./gradlew clean build
를하면 된다.
spring에서와 같이 helloMvc con
에 name
과 model
의 2가지의 매개변수가 들어가고 name 변수
에는 @RequestParam
으로 url이동시 받아온 값이 들어가게 된다.
이때 @RequestParam은 get방식일경우 url에 주소name명?value로 들어가게된다.
참고로 저기 GetMapping의 Get은 Rest API의 Get과 같은 Get이다.
이때 parameter에 옵션값을 확인하고싶다면 ctrl + p 이런식으로 파라미터의 option값들을 볼 수 있음.
위의 일련의 과정을 시각화하면 다음과 같다.