Spring(스프링) 프레임워크/TIL(Today I Learned)

[Spring_TIL] 스프링(Spring) DBconfig에 설정한 MySQL 사용자계정 정보를 application.properties 파일에 분리하여 관리하기 (@PropertySource, @Value)

림케이원 2020. 7. 26.

데브림의 블로그 포스팅 한 것들을 한 눈에 확인하고 싶다면 클릭!

👉 https://github.com/DevLimK1/tistory-map 👈 

 


 

오늘은

스프링의 @PropertySource 와 @Value 어노테이션을 사용하여

DBconfig 자바 코드에 설정한 MySQL 사용자계정 정보를  

application.properties 파일에 분리하여 관리하는 방법을 알아보겠다.

 

따로 분리하지않고 원격저장소(github)에 그대로 커밋해서 저장하게된다면

그대로 나의 DB정보(아이디,패스워드)가 노출될 위험😱이 있다.

 

따라서 원격저장소가 private하지않다면

따로 파일을 분리해서 코드를 작성하는 것이 효율적이라 할 수 있겠다.


자바코드에 작성한 방법 😲

MySQL에 사용할 DB의 사용자계정 정보를 코드에 정의하였다. (빨간 네모박스)
위처럼 코드안에 DB정보를 작성하면 유지보수에 어려움을 겪을 수 있고
github 같은 원격저장소에 저장하면 DB정보가 노출되는 문제가 발생한다.

application.properties 파일에 분리해보자 🧐

DBConfig.java
16 : @PropertySource("classpath:application.properties")  // application.properties 클래스 패스 지정
20,23,26,29 : @Value 어노태이션을 이용해서 application.properties 에 있는 값 매칭

 

정리✍

DB의 사용자계정 정보를 자바코드에 작성하게 되면 계정 정보 노출 우려가 있다, 유지보수도 어려울 수 있다.  

                 👉 application.properties 에 따로 분리해서 코드 작성하자. (파일명은 자유롭게 작성가능한데                                     datasource.properties 라고 작성하는 경우도 있음)

 

 @PropertySource, @Value 어노테이션을 사용해서 application.properties 에 있는 값을 가져오자.

 


긴 글 끝까지 읽어주셔서 감사합니다 : )

TIL 포스팅은 스스로 습득한 지식과 강의, 블로그, 서적 등을 참고해서
이해한 것을 바탕으로 정보를 공유합니다. 


포스팅에 문제가 있거나, 수정이 필요한 부분 , 질문이 있으시면 댓글 남겨주세요.

도움이 되셨다면 공감()버튼, 댓글은 작성자에게 큰 힘이 됩니다.

댓글