1. Command-line arguments (Command-line 인자):
스프링 애플리케이션을 실행할 때, Command-line 인자로 설정을 전달할 수 있습니다.
이러한 인자들은 애플리케이션의 설정에 우선하여 적용됩니다.
예를 들어, --spring.profiles.active=production과 같은 방식으로 프로파일을 지정할 수 있습니다.
2. Java System Properties (Java 시스템 속성):
JVM을 실행할 때 -D 옵션을 사용하여 Java 시스템 속성으로 설정을 전달할 수 있습니다.
스프링은 이러한 시스템 속성을 로드하여 애플리케이션 설정에 우선하여 적용합니다.
-DSpring.profiles.active=dev
3. OS Environment variables (환경 변수):
운영체제의 환경 변수를 통해 설정을 전달할 수 있습니다.
스프링은 이러한 환경 변수를 읽어와 설정에 우선하여 적용합니다.
4. External Configuration Files (외부 설정 파일):
스프링은 프로퍼티 파일인 application.properties 또는 application.yml 파일을 사용하여 설정을 관리합니다.
이러한 설정 파일은 애플리케이션의 classpath 루트 또는 config 디렉토리에 위치할 수 있습니다.
외부 설정 파일은 프로젝트 내부의 설정보다 우선하여 적용됩니다.
5. Profile-specific Properties (프로파일별 설정):
스프링은 프로파일별로 설정을 구성할 수 있습니다.
예를 들어, application-dev.properties 파일은 dev 프로파일에 대한 설정을 담고 있습니다.
프로파일은 spring.profiles.active 속성을 사용하여 활성화하며, 이 설정들은 일반적인 외부 설정보다 우선합니다.
6. Default Properties (기본 설정):
스프링은 기본적으로 application.properties 파일을 찾고, 해당 파일에 정의된 기본 설정을 적용합니다.
이 설정들은 다른 외부 설정들보다 우선됩니다.
7. @PropertySource 어노테이션:
@PropertySource 어노테이션을 사용하여 추가적인 프로퍼티 파일을 로드할 수 있습니다.
이 설정들은 기본 설정보다 우선합니다.