Framework/Spring

Spring 오류 정리 1. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Cs.Woo 2021. 8. 5. 23:16

## 에러메세지

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



Description:
 
Failed to configure a DataSource: 'url' attribute is not specified and no embedded 
  datasource could be configured.
 
Reason: Failed to determine a suitable driver class

 

## 원인

  Maven 기준 pom.xml에 데이터베이스를 사용하기 위한 dependency가 존재하는 경우 @SpringBootApplication 에서 자동으로 데이터베이스 값을 설정하려고 시도하지만 사용자는 데이터베이스 값을 입력을 안했기에 발생하는 에러이다.

 

## 해결방법

  다음의 세가지 방법 중 하나를 택하여 적용하면 된다.

 

1.1 application.properties 또는 application.yml 파일에 DB관련 정보를 추가

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

yml
spring:
  datasource:
    driver-class-name:
    url:
    username:
    password:

 

1.2 Configuration 생성(Bean 을 이용하여 DB사용)

@Configuration
public class DBConfiguration {
	
    @Bean
    public DataSource datasource() {
      return DataSourceBuilder.create()
      .driverClassName("")
      .url("")
      .username("")
      .password("")
      .build(); 
    }
    
}@Configuration
public class DBConfiguration {
	
    @Bean
    public DataSource datasource() {
      return DataSourceBuilder.create()
      .driverClassName("")
      .url("")
      .username("")
      .password("")
      .build(); 
    }
    
}

 

1.3 DataSourceAutoConfiguration 제외 ( DB를 사용하지 않겠다고 명시 )

 스프링 프로젝트의 기본 파일인 Application.class 의 @SprinngBootApplication 어노테이션에 프로퍼티를 추가하는 방법이다.

 

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class Sample01Application {

	public static void main(String[] args) {
		SpringApplication.run(Sample01Application.class, args);
	}

}