일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주사위 게임1
- ruby설치
- 조건에 맞게 수열 변경하기 3
- 프로그래머스 자동커밋
- 프로그래머스 문자열 정렬하기 (1)
- 배열 만들기1
- swift
- 프로그래머스 배열 만들기1
- 연산자
- 문자열 정렬하기 (1)
- 프로그래머스 최댓값 만들기(2)
- Til
- 프로그래머스 조건에 맞게 수열 변경하기 3
- array
- n번째 원소까지
- Break
- 스파르타코딩캠프
- 프로그래머스 문자열 붙여서 출력하기
- cocoapods 설치 오류
- 프로그래머스 n의 배수 고르기
- 문자열 붙여서 출력하기
- 프로그래머스 n번째 원소까지
- 프로그래머스 주사위 게임1
- 스페인어
- 스파르타 코딩클럽 내일배움캠프
- continue
- 프로그래머스 암호 해독
- 객체지향
- Error installing cocoapods
- 프로그래머스
- Today
- Total
dev._.note
[SPRING] Springboot 본문
Springboot?
Springframework를 기반으로 한 개발플랫폼
Main Contributor : Phill Webb
- 1.0 : 2014
- 2.0 : 2018.3.1
기능정의
- 단독실행 가능한 스프링 어플리케이션 생성
- 내장 컨테이너로 톰캣, 제티, 언더토우 중에 선택 (Use Jetty instead of Tomcat)
- Starter를 통해 가능한 간결한 의존성 구성지원
- 스프링에 대한 자동구성 Auto configuration제공
- 더이상 xml구성 필요 없음
- 제품출시(release) 후 운영에 필요한 다양한 기능(상태점검, 모니터링) 제공 (health-check : 주기적으로 어플리케이션 다운여부 확인)
구성요소
- build도구 : maven | gradle
- 스프링프레임워크 : 4.x | 5.x
- 스프링부트 1.x | 2.x (1.x는 지원종료)
- springboot-starter : 의존성
Spring Initializer
언어
- Java
- Kotlin
- Groovy
빌드도구
- gradle : build.gradle
- maven : pom.xml
Dependencies
- web
- lombok
- jpa : 자바측 orm 지원 hibernate
- h2
network에서 get방식의 요청이 이루어지는 것 확인.
실행파일
- war : 기존재하는 was서버에 배포
- jar : executable jar(혹은 war)
- docker, 쿠버네티스 등에 배포
springboot starter 의존성과 설정을 자동화해주는 모듈.
- springboot-autoconfigure
- springboot-dependencies
개발자가 신경써야할 것.
- springboot 버전
- 사용하려는 라이브러리의 starter지원여부
- starter미지원시 라이브러리 등록방법
- Autoconfiguration
- External Configration : 적용우선순위에 따라 적용
- 실행인자
- spring_applicaiton_json
- 환경변수
- 기타
- application.yml, application.properties
- application-{defaultprofiles}.yml, application={defaultprofiles}.properties
gradle sts에는 기본gradle플러그인을 별도로 설치해야한다.
현재 marketplace에는 3.x버젼만 설치가능. starter project에서 선택할 수 있는건 2.x까지이므로, 사용자 수동설치 요망 Eclipse Buildship: Eclipse Plug-ins for Gradle 2.2.2
설치 Update Site : http://download.eclipse.org/buildship/updates/e48/releases/2.x/2.2.2.v20181003-1024
브라우져에서 다음 url을 넣으면 zip파일 다운로드 가능
http://start.spring.io/starter.zip?
name=springboot&
groupId=com.kh&
artifactId=springboot&version=0.0.1-SNAPSHOT&
description=Demo+project+for+Spring+Boot&
packageName=com.kh.springboot&
type=gradle-project&
packaging=jar&
javaVersion=1.8&
language=java&
bootVersion=2.1.2.RELEASE&dependencies=lombok&
dependencies=h2&
dependencies=data-jpa&
dependencies=web
인터넷이 가능한 환경에서만 프로젝트 생성가능
@appliction.yml application.properties파일을 사용하지 않음. 확장자 yml로 변경 Ctrl+space통해서 사용가능한 명령어 확인가능.
yml파일 특징 yml? yaml?
- key-value : : 로 key-value구분. 공백반드시 필요빈객체
- 들여쓰기로 부모-자식을 구분 spring.main.web-environment은 deprecated
spring:
main:
web-application-type: SERVLET
# OpenType - WebApplicatoinType클래스에 enum중에 선택가능.
server:
port: 9999
프로젝트 root directory에서 build하기 (gradlewrapper.jar파일에 의해서 build됨)
- 윈도우 : gradlew.bat build
- 리눅스 : gradlew build
build/libs/springboot-0.0.1-SNAPSHOT.jar파일 생성 이때, 결과물은 실행관련라이브러리 모두 포함된 fat.jar이다.
이를 압축해제해서 내용물 확인 unzip springboot-0.0.1-SNAPSHOT.jar
@META-INF/MANIFEST.MF
- 버젼
- 실행클래스 및 실행메소드 정의
- Manifest-Version: 1.0 Start-Class: com.kh.springboot.SpringbootApplication Main-Class: org.springframework.boot.loader.JarLauncher
배너변경하기 커스텀배너를 사용할 수 있다. Using Custom Banners in Spring Boot 커스텀배너 제작 사이트
src/main/resources/banner.txt파일로 저장할 것. build시에 자동으로 파일을 참조.
- @Configuration + @Bean : 외부라이브러리등을 빈등록시.
- @Component : 개발자가 직접 작성한 클래스 빈등록시
DI 방법
- 생성자 주입(권장) : 생성자 하나일 것. @Autowired 불필요
- setter주입 @Autowired
- 필드 선언 : @Autowired
Lombok 사용하기 최초 설치 필요함. lombook.jar를 실행해야함: cmd C:\\dev\\sts\\sts-3.9.5.RELEASE\\sts-3.9.5.RELEASE>java -jar lombok.jar 최초실행시 STS.exe에 대해 바인딩함.(STS.ini와 실행파일 경로에 lombok.jar복사됨.) Lombok is not generating getter and setter
restart하지 말고, 재실행
배포
- AWS
- MS Azure
- GCP Google Cloud Platform
- 비즈팩
'Dev > SPRING' 카테고리의 다른 글
[SPRING] Spring Security Filter (0) | 2023.03.03 |
---|---|
[SPRING] AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 (0) | 2023.02.27 |
[SPRING] 스프링 개요 (1) | 2023.02.26 |
[SPRING] Transaction 선언 (0) | 2023.02.25 |