dev/spring boot
spring boot
erea
2018. 6. 24. 19:48
Spring boot
Spring boot란?
Spring Boot는 내장된 웹 애플리케이션 서버(Tomcat, Jetty), 의존성을 손쉽게 관리할 수 있는 스타터 POM(Project Object Model), 설정의 표준화와 자동화 등으로 웹 애플리케이션의 개발과 운영을 이전보다 쉽게 할 수 있게 합니다.
Spring boot 장점
1. 자주사용하는 프로젝트 조합을 미리 만들어놨습니다.
일일히 라이브러리를 찾으면서 추가해줄필요없이 spring-boot-starter-web을 Maven 설정만해주면 관련라이브러리를 받아옵니다.
2. 설정을 자동으로 수행합니다.
@Enableautoconfiguratio 어노테이션의 같은경우 자동설정해주는 녀석으로 스프링부트의 마법이라고 불리웁니다.
비슷한 어노테이션으로 @SpringBootApplication 이 있는데
이것은 // @Configuration + @EnableAutoConfiguration + @ComponentScan 3가지 묶음으로 더욱 강력해진녀석입니다.
3. reactive web flux
reactive web flux 지원 (spring 5의 기능)
비동기 이벤트 처리가 클래스단위로 가능하여 고성능을 내게 해줍니다(nob blocking api 제공)
(spring boot2.0 이상부터)
spring boot는 즉 빠르고 쉽게 고성능 및 MSA를 가능하게 하는 프로젝트
Spring boot 세팅
시작하기 앞서 jdk 및 inteliJ의 설치과정은 생략합니다.
1. https://start.spring.io/ 접속해서 원하는 컴포넌트 선택후 Generate Project 클릭
(hello world를 위해 간단하게 Web만 선택)
그래들로 프로젝트 구성하기 위해서 꼭 위에 Maven→ Gradle로 변경후 generate
2.inteliJ 실행 file→open 압축해제한 폴더 열기
환경
java :jdk1.8.0
framework : spring boot 2.0(spring 5.0)
tool : inteliJ
build tool : gradle 4.5.1
3.gradle 설정파일 열기 build.gradle
auto import 설정 ok 하면 자동으로 gradle 파일이 변경될때마다 자동으로 빌드된다.
(만약 자동으로 import안된다면 오른쪽에 gradle버튼을 눌러 파란 버튼 Refresh all Gradle project 버튼 클릭 )
4. 그래들 빌드 확인
5. 프로젝트 실행
src/main/com/example/demo/DemoApplication → run (shift+f10)
6. 웹서버 확인
127.0.0.0.1:8080으로 확인해보면 아래와 같이 뜹니다 (컨트롤러 부분을 설정해주지 않아서 아무것도 안뜹니다.)
7. 컨트롤러 생성
어플리케이션 패키지에 컨트롤러 패키지를 만들어서 DemoController를 하나 만듭니다
(주의: SpringbootApplcation과 상위 패키지가 다를경우 ComponentScan으로 일일이 찾아줘야 하므로 같은 패키지에 위치시키는게 좋습니다.)
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/") public String index() { return "hello world"; } }