스프링 부트는 스프링 환경설정이 복잡하고 다소 진입장벽이 있는 점을 보완하여
라이브러리 의존성을 스타터 의존성으로 대체하고 선택한 항목별(web, sql, 등등)로 라이브러리를 자동으로 추가해준다.
때문에 바로 사용가능한 어플리케이션을 개발할 수 있다.
그루비로 컨트럴러 클래스 하나만 작성하고 해당 파일을 바로 실행할 수 있다.

스프링 부트의 핵심

자동구성 스프링 애플리케이션에 필요한 기능을 자동 구성한다(어노테이션)
스타터 의존성 선택한 기능에 따라 필요 라이브러리가 빌드에 추가된다
명령줄 인터페이스 애플리케이션 코드만 작성해도 애플리케이션 개발이 가능하다
액추에이터 어플리케이션 실행시 내부에서 일어나는 일을 알 수 있다.

스프링 부트 시작하기

1. 스프링 부트 CLI 설치
다운로드한 배포 버전 설치 압축풀고 패스 추가해주기
(유닉스 계열은 심볼릭 링크에 패스를 거는것이 유용하다)

2. SDKMAN 소프트웨어 개발 키트 매니저로 설치(http://sdkman.io)
$curl -s get.sdkman.io | bash
$source "/Users/username/.sdkman/bin/sdkman-init.sh"

$sdk install springboot
3. Homebrew로 설치(OSX) (http://brew.sh)
$ruby -e "$(curl -fsSl https://raw.githubusercontent.com/Homebrew/install/master/install)"
$brew tap pivotal/tap //스프링 개발사 피보탈 탭을 태핑한다

$brew install springboot
4. 맥포트로 설치(https://www.macports.org/install.php 버전별로 상이)
xcode와 command line tools 설치가 필요
$sudo port -v selfupdate
$sudo port install spring-boot-cli
$spring --version //설치후 버전확인
명령 자동완성 활성화
$. ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring
(sdkman설치후 bash용 현재 셸에만 적용된다)
$spring shell //스프링부트 cli셸
spring 입력하고 탭을 누르면 명령과 옵션 표시
명령 선택후 --입력 탭을 누르면 옵션표시

Spring initializr로 스프링 부트 프로젝트 구성하기
1. 웹 기반 인터페이스
http://start.spring.io
상세설정 switch to the full version

2. Spring Tool Suite(STS)
File > New > Spring Starter Project(인터넷이 가능해야 하고 방화벽 허용해야 한다)

3. IntelliJ IDEA
File > New > Project... 화면에서 Spring Initializr선택

4. 스프링 부트 CLI
$spring init -dwep,jpa,security --build gradle -p war myapp //-x
공백없이 입력해야 한다
-d 의존성 옵션(wep,jpa,security추가)
--builid 그레이들 메이븐 선택(기본 메이븐)
--packageing -p 실행 가능한 war(jar or war:독립실행가능) 파일 생성
--extract -x 생성된 프로젝트를 받아서 현재 디렉토리에 푼다
$spring help init $spring init --list init 매개변수와 지원기능 확인

스프링 부트 프로젝트 구조(myapp프로젝트)
build.gradle 그레이들 빌드 명세(maven이면 pom.xml)
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties
gradlew 그레이들 래퍼
gradlew.bat 그레이들 래퍼 윈도우에서 사용
src/main/java/myapp/MyappApplication.java 애플리케이션 시작main
src/main/resources/application.properties 필요한 구성 프로퍼티
src/main/resources/static 자바스크립트, 스타일시트, 이미지 등 정적 컨텐츠
src/main/resources/templates 모델 데이터 렌더링할 템플릿
src/test/java/myapp/MyappApplicationTests.java 애플리케이션 컨텍스트 로드 JUnit 테스트 클래스
블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,