프로젝트를 진행하던 중 API Key 값을 프로젝트 내부에서 사용해야 할 일이 생겼다.
그런데 이런 키값을 그대로 자바 코드에 넣자니, 보안 문제가 우려되었다.
이를 위해 .gitignore에 등록해둔 application.properties 파일에 키값을 저장해두고, 자바에서 이를 불러와 사용하기로 결정했다.
밑에서 해당 방법을 서술하겠다.
application.properties의 변수값 불러오기
application.properties
먼저 application.properties
파일에 값을 저장해 두겠다.
Test.java
package com.hayden.limg\_diary.test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class Test {
@Value("${test.val}")
String key;
@org.junit.jupiter.api.Test
public void test(){
System.out.println(key);
}
}
이후 저장한 값을 자바에서 불러오는 코드를 작성했다.
자바에서 application.properties
에 저장된 값을 불러올 때는 @Value()
아노테이션을 사용해 자바 변수에 해당 값을 저장해둘 수 있다.
이때 properties파일의 불러올 변수 이름은 ${ } 안에 문자열 형태로 작성해야 함을 주의하자
- 실행결과
응용 - 분리된 properties 파일의 값 불러오기
이번에는 이전에 작성한 방법을 응용하여 값을 불러와 보고자 한다.
먼저 분리한 properties
파일을 생성 후 값을 저장해준다.
application-apikey.properties
이후 application.properties
파일에 해당 파일을 추가해준다.
application.properties
spring.profiles.active=apikey
설정을 마친 후 자바 테스트 코드를 작성하고 실행해보자
Test.java
package com.hayden.limg_diary.test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class Test {
@Value("${test.separated}")
String key;
@org.junit.jupiter.api.Test
public void test(){
System.out.println(key);
}
}
- 실행 결과
구별된 properties 파일의 값도 잘 불러와진다.
Reference
'Spring > Spring Boot' 카테고리의 다른 글
[EC2, Spring boot] 스프링 부트 배포시, 우분투 환경에서 이미지 경로 인식 못하는 문제 (0) | 2024.08.15 |
---|---|
[Spring Boot] CORS 설정하기 (0) | 2024.08.05 |
[Spring Boot] 스프링 부트에서 이미지 저장하기 (0) | 2024.06.05 |
[Spring Boot] Properties 파일 따로 분리하기 (0) | 2024.06.02 |
[Spring boot] Ambiguous mapping. Cannot map '~' method 에러 (0) | 2024.06.01 |