Springboot 기본

김정훈·2024년 7월 22일

Spring

목록 보기
17/24

스프링 부트

1. 소개

  • 내장 서버를 이용해 별도의 설정 없이 독립 실행이 가능한 스프링 애플리케이션
  • 톰캣, 제티 또는 언더토우와 같은 웹 애플리케이션(WAS) 자체 내장
  • 빌드 구성을 단순화하기 위한 Spring Boot Starter 의존성 제공
  • XML 설정 없이 단순 자바 수준의 설정 방식 제공
  • JAR를 이용해 자바 옵션만으로 배포 가능
  • 애플리케이션의 모니터링 및 관리를 위한 스프링 액추에이터 제공

2. 설정

spring initializr

context-path = '/'
springboot dev tools : 서버 자동 재시작, 라이브 리로드(템플릿쪽 변경 사항 👉 브라우저 새로고침)

application.properties

server.port=3000
spring.application.name=day01
spring.devtools.livereload.enabled=true

1) 프로필

Spring.profiles.active : 기본값 default
설정 값에 따라서 application - 환경변수명.properties로 동작

실행시 환경 변수 설정 방법
-D환경 변수명 = 값
--환경변수명 = 값

application-prod.properties

server.port=4000

application-dev.properties
개발환경

application-test.properties
테스트환경

.gitignore

application-dev.* //추가

2) jar

명령어

  • gradle build / mvn package(메이븐) : 컴파일 👉 테스트 👉 jar
  • gradle jar
  • gradle bootJar : 컴파일 👉 jar
  • gradle bootRun : 스프링 부트 시작

java -jar jar파일

  • 예) 프로필 prod
    java -jar -Dspring.profiles.active=prod jar 파일명
    java -jar jar 파일명 --spring.profiles.active=prod
//prod 설정 프로필로 실행.
java -jar -Dspring.profiles.active=prod day01-0.0.1-SNAPSHOT.jar
java -jar day01-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=prod

3) 의존성

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-validation'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	testRuntimeOnly 'com.h2database:h2'
	runtimeOnly 'com.oracle.database.jdbc:ojdbc11'
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
	annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
	annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

YAML(YAML Ain't Markup Language)

확장자
yaml
yml


application.yml

server:
  port: 3000

spring:
  application:
    name: "Day01"

  # 라이브 리로드 설정
  devtools:
    livereload:
      enabled: true


file:
  upload:
    path: # -는 리스트 형태의 값  - file.upload.path
      - D:/uploads/
      - D:/uploads2/
    url: /uploads/ # file.upload.url

설정 파일(yml. propertirs)에 환경 변수로 치환되는 부분을 직접 설정
${환경변수명}
: 민감한 설정은 직접 코드로 작성 X, 환경 변수로 실행 중에 설정

3. @Scheduled

1) fixedDelay

2) fixedRate

3) initialDelay

4) cron

5) @EnableScheduling

profile
안녕하세요!

0개의 댓글