🐢🐢꼬부기 LV.2 | 실습•에러/🛡️껍질에 숨기(에러해결)

스프링 부트 Failed to configure a DataSource 에러 해결

서화 2026. 1. 30. 22:16

🐞Failed to configure a DataSource:'url' attribute is not specified🐞

 보드 클라이언트를 보드 컨트롤러로 바꾼뒤 테스트 차 스프링 부트를 실행해봤는데 이러 에러창이 떳다

🔎원인 분석

에러의 문구를 해석해보면 “스프링 부트가 DB에 연결하려고 했는데, DB 정보(URL/드라이버)를 하나도 못 찾았다” 는 뜻이다

이 에러가 뜨는경우 3가지

1. DB설정 안했는데 JDBC의존성은 있을때

spring-boot-starter-data-jpa
spring-boot-starter-jdbc

 pom.xml에 이게 있으면 스프링부트를 실행할때 자동으로 데이터 소스를 만들려고 하는데 설정이 없으니까 에러가 생긴다

2. application.properties에 DB정보가 없을때

spring.datasource.url
spring.datasource.username
spring.datasource.password
spring.datasource.driver-class-name

이중에 하나라도 없으면 에러가 생길수 있다

3. DB 드라이버 의존성 없음

mysql-connector-j

현재 MySQL 사용하는데 pom.xml 설정에 드라이버 의존성을 넣지 않은경우 에러가 생길수 있다

🛠️해결방법

1.pom.xml에 드라이버 의존성이 있는지 체크한다

<dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
      </dependency>

드라이버 있는것을 확인하였다

2. application.properties에 DB정보 추가하기

현재 XML에 빈클래스로 데이터 소스가 정의되어있다

<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource">
         <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
         <property name="url" value="jdbc:mysql://localhost:3306/데이터베이스명" />
         <property name="username" value="계정명" />
         <property name="password" value="비번" />
   </bean>

이 정보를 이제 스프링 부트실행을 위해서 application.properties에 추가해주어야한다

spring.datasource.url=jdbc:mysql://localhost:3306/데이터베이스명?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
spring.datasource.username=계정명
spring.datasource.password=비밀번호
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

이렇게 application.properties에 추가해주면 xml없이도 부트가 알아서 DataSource를 만들고 jdbcTemplate도 사용할수 있다

만약 정말로 xml로 사용하고 싶다고하면

@ImportResource("classpath:applicationContext.xml")

@ImportResource라는 어노테이션을 설정해서 코드가 xml을 읽게 해주어야 되서 번거롭다