본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# JAVA

Spring Boot 입문

by iamlucia 2020. 9. 1.

 

스프링 부트란, 

- 스프링 프레임워크를 기반으로 한 개발 플랫폼

- 마치 아두이노에 필요한 모듈을 꽂아 동작시키는 것처럼 스프링부트라는 플랫폼위에 Starter라는 라이브러리 기능들을 하나씩 얹으며 애플리케이션의 기능을 확장하는 기능

 

스프링 부트 구성요소에는,

빌드도구(그레이들, 메이븐)

스프링 프레임워크(버전 확인)

스프링 부트(버전 확인)

스프링 부트 스타터

 

xml이라는 구조를 가지고 작성되는 메이븐의 pom.xml

 

Build

 

생성된 기본 코드 구조를 살펴보면

(1) build.gradle

(2) 수동으로 로컬에 설치할 필요없이 프로그램에 내장시켜서 빌드하는 쪽으로 권장되는 방식 : wrapper

(3) 유닉스와 리눅스 계열에서 실행되는 스크립트 파일

(4) 윈도우계열에서 실행되는 배치 파일

(5) 프로젝트의 기본적인 구성을 정의하는 부분

src main java

src main resources

src test java

이는 Maven에서 가지는 기본적인 코드 구조

 

빌드가 실행되면 실제 컴파일단계에서는 src main 쪽이 컴파일이 되어 패키징되어 배포된다

 

실행가능한 JAR , WAR?

Executable

 

현재의 배포형태는

springboot jar 파일과 내장형(embeded)컨테이너(톰캣)를 한 데 묶어서 한 번더 패키징하는 Repackage되어

바로실행가능한 형태가 된다

 

스프링 부트는 Annotation기반 작동

1. 스프링 부트 애플리케이션이 시작되는 곳임을 선언

2.  애플리케이션의 컴포넌트 스캔 범위

5. 이러한 조건이 됐을 때 활성화를 하겠다는 의미

6. 스프링과 스프링부트 구분하기 위한 

 

SpringApplication.run 이라는 클래스가 실행되면서, 

안에서 springioc컨테이너 (프레임워크에서 자신이 객체를 관리하는 컨테이너)를 실행시키고

@이 붙은 부분을 기점으로 하여 하향식으로 밑에 있는 패키지를 탐색하는 것이 스프링 부트의 동작원리

 

 

의존성을 간결하게 지원해주는 Spring-boot-starter

이는 Spring-boot-autoconfigure및 dependencies 라는 모듈이 합쳐서 기본 동작을 하고

이 스타터를 기준으로 하여

스타터 웹, 스타터 시큐리티, 스타터 jpa 등 기능별로 모듈을 정의하고 의존성을 설명한다

=> 여기서 신경써야 하는 부분은 스프링 부트 버전, 사용하려는 라이브러리의 스프링 부트 스타터 지원 여부

지원하지 않으면 사용하려는 라이브러리 등록방법

 

깃헙 spring boot starter 목록 오픈소스에 다양한 지원모듈 확인

 

Auto Configuration 

스타터들이 추가가되면 자동구성된 구성들이

관례적인 bean구성을 하게 됨 

 

External Configuration

적용 우선순위

실행인자

Spring_Application_JSON

환경변수

 

'자기발전소 > # JAVA' 카테고리의 다른 글

Spring Boot 공부 기록 1  (0) 2020.11.04
JAVA : SingleTon 싱글톤 패턴  (0) 2020.11.03
JAVA : 구구단, 로또  (0) 2020.11.03
JAVA : 에라토스테네스의 체  (0) 2020.11.03
JAVA : 재귀 함수  (0) 2020.11.03