Spring/JPA

JPA - DB 연결 예외 : 'url' attribute is not specified and no embedded datasource could be configured.

공부하고 기억하는 공간 2024. 6. 14. 20:21
728x90
반응형
SMALL

프로젝트를 만들다 보면 항상 발생하는 이 오류... 도대체 어디서 항상 발생하는건지 문제를 직접 이해하고 다음에는 이 문제가  발생하지 않도록 설정해보려고 한다.

예외에서는 항상 entityManagaer관련 예외가 발생한다.

 

내 yml 설정은 아래와 같다.

spring:

  messages:
    basename: messages
    encoding: UTF-8

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/[DB이름]?serverTimezone=Asia/Seoul
    username: [Id]
    password: [Password]

  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
        show_sql: true
        format_sql: true
    hibernate:
      ddl-auto: update

 

아직 이 코드 이외에 구현한게 없으니 분명 여기서 발생한 문제일텐데 원인을 찾아보자.

 

 

내 문제의 원인은 너무 간단해서 허무했다.

application-locl.yaml로 만들었더니 yaml파일을 tomcat이 인식하지 못하는 문제였다.

application.yaml으로 이름을 변경하였더니 잘 작동하였다.

여러개의 yaml파일을 만들어서 보기 좋게 구분하고 싶다면 아래와 같이 사용하면 된다.

local이라는 이름의 yaml에 다른 것들을 포함하여 사용하는 방식이다.

spring:
  profiles:
    group:
      "local" : "local, jwt, oauth, email, redis"
    active : local

 

그 외의 원인들은 아래와 같은 문제가 있을 수 있다.

1. yaml의 url에서 오타를 확인하자 url을 uri로 적은 경우도 많았고 :이나 //을 잘못 적은 경우도 많이 봤다.

2. yaml의 들여쓰기도 꼭 확인하자. 내부 속성을 하나씩 들어갈때 마다 들여쓰기를 꼭 해줘야 한다.

3. mysql port 서버가 일치하는지 확인하고 잘 작동하는지 확인하자

그 외에도 다양한 문제들이 있을 수 있으니 차근차근 하나씩 해결하다보면 성공할 것이다.

 

 

728x90
반응형
SMALL