Spring Boot

Codren·2021년 9월 5일
0

Section 1. Spring

1. Spring 구조

  • WAS / Servlet / JSP / DI / IOC / MVC ... 등등 여러 기술 스택과 설정이 필요함




2. Spring Boot 필요성

  • Spring 으로만 Web App 을 구성할 때 필요한 밑단 설정들을 Boot 가 알아서 처리해줌




3.Spring Boot 의 특징

  • 'starter' dependencies 제공 (jar 파일, 라이브러리 등)
  • Automatically configure 제공 (xml, annotation, configuration 등)
  • No code generation / No requirement for XML



Section 2. Spring Boot 프로젝트

1. Java 11




2. IntelliJ




3. Spring Boot start

  • Spring Boot Start
  • Spring Boot 기반으로 Java Spring 프로젝트를 생성해주는 initializer
  • Maven / Gradle - 필요한 라이브러리, 빌드 및 컴파일 등 프로젝트 개발 자동화 툴
  • Spring Web - RESTful, Spring MVC, Apache Tomcat container
  • Thymeleaf - HTML 생성 엔진




4. IntelliJ starter 열기

  • 다운version = '0.0.1-SNAPSHOT'받은 Starter 에서 build.gradle Open




5. build.gradle

  • Eclipse-Spring-Maven 환경에서의 pom.xml 역할
  • version - Web App 프로젝트의 버전을 나타냄
  • repositories - 'mavenCentral' 이라는 remote repository 참조
  • dependencies - 다운로드 받은 라이브러리들 (remote repository 참조)




6. Spring Boot Web App 실행

  • SpringApplication 클래스를 이용하여 프로젝트의 메인 클래스인 HelloSpringApplication 실행
  • 8080 포트로 Apache Tomcat 실행됨 (Spring Boot 에 내장되어있음)




7. IntelliJ Java 실행

  • Gradle 을 통해서 시작하지 않고 Java 를 통해 직접 실행 -> 속도 향상
  • IntelliJ IDEA 로 변경




8. Java 버전 설정

  • Gradle JDK 설정
  • 프로젝트 JDK 설정 (File - project structure)



Section 3. Spring Boot 라이브러리

1. 의존관계 라이브러리

  • Gradle / Maven 은 라이브러리의 의존관계 및 하위 라이브러리들을 자동으로 가져옴




2. Spring Boot 라이브러리

  • spring-boot-starter-web
    - spring-boot-starter-tomcat: 톰캣 (웹서버)
    - spring-webmvc: 스프링 웹 MVC
  • spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)

  • spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
    - spring-boot -> spring-core
    - spring-boot-starter-logging -> logback, slf4j




2. 테스트 라이브러리

  • spring-boot-starter-test
    - junit: 테스트 프레임워크
    - mockito: 목 라이브러리
    - assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
    - spring-test: 스프링 통합 테스트 지원

0개의 댓글