CheerUp_Cheers
스프링 부트2 - (2) 스프링 부트 환경 설정 본문
#JDK 설치하기
1) 설치 경로
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
#인젤리제이 IDEA 사용하기
[1] 장점
- 문법이 옳은 것인지
- 중복된 코드인지
- 사용하지 않는 변수인지
- 더나은 문법이나 람다식으로 변환 제안.
- 깃허브와 연동되며 디버거와 기타 플러그인 등 여러 편리한 기능을 지원.
#프로젝트 생성
1) 링크 접속
2) 접속후 설정.
다음과 같이 설정
#Hello World 띄우기
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping
public String HelloWorld(){
return "Hello World";
}
}
1) @RestController
@Controller와 @ResponseBody를 합쳐 놓은 역할 수행.
이 어노테이션을 사용하면 반환값이 Response Body부분에 자동으로 바인딩
스프링 RestFul 웹 서비스를 만들때 주로 사용.
2) @GetMapping
Get방식으로 경로를 받는 매핑 어노테이션.
value값을 별도로 지정하지 않으면 빈값("")값으로 들어감.
#스프링 이니셜라이저에 접속 안하고 생성
1) New Project
2) Spring Initialize
3) Next후, 설정
4) Next후, 의존성 선택.
5) 프로젝트명 설정 후, 생성.
#그레이들 설치 및 빌드하기
메이븐 기반인 pom.xml은 XML기반으로 작성되어 동적인 것에 제약.
-> 대안으로 그루비 기반의 그레이들 주목.
#그레이들 멀티 프로젝트 구성하기
여러 프로젝트를 하나의 프로젝트 처럼 사용 가능.
공통 코드를 하나의 프로젝트로 분리하고, 재사용할때 유리.
[1] 장점
- 중복 코드를 제거.
- 도메인에 컬럼이 추가되거나 변경시, 일일이 수정안해도됨.
#환경 프로퍼티 파일 설정하기
[1] propertise
설정 관련 및 기타 정적인 값을 키값 형식으로 관리.
이 파일 사용하면 기존 스프링의 복잡한 XML파일을 하나로 설정가능.
application.propertise의 server.port값을 80으로 변경 가능.
[2] yml
기존에는 프로퍼티를 사용했지만, 표현의 한계로 YAML파일을 사용.
.yml확장자를 사용.
yaml은 마크업 언어가 아니고, 데이터 중심을 둔다.
#프로파일에 따른 환경 구성 분리
공부 목적으로 로컬에서만 한다면 프로파일의 프로퍼티 나눌 필요 없음.
실제 서비스에서 개발한다면 로컬DB, 개발DB, 운영 DB의 설정값이 모두 다름.
-> 프로파일에 따라 다르게 설정해야 함.
'---'을 기준으로 설정값을 나눔.
server:
port: 80 //디폴트
---
spring:
profiles: local
server:
port: 8080
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: real
server:
port: 8082
1) 프로파일로 실행하기
- Edit Configuration
- Run/Debug Configurations
- 프로파일 값 할당
#YAML 파일 매핑하기
YAML 파일은 사용하면 깊이에 따라 관계를 구분 짓음(LIST, SET, MAP)등 다양한 바인딩형 매핑 간편.
[1] 다음은 YAML파일의 데이터를 가져오는 어노테이션.
1) @Value
유연한 바인딩 x
메타데이터 지원 x
SqEL 평가 O
2) @ConfigurationProperties
유연한 바인딩 O
메타데이터 지원 O
SqEL 평가 x
[2] 설명
- 유연한 바인딩
필드를 낙타표기법으로 선언, 프로퍼티는 다양한 형식으로 선언하여 바인딩
- 메타데이터 지원
프로퍼티의 키에 대한 정보를 메타데이터파일(JSON)으로 제공
- SqEL(Spring Expression Languate, 스프링 표현 언) 평가
런타엠 객체 참조에 대해 질의하고 조작하는 기능을 지원하는 언어.
특히 메서드 호출 및 기본 문자열 템플릿 기능을 제공.
#자동 환경 설정 이해하기
Web, H2(h2 메모리 DB), JDBC를 비롯해 100여개 자동설정 제공
[1] 설정법
- @EnableAutoConfiguration
- @SpringBootApplication
자동설정 뿐만아니라, 부트실행에 있어서 필수
@SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan
'서적 공부 > 스프링부트 - 처음 배우는 스프링부트2' 카테고리의 다른 글
스프링 부트2 - (7) 스프링 부트 배치 (0) | 2020.09.02 |
---|---|
스프링 부트2 - (1) 스프링 부트 입문하기 (0) | 2020.07.08 |