스프링을 편리하게 사용하도록 도와주는 것이 스프링 부트인데,
쉽게 이야기해서 스프링을 편리하게 사용하도록 도와주는 껍데기.
예전에는 프로젝트를 밑바닥부터 만들었는데 이젠 스프링부트로 쉽게 만들수있다.
https://start.spring.io
필요한 라이브러리를 땡겨서 오고 빌드하고 라이프사이클까지 관리하는 툴
요즘은 Gradle을 많이 쓴다. 스프링 라이브러리 자체도 Gradle로 많이 넘어온 상태
스냅샷이라는 말은 만들고 있다는 뜻. M1은 정식 릴리즈가 되어있지 않음
어떤 라이브러리를 쓸껀가?
웹을 만들거기 때문에 Spring Web을 선택하고, html을 만들어주는 템플릿 엔진이 필요한데 Thymeleaf을 부른다.
- 📁.idea
인텔리제이 설정파일
- 📁gradle
gradle 관련 폴더
- 📁src --------📁main----📁java에 실제 패키지파일
| |
| --📁resources 자바파일을 제외한 모든파일
----📁test 테스트 코드와 관련된 소스
이렇게 나뉘어져있다는건 테스트코드가 굉장히 중요하다는 뜻
이 부분이 중요함.
옛날에는 한땀한땀 모두 작성한다고 하더라.
지금은 개발자 친화적으로 스프링부트가 나오면서 설정하기가 편해짐.
그리고 지금은 Gradled은 버전설정하고 라이브러리 땡긴다는 정도만 이해해도 됨.
dependencies 에는 아까 선택한 디펜던시가 들어가고 테스트관련된거 기본적으로 또 들어감
📁java.hello.hellospring 패키지 내에 있는 HelloSpringApplication 을 실행해본다.
(프로젝트 생성할때 홈페이지에서 네이밍을 hello 로 지음)
12:43:49: Executing task 'HelloSpringApplication.main()'...
> Task :compileJava
> Task :processResources
> Task :classes
> Task :HelloSpringApplication.main()
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.2)
2021-02-02 12:44:04.465 INFO 40344 --- [ main] h.hellospring.HelloSpringApplication : Starting HelloSpringApplication using Java 13.0.2 on Dongkyus-MBP.fritz.box with PID 40344 (/Users/kyu/study/hello-spring/build/classes/java/main started by kyu in /Users/kyu/study/hello-spring)
2021-02-02 12:44:04.478 INFO 40344 --- [ main] h.hellospring.HelloSpringApplication : No active profile set, falling back to default profiles: default
2021-02-02 12:44:06.850 INFO 40344 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2021-02-02 12:44:06.866 INFO 40344 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-02-02 12:44:06.866 INFO 40344 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.41]
2021-02-02 12:44:07.060 INFO 40344 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-02-02 12:44:07.060 INFO 40344 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2413 ms
2021-02-02 12:44:07.442 INFO 40344 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-02-02 12:44:07.752 INFO 40344 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2021-02-02 12:44:07.782 INFO 40344 --- [ main] h.hellospring.HelloSpringApplication : Started HelloSpringApplication in 4.231 seconds (JVM running for 4.97)
다음과 같이 나온다.
뭔진 모르겠지만 Tomcat started on port 부분을 보면 뭔가 8080포트에 연결 됐고 http와 관련 된게 있다라는 걸 알수있다.
그러고 나서 웹브라우저 주소창에 localhost:8080 라고 입력하고 다음과 같은 메시지를 보면 프로젝트 환경 설정에 성공한 것이다
스프링 어플리케이션이 실행되면서 톰캣이라는 서버를 내장하고 있어서 이렇게 접속이 가능한거다.
원래 gradle을 이용해서 실행되서 실행시에 조금 느린데 인텔리제이 설정에서 gradle 항목에서 build and run using: 과 Run test using: 을 인텔리제이로 바꾸면 좀 빠르게 실행이 가능하다.