[스프링] 동적 프로파일링을 위한 프로퍼티 파일 활용
이번 글에서는 스프링 프레임워크에서 동적 프로파일링을 위한 프로퍼티 파일 활용에 대해 알아보겠습니다.
동적 프로파일링이란 무엇인가요?
일반적으로 스프링 애플리케이션은 여러 환경에서 실행될 수 있습니다. 예를 들어 개발, 테스트, 스테이징, 프로덕션 등의 환경에서 동일한 애플리케이션을 실행할 수 있습니다. 동적 프로파일링은 이러한 다양한 환경에 맞추어 스프링 빈을 설정하는 기능을 제공합니다.
프로퍼티 파일을 이용한 동적 프로파일링
프로퍼티 파일 생성
먼저, 각 환경에 맞는 프로퍼티 파일을 생성합니다. 예를 들어 application-dev.properties
, application-prod.properties
와 같이 각각의 환경에 맞는 프로퍼티 파일을 생성합니다.
활성 프로파일 설정
application.properties
파일에 다음과 같이 활성 프로파일을 설정합니다.
spring.profiles.active=dev
위의 예시에서는 dev
프로파일을 활성화하고 있습니다.
프로퍼티 파일 활용
다음으로 각 빈에 적용될 설정들을 프로퍼티 파일에 입력합니다.
# application-dev.properties
datasource.url=jdbc:mysql://localhost:3306/devdb
datasource.username=dev_user
datasource.password=dev_password
# application-prod.properties
datasource.url=jdbc:mysql://prod-host:3306/proddb
datasource.username=prod_user
datasource.password=prod_password
빈 설정
빈 설정 시 활성 프로파일을 고려하여 프로퍼티 파일을 참조하도록 설정합니다.
@Configuration
@PropertySource("classpath:application.properties")
public class MyConfig {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl(env.getProperty("datasource.url"));
dataSource.setUsername(env.getProperty("datasource.username"));
dataSource.setPassword(env.getProperty("datasource.password"));
return dataSource;
}
}
위의 코드에서 @PropertySource
어노테이션을 통해 프로퍼티 파일을 불러오고, @Autowired
어노테이션을 통해 Environment
객체를 주입받아 필요한 프로퍼티 값을 참조하고 있습니다.
마무리
이렇게 프로퍼티 파일을 활용하여 스프링 프레임워크에서 동적 프로파일링을 구현할 수 있습니다. 다양한 환경에서의 유연한 애플리케이션 실행을 위해 동적 프로파일링을 적극적으로 활용해보시기 바랍니다.