내 카톡 프로필
Spring 프로필 별로 다르게 설정되는 프로퍼티들이 있다.
예를 들어 Local, Develope 프로필 별로 DB 설정을 다르게 해주어야 한다거나, 프로젝트 내 변수값을 다르게 설정해야 하는 상황이 있다.
이럴 때 프로필 별 외부설정 파일에서 프로퍼티를 불러와야 하는데
각각 다른 프로퍼티 값을 가지고 있는 local.config, dev.config 라는 외부 프로퍼티 파일이 있다고 가정할 때
해당 두 가지 파일 중에, 프로젝트 실행 시 적용된 프로필에 맞는 파일을 선택하고 해당 파일 내 프로퍼티를 사용하는 방법을 알아보자.
1.PropertyPlaceholderConfigurer 빈 등록
- dispatcher-servlet에서 해당 클래스를 빈으로 등록하고 불러오고 싶은 파일 경로를 주입해주자.
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/config/${spring.profiles.active}.config</value>
</list>
</property>
</bean>
=> 말그대로 빈으로 등록함과 동시에 원하는 외부 프로퍼티 설정 파일 경로를 주입해주었다.
=> 현재 상황은 적용된 프로필에 해당하는 외부 설정 파일을 사용해야 하는 상황이다.
=> 현재 적용된 프로필 네임은 spring.profiles.active를 통해 불러올 수 있다.
=> 이렇게 하면 스프링 컨테이너에 파일이 등록돼서, 어느 곳에서나 해당 파일의 프로퍼티를 사용할 수 있다.
2. 파일 내 정의되어 있는 프로퍼티 사용
- 이제 파일 내에 있는 프로퍼티를 사용해야할 차례이다. 파일 내에 app.file.path 라는 프로퍼티를 사용한다 가정하겠다.
# dev.config
app.file.path=C:\\image\\path\\
@Value("${app.file.path}")
private String myVariable;
=> 첫 번째 코드가 dev.config 즉, 설정 프로퍼티 파일이고, 두 번째 코드가 해당 파일 내 app.file.path를 사용하는 코드.
=> 해당 파일이 빈으로 등록 되었기 때문에, @Value 어노테이션을 이용하여 컨테이너에서 해당 프로퍼티를 가져올 수 있다.
=> 현재 적용된 프로필이 dev 라면 myVariable 변수에는 "C:\\image\\path\\" 가 들어있을 것.
'웹개발 > Java, Spring' 카테고리의 다른 글
[Spring Boot] MyBatis + PostgreSQL 연동 (2) | 2024.06.25 |
---|---|
[Spring Boot] 스프링 부트 JWT 인증 방식 구현 (0) | 2024.03.04 |
[Java] 웹 내 TIF 이미지 → JPG 이미지로 변환하여 출력하는 방법 (0) | 2023.07.30 |
[Spring] ResponseEntity를 이용한 HTTP 통신 (0) | 2023.07.16 |
[Spring] 스프링 Interceptor를 간단한 MVC 예제에 적용해보기 (0) | 2023.06.25 |