[Spring Boot] Spring Boot Tutorial #1 - Hello World
Goal
- Spring Boot 사용법 익히기
- Spring Boot 란
- Spring Boot 프로젝트 생성 및 빌드
들어가며
- 이 튜토리얼은 Tutorialpoint Spring Boot을 기반으로 작 성
- 이 튜토리얼은 자바 개발자들이 제품화할 수 있는 스프링 어플리케이션을 최소한의 구성으로 개발할 수 있도록 하기 위해 작성
- 독자에게 Starters, Auto-configuration, Beans, Actuator 과 같은 Spring Boot의 주요 기능을 설명/실습하고 독자의 실력을 중급정도의 수준으로 끌어올리는 것을 목표로 한다.
Spring Boot란
- 마이크로서비스를 구성하기 위한 자바 기반의 오픈소스 프레임워크
- Spring Boot를 이용하여 단독 또는 완성도 있는 Spring 어플리케이션을 쉽게 만들 수 있다.
- 높은 개발 생산성
- 마이크로서비스를 개발하기 위한 쉬운 구조로 되어 있고, 엔터프라이즈 어플리케이션을 쉽게 개발할 수 있다.
[개발목적]
- Spring의 복잡한 XML 설정 생략
- 쉽게 완성도 있는 Spring 어플리케이션을 개발하기 위해서
- 어플리케이션을 쉽게 구축하기 위한 더 쉬운 방법을 제공
[특장점]
- Java Beans, XML 설정, 데이터베이스 트랜잭션 등을 유연하게 설정할 수 있다.
- 강력한 배치 처리와 REST endpoints를 관리
- 자동으로 설정. 복잡한 수동 설정 과정을 생략할 수 있다.
- Spring 어플리케이션에서 지원하는 어노테이션을 제공
- 쉬운 의존성 관리
- 서블릿 컨테이너를 내장
마이크로 서비스란?
- 개발자들이 독립적으로 서비스를 개발/배포하도록 해주는 아키텍처.
- 각 서비스는 각자의 프로세스를 갖는다. 이 프로세스는 비지니스 어플리케이션을 지원하는 경량화된 모델을 구성한다.
- 마이크로서비스는 아래와 같은 장점을 갖는다.
* 쉬운 배포
* 쉬운 확장성
* 컨테이너와 호환 가능
* 설정 최소화
* 높은 생산성
Practice
- Hello World 출력 Spring Boot 프로젝트
1. Eclipse Spring Boot 프로젝트 생성
- New -> Other… -> Spring Boot -> Spring Starter Project
2. Maven Dependecies 추가
<!-- Application 모니터링 및 관리에 필요 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- 보안에 필요 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- REST Endpoints 사용에 필요 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 웹 어플리케이션을 생성에 필요 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- 테스트에 필요 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
3. Spring Boot Application 클래스 구현
- Spring Boot 프로젝트 생성 시, 자동으로 생성
- 반드시 메인 메소드 필요
- Spring Boot 구동 시, 가장 먼저 실행되는 Entry Point
- @SpringBootApplication 어노테이션 선언
- @EnableAutoConfiguration, @ComponentScan, @SpringBootConfiguration Annotation을 포함
- @EnableAutoConfiguration : JAR dependencies 기반으로 자동으로 application을 설정
- @ComponentScan : 프로젝트에서 추가된 스캔될 컴포넌트를 지정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | package io.dorbae.springboot.tutorial; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /***************************************************************** * * TutorialSpringbootApplication.java * ***************************************************************** * * @version 0.0.0 2019-01-14 18:18:07 dorbae 최초생성 * @since 1.0 * @author dorbae(dorbae.io@gmail.com) * */ /* * @SpringBootApplication Annotation * 실행될 Spring Boot 어플리케이션의 시작 포인트 * @EnableAutoConfiguration, @ComponentScan, @SpringBootConfiguration Annotation을 포함 * @EnableAutoConfiguration Annotation * JAR dependencies 기반으로 자동으로 application을 설정 * @ComponentScan Annotation * 프로젝트에서 추가된 스캔될 컴포넌트를 지정 */ @SpringBootApplication public class TutorialSpringbootApplication { public static void main(String[] args) { SpringApplication.run(TutorialSpringbootApplication.class, args); } } |
4. REST Endpoint 클래스 구현
- @RestController 어노테이션 선언
- @RequstMapping 어노테이션으로 Requset URI 매핑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package io.dorbae.springboot.tutorial.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /***************************************************************** * * HelloController.java * ***************************************************************** * * @version 0.0.0 2019-01-14 18:28:07 dorbae 최초생성 * @since 1.0 * @author dorbae(dorbae.io@gmail.com) * */ @RestController public class HelloController { // Request URI 매핑 @RequestMapping(value = "/hello") public String hello() { // 내용 출력 return "Hello World"; } } |
5. 빌드
mvn clean install
6. 실행
java -jar [JAR_NAME]
7. 브라우저에서 확인
- http://localhost:8080/hello 로 접속
7.1. 로그인 페이지
- Dependecies에 spring-boot-starter-security이 포함되어 있으면 서버 접속 시, 로그인 필요
- Default user는 user, password는 서버 구동 시 출력
댓글남기기