평소에 Spring Boot에서 데이터베이스를 연결하거나 하게 되면, 비밀번호 같은 정보 application.yml에 적어두었는데, 해당 정보들은 노출되면 안되기 때문에 application.yml 파일을 gitignore 처리해주었었다.
그런데 팀 프로젝트를 할 때 application.yml에 변경사항이 있으면 매번 공유해야 했었기 때문에 불편했었고, 잘못해서 gitignore에 올라가기라도 하면 지우느라 급급했었다.
그런데 application.yml의 내용 중 특정 부분을 숨길 수 있는 방법을 알게 되었다!
바로 Edit Configurations > program arguments를 사용하는 방법이다.
(물론 이 정보도 팀원간에는 공유를 해야하긴 하지만 훨씬 공유의 양을 줄일 수 있었고 노출의 걱정이 사라졌다!)
IntelliJ의 Run 버튼 왼쪽을 보면 현재 실행할 것의 이름이 나와있는 칸이 있는데, 그것을 클릭하면 아래 Edit Configurations...가 있다.
그곳의 현재 Application이름이 적혀 있는 란 아래 칸에 정보들을 적어주면 된다.
application.yml 파일은 아래와 같은 형식으로 되어있는데,
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/aaa
username: aaa
password: aaa
jpa:
hibernate:
ddl-auto: update
redis:
host: localhost
port: 6379
jwt:
secret: aaa
expired:
access: aaa
refresh: aaa
만약 jwt에 secret을 숨겨주고 싶다! 하면 yml파일에서 secret:aaa는 지워주고,
configuration에는
--jwt.secret=aaa
이렇게 적어주면 된다.
그래서 이걸 코드 상에서 꺼내와서 사용하려면???
@Value를 사용해주면 된다.
@Value("${jwt.secret}")
String secret;
이 때 주의할 점은 @Value가 lombok으로 부터 가져온 것이 아니라 springframework.beans.factory.annotation으로 가져와야 한다는 것이다!
'개발 > Spring' 카테고리의 다른 글
[Spring Boot] created_at, updated_at 적용 안됨 (0) | 2022.09.27 |
---|---|
[Spring] int와 Integer 그리고 boolean과 Boolean (0) | 2022.06.07 |
[Spring] Slf4j와 Logback으로 로그 저장하기 (0) | 2022.06.06 |
[Spring] Header 가져오는 방법 (0) | 2022.05.09 |
[Spring] Ubuntu 서버에서 실행하기 (배포) (0) | 2022.05.06 |