기록과 정리

EnviromentCapable & @Profile & 프로퍼티 본문

IT/Spring

EnviromentCapable & @Profile & 프로퍼티

zepetto 2021. 1. 25. 10:39

이 글은 인프런 백기선님의 스프링 프레임워크 핵심 기술에 대한 정리입니다.

 

Enviroment

Bean 객체를 관리하는 SpringIoC 컨테이너에는 중요한 interface 2가지가 있다.

1. BeanFactory 

2. ApplicationContext

 

특히 ApplicationContext는 BeanFactory 를 상속 받고 BeanFactory 의 기능 이외에도 다양한 기능을 제공한다.

그중 EnviromentCapable과 제공하는 기능 중 하나인 @Profile을 정리해보자.

ApplicationContext 안에 EnviromentCapable 상속 받고있다.

@Profile

해당 어노테이션의 기능은 Bean들의 그룹을 정할 수 있다.

 

test라는 그룹을 설정
TestConfiguration의 선언된 Bean

'test'라는 이름의 프로파일 일때만 사용가능하다. prod 또는 dev환경을 설정함에 따라 응용이 가능할 것 같다.

 

intellij Run/Debug Configurations

인텔리제이 VM 옵션값에 해당 설정을 추가하자.

Runner class
test에 대한 Profile 실행이 됨을 확인 가능하다

 

프로퍼티

프로퍼티는 다양한 방법으로 설정하는 방식을 말하고 key&value 형태로 가져와 사용 가능하다.

프로퍼티를 설정하는 방법에는 다양한 방법이 있는데 2가지를 살펴보겠다. 

1. JVM 에서 설정

2. properties 파일 설정

 

jvm  설정

마찬가지로 intellij VM옵션값에 app.name의 spring5라는 값을 넣고 해당 값이 나오는지 확인해보자.

다음과 같이 확인하는 방법과 두번째로 app.properties를 만드는 방법이 있다.

@PropertySouce 설정 
결과값

프로퍼티를 관리하는 여러가지 방법 중 JVM 과 properties 파일 관리 두가지 방법을 살펴보았고 우선순위는 JVM이 더 높다. 스프링 부트에는 기본 프로퍼티 소스(appication.properties)를 지원하므로 참고하자.

'IT > Spring' 카테고리의 다른 글

MessageSource 인터페이스  (0) 2021.01.26
InternalResourceViewResolver  (0) 2021.01.25
DispatcherServlet이란?  (0) 2021.01.24
Bean의 스코프  (0) 2021.01.24
@Component와 컴포넌트 스캔이란?  (0) 2021.01.22