말하는 컴공감자의 텃밭

스프링 프로젝트 트러블 슈팅 : on-profile 설정 본문

카테고리 없음

스프링 프로젝트 트러블 슈팅 : on-profile 설정

현콩 2024. 6. 14. 12:16
728x90
config:
  activate:
    on-profile: local

로컬에서 개발할거야 라고 명시했는데,, 왜 안되는거니 

 

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine suitable jdbc url
 Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'jwtFilter' defined in file 

Error creating bean with name 'jwtFilter' defined in file

Error creating bean with name 'tokenProvider': Injection of autowired dependencies failed

Could not resolve placeholder 'jwt.secret-key' in value "${jwt.secret-key}"

 

위 같은 오류들을 마주했다면 프로필 설정활성화가 되었는지 확인을 해야한다.

없다면 프로필 속성은 적용되지 않는다.

 

백엔드 코드를 병합하고 서버를 돌리는데 웬걸 아예 application.yml 속성들이 안들어가는 듯한 느낌을 받았다.
이유는 돌고돌아 프로필 때문이었다.

 

application.yml 에 profile 설정이 들어가는 경우

 

인텔리제이 실행 > 구성편집 > 활성화된 프로파일에 'local' 혹은 'dev' 를 적어 명시해주자..

 

나는 어플리케이션 프로퍼티 yml 파일에 JWT관련 설정이 존재했는데 profile 부분을 인식 안하니까

Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'jwtFilter' defined in file [C:\Users\khv97\Desktop\현빈 레포​

 

이런식으로JWT 자동 주입이 안돼! 라는 에러를 뱉었다.

이거때문에 낑낑거렸는데 웬걸.. profile 문제였다니...

---
spring:
  config:
    activate:
      on-profile: local
  datasource:
    url: DB주소주소주소주소주소
    username: 이름이름
    password: 비번비번
---
spring:
  config:
    activate:
      on-profile: dev
  datasource:
    url: DB주소주소주소주소주소
    username: 이름이름
    password: 비번비번
---

이런식으로 profile을 나누어 로컬 개발과, 서버 개발을 나눌 수 있다.

profile을 사용하는 이유는 개발 프로젝트 진행하면서 환경을 다르게 주어야할때가 존재하게 된다.

로컬에서 개발하는경우와 테스트할 때도 있을거고, 운영중인 서버에서의 접근 등 세팅을 다르게 해줘야하는데
이같이 프로필을 이용하면 편할듯 싶다.  

728x90
Comments