프로젝트를 진행하던 중 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
'Back End > Spring && Spring Boot' 카테고리의 다른 글
[JPA] Entity 생성 시간 자동 기록하기 (1) | 2024.06.15 |
---|---|
[Spring Boot/Jpa] DB에 반영되지 않는 Entity 필드 정의하기 (0) | 2024.06.15 |
[Spring Security] 인가 설정을 해줘도, 403 에러 발생하는 원인 (0) | 2024.06.12 |
[Spring Boot / JPA] PK값을 자동으로 증가시키기 (0) | 2024.06.11 |
[Spring Data JPA] Repository 메소드 작성 규칙 (1) | 2024.06.07 |