Spring Ch 1. IoC 컨테이너(4) - Profile과 Property
Profile
- 프로파일으로 런타임 환경을 설정할 수 있다.
- 빈들을 하나의 환경으로 묶어 선언함으로서 테스트 환경에서 테스트를 수행하고 신속하게 배포 환경으로 전환할 수 있다.
- @Component 어노테이션으로 등록된 빈들은 DefaultProfile에 존재한다.
- @Profile 어노테이션으로 프로파일을 등록할 수 있고 !, &, |의 논리 설정을 사용할 수 있다.
1 |
|
Property
- 프로퍼티는 다양한 방법으로 정의할 수 있는 키 값이다.
- 변경 가능성이 있는 문자열을 클래스 내부 객체에 저장하여 사용할 경우 문자열을 수정하는 것만으로도 컴파일을 다시 해야하는 불편함이 존재한다.
- 이때 별도의 파일이나 데이터베이스를 통해 프로퍼티를 설정하고 이를 프로그램에서 호출하도록 한다면 컴파일을 하지 않고 문자열을 수정할 수 있다.
- 프로퍼티 설정을 위해 .properties 확장자 파일이 존재하며 Application 컴포넌트에서 @PropertySource 어노테이션을 통해 properties 파일에 저장된 프로퍼티 값을 사용할 수 있다.
1 |
|
프로퍼티의 우선순위
- 프로퍼티는 다양한 방법으로 설정할 수 있는 만큼 우선순위가 높은 프로퍼티 설정 값을 사용한다.
- 다음은 프로퍼티 우선순위이다.
- ServletConfig 매개변수
- ServletContext 매개변수
- JNDI (java:comp/env/)
- JVM 시스템 프로퍼티
- JVM 시스템 환경 변수
- 사용자 프로퍼티 설정 파일(properties 파일)
Eclipse 환경에서의 VM 속성 설정
- Run > Run Configurations > 사용하는 애플리케이션 선택 > VM arguments의 Variables추가