스프링부트에서 open api를 사용하면서 노출되면 곤란한 키 값을 숨기는 방법을 찾아봤다.
그 중 하나는 config.properties 파일을 만들어서 api 시크릿 키 값을 저장하는 것이다.
그 후 키 값이 사용되는 곳에서 config.properties 파일을 불러오면 된다.
아 그리고 github에 config.properties 파일이 올라가면 안 되기 때문에 꼭 .gitignore 파일에 config.properties 추가하자!
@PropertySource(classpath)의 root 경로: src/main/resources
파일 위치(경로): src/main/resources/config.properties
### 키 값 저장되어 있는 파일 노출되면 안 됨!
config.properties
느낀점
이렇게 해도 되는지는 잘 모르겠지만 더 찾아봐야겠다!
갑자기 든 생각이지만 이렇게 했을 때 기존에 있던 application.properties가 적용이 되는지 내일 확인해봐야겠다.
애플리케이션에서 사용하는 여러가지 설정 값들을 애플리케이션의 밖이나 안에 정의할 수 있는 기능을 말한다.
이 파일은 스프링부트가 애플리케이션을 구동할 때 자동으로 로딩하는 파일이다.
key - value 형식으로 값을 정의하면 애플리케이션에서 참조하여 사용할 수 있다.
application.properties를 같은 위치가 아니라 다른 위치에 둘 경우는 컴파일해도 덮어쓰지 않게 된다.
application.properties 파일이 2개이지만 우선순위 높은 파일 하나만 적용이 되는 게 아니라 우선 순위 높은 파일 위주로 둘 다 적용이 된다.
Example
config/application.properties 파일(3. classpath:/config/)에 server.port=7777
application.properties 파일(4. classpath:/)에 server.port=9999 로 해놨다면
우선 순위가 높은 config/application.properties 파일(3. classpath:/config/)이 적용되어 7777 포트가 사용된다.
참고
Tech, Jay. “[Spring] 스프링 Properties 관리하기.” JayTech의 기술 블로그, TISTORY, 13 Nov. 2018, https://pjh3749.tistory.com/216.
https://velog.io/@max9106/Spring-Boot-%EC%99%B8%EB%B6%80%EC%84%A4%EC%A0%95-uik69crax3
https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/html/boot-features-external-config.html