Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 리스트
- LIST
- 도커 엔진
- Docker
- Kubernetes
- 중급자바
- 쓰레드
- 인프런
- 알고리즘
- 스레드
- 쿠버네티스
- 시작하세요 도커 & 쿠버네티스
- 오케스트레이션
- 동시성
- 멀티 쓰레드
- 제네릭스
- 실전 자바 중급 2편
- 시작하세요! 도커 & 쿠버네티스
- 도커
- 컨테이너
- java
- 자료구조
- 자바
- 김영한
- Collection
- contatiner
- Thread
- container
- 스레드 제어와 생명 주기
- 실전 자바 고급 1편
Archives
- Today
- Total
쌩로그
스프링 부트 문자열 자동 생성 및 테스트 본문
반응형
목록
- 포스팅 개요
- 본론
2-1. 환경 변수 지정
2-2. yml에 지정 - 요약
1. 포스팅 개요
해당 포스팅은 스프링부트에서 yml에 환경변수를 지정하고, 출력 테스트를 진행할 때 @Value 애너테이션의 동작에 대한 간단한 개요를 정리하려고 한다.
2. 본론
스프링 시큐리티를 통해 JWT를 적용하려고 하다가. yml에서 환경변수의 값을 지정하고, 출력 테스트를 하려고 할 때 null이 출력 됨을 확인했다.

2-1. 환경 변수 지정
먼저 값을 지정하려면, 윈도우 기준으로
시작 - '환경 변수'를 검색하면 시스템 시스템 환경 변수 편집이 나온다.
거기서 환경 변수 - 시스템 변수 - 새로 만들기 를 통해서 다음과 같이 변수 이름과 값을 넣으면 된다.

리눅스로 편하게 지정하려면 다음 명령어를 사용하면 된다.
(리눅스가 없으면 Git bash를 활용하면 된다.)
openssl rand -hex 64
2-2. yml에 지정
yml에는 다음과 같이 지정한다.
(일단 임시다.)
// application.yml
jwt-variable:
secret-key: ${JWT_SECRET_KEY}
그리고 이제 테스트에서 출력을 해볼건데,,
public class SecurityTest {
@Value("${jwt-variable.secret-key}")
private String secretKey;
@Test
void printTest() {
System.out.println("secretKey = " + secretKey);
}
}
스프링 컨테이너에 빈을 올리는 과정을 생략하려고 이렇게 코드를 작성했다.
그런데 null이 출력되었다.

왜 그런지 봤더니, @Value
애너테이션은 스프링의 Bean 주입이 마치고 난 후에 값의 주입이 일어난다고 한다.
그래서 그냥 클래스 레벨에 @SpringBootTest
애너테이션을 선언했다.
조금 느리지만, 다음과 같이 잘 나오는 것을 확인할 수 있다.

3. 요약
- 환경 변수 지정하기
- @Value 값을 테스트하려면, 스프링 컨테이너에 Bean을 주입한 후에 주입되게 해야한다.
728x90
'TroubleShooting & 고민 > 기타' 카테고리의 다른 글
[TroubleShooting] 도커 이미지로 만든 애플리케이션을 localhost에서 도커 컴포즈로 실행시 local(hostPC)의 DB와 Connection 되지 않던 문제 해결 - 컨테이너 개념 부재 (0) | 2025.03.13 |
---|---|
[TroubleShooting] CI/CD 진행 중 빌드 단계에서 프로젝트의 설정 값을 환경 변수로부터 가져와야 할 때 (2) | 2025.03.11 |
IntelliJ 2023.03버전부터 플러그인 Presentation Assistant 기능이 인텔리제이로 내장됨 (0) | 2023.12.13 |
삽질기 (2) | 2023.11.21 |
브랜치 관리 (0) | 2023.05.31 |
Comments