[Spring in Action] Spring 구성 속성 사용하기

728x90
반응형
SMALL

Spring in Action (5판)

  • 스프링 5의 강력한 기능과 생산성을 활용한 웹 애플리케이션 개발
  • Walls, Craig 지음
  • 제어펍 출판사
  • 2020.05.14

 

스프링 인 액션 개인 스터디 내용을 정리하자.

 

 

 

 


스프링 환경 추상화

구성 가능한 모든 속성을 한 곳에서 관리하는 개념

 

속성의 근원을 추상화하여 각 속성을 필요로 하는 빈이 스프링 자체에서 해당 속성을 사용할 수 있게 한다.

 

즉, 스프링 환경에서는 원천 속성들을 가져와서 애플리케이션 컨텍스트의 빈이 사용할 수 있게 해준다.

 

원천 속성

  • JVM 시스템 속성
  • OS 환경 변수
  • 명령행 인자
  • properties 파일
  • yml 파일

스프링 부트에 의해 자동으로 구성되는 빈들은 스프링 환경으로부터 가져온 원천 속성들을 사용해서 구성될 수 있다.

 

구성 속성을 사용해서 스프링 자체의 컴포넌트를 구성하면 해당 컴포넌트의 속성 값을 쉽게 주입할 수 있고 자동-구성을 세부 조정할 수 있다.

 

 

데이터 소스 구성

spring:
    datasource:
        url:
        username:
        password:
        driver-class-name:
        schema:
        data:

 

내장 서버 구성

server:
    port:
    ssl:
        key-store:
        key-store-password:
        key-password:

 

로깅 구성

logging:
    path:
    file:
    level:
        root: WARN
        org.springframework.security: DEBUG

 

구성 속성 생성 & 홀더 정의

@Component
@ConfigurationProperties(prefix="taco.orders")
@Getter
@Setter
@Valudated
public class OrderProps {
 
    @Min(value=5, message="")
    @Max(value=25, message="")
    private int pageSize = 20;
 
}
@Controller
@RequiredArgsConstructor
public class OrderController {
     
    private OrderProps props;
     
}
taco:
    orders:
        pageeSize: 10

 

프로파일 환경 분류

환경별로 파일 자체를 별도 생성하여 관리, application-{local/dev/prod}.yml 또는 application-{local/dev/prod}.properties

yml에서는 하이픈으로 구분 가능 (아래는 권장하지 않는 방식)

logging:
    level:
        tacos: DEBUG
---
spring:
    profiles:local
    datasource:
        url:
---
spring:
    profiles:dev
    datasource:
        url:
728x90
반응형
LIST