스프링 부트 시작하기
스프링 부트 소개
- 토이 수준이 아닌 Spring 기반의 Production-grade의 독립적 어플리케이션을 빠르고 쉽게 만들 수 있도록 도와줌
-
Opinionated view: 개발자가 직접 설정하지 않고도, Spring boot가 정의하는 Convention을 자동으로 설정해주는 것
- 따라서 모든 것을 일일이 설정하지 않아도 됨
- Spring platform 뿐 아니라, third-party library에 대한 설정도 자동으로 해줌
- ex) Tomcat의 8080 port 설정...
- 스프링 부트의 목표
- 모든 스프링 개발에 있어 빠르고, 폭 넓은 사용성을 제공
- Opinionated view를 제공하지만, 개발자가 원할 시 쉽고 빠르게 설정 변경 가능
- 비즈니스 로직을 구현하는데 필요한 기능 뿐 아니라 Non-functional한 기능도 제공
- xml 설정을 더 이상 하지 않고, code generation을 하지 않음
- 쉽고 명확하며, 더 편리하게 customizing이 가능해짐!
스프링 부트 시작하기
- group id는 보통 package명으로 설정
- spring boot의 parent로 spring-boot-starter-parent 추가해줌
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
-
Maven 간 프로젝트 계층 구조 만드는 것
- spring-boot-starter-parent를 부모 프로젝트로 설정
- Spring boot가 제공하는 의존성 관리와 매우 관련이 깊은 설정!
-
spring-boot-starter-web 의존성 추가
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- build plugin 추가
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- IntelliJ에서 psvm 으로 Main 함수 추가 가능
- mvn package로 maven project build 가능
- jar 파일을 결과물로 생성!
- 이후, java -jar 'jar 명'으로 jar 파일 생성 가능
스프링 부트 프로젝트 구조
- 메이븐 기본 프로젝트 구조와 동일
- 소스 코드
- 소스 리소스
- classpath가 root dir 의미
- 테스트 코드
- 테스트 리소스
- @SpringbootApplication이라는 annotation이 달려 있는 MainApplication class는 가장 최상위 패키지에 두는 것이 추천됨
- @SpringbootApplication을 기점으로 Component scan을 하기 때문
- java 폴더 바로 밑에 Main class 두게 될 경우, 프로그램에 존재하는 모든 패키지를 뒤져서 component를 찾는 비효율 발생
- 따라서, 다른 패키지에 있는 moduleㅡㄹ은 component로 등록이 안되기 때문에 디렉토리 구조를 설정는데 주의!
'Software Convergence > Spring, Spring boot' 카테고리의 다른 글
백선장의 스프링 부트 (3) (0) | 2018.11.06 |
---|---|
백선장의 스프링 부트 (2) (0) | 2018.11.05 |
[패스트캠퍼스] Spring boot camp #3 (0) | 2018.10.21 |
[패스트캠퍼스] Spring boot camp #2 (0) | 2018.10.13 |