Rješavanje pogreške "Nije uspjelo konfiguriranje izvora podataka"

1. Pregled

U ovom ćemo kratkom vodiču razgovarati što uzrokuje, a što rješava Pogreška "Nije uspjelo konfiguriranje izvora podataka" na projektu Spring Boot.

Problem ćemo riješiti na dva različita pristupa:

  1. Utvrđivanje izvora podataka
  2. Onemogućavanje automatske konfiguracije izvora podataka

2. Problem

Sada, pretpostavimo da imamo projekt Spring Boot i dodali smo opruga-podaci-starter-jpa ovisnosti i MySQL JDBC pokretački program za naš pom.xml:

 org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java runtime 

Ali, kada pokrenemo aplikaciju, ona s greškom ne uspije:

Opis: Nije uspjelo konfiguriranje izvora podataka: atribut 'url' nije naveden i nije se mogao konfigurirati ugrađeni izvor podataka. Razlog: Nije uspjelo utvrditi prikladnu klasu vozača

Da vidimo zašto se to događa.

3. Uzrok

Prema dizajnu, automatska konfiguracija Spring Boot pokušava automatski konfigurirati grah na temelju ovisnosti dodanih u put predavanja.

A budući da imamo ovisnost JPA o našoj stazi, Spring Boot pokušava automatski konfigurirati JPA Izvor podataka. Problem je, nismo Springu dali informacije potrebne za obavljanje automatske konfiguracije.

Na primjer, nismo definirali nijedno svojstvo JDBC veze, a to ćemo morati učiniti kada radimo s vanjskim bazama podataka poput MySQL i MSSQL. S druge strane, nećemo se suočiti s ovim problemom s bazama podataka u memoriji poput H2, jer one mogu stvoriti izvor podataka bez svih tih informacija.

4. Rješenja

4.1. Definirajte Izvor podataka Korištenje svojstava

Budući da se problem javlja zbog nedostajuće veze s bazom podataka, problem možemo riješiti jednostavnim davanjem svojstava izvora podataka.

Prvo, krenimo definirati svojstva izvora podataka u primjena.svojstva datoteka našeg projekta:

spring.datasource.url = jdbc: mysql: // localhost: 3306 / myDb spring.datasource.username = user1 spring.datasource.password = pass spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver

Ili možemo pružiti svojstva izvora podataka u primjena.iml:

proljeće: izvor podataka: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc: mysql: // localhost: 3306 / myDb korisničko ime: user1 lozinka: pass

4.2. Definirajte Izvor podataka Programski

Alternativno, svoj izvor podataka možemo programski definirati pomoću koristeći klasu graditelja uslužnih programa DataSourceBuilder. Moramo navesti URL baze podataka, korisničko ime, lozinku i podatke o upravljačkom programu SQL da bismo stvorili izvor podataka:

@Configuration javna klasa DatasourceConfig {@Bean public DataSource datasource () {return DataSourceBuilder.create () .driverClassName ("com.mysql.cj.jdbc.Driver") .url ("jdbc: mysql: // localhost: 3306 / myDost: 3306 / myDhb: 3306 / myDob: 3306 ") .username (" user1 ") .password (" pass ") .build (); }}

Ukratko, možemo odabrati bilo koju od gore navedenih opcija za konfiguriranje izvora podataka prema našim zahtjevima.

4.3. Isključiti DataSourceAutoConfiguration

U prethodnom smo odjeljku riješili problem dodavanjem svojstava izvora podataka u naš projekt. Ali, kako to riješiti ako još nismo spremni definirati svoj izvor podataka?

Da vidimo kako ćemo spriječiti Spring Boot da automatski konfigurira izvor podataka.

Razred DataSourceAutoConfiguration je osnovna klasa za konfiguriranje izvora podataka pomoću proljeće.dataizvor. * Svojstva.

Sada postoji nekoliko načina na koje to možemo izuzeti iz automatske konfiguracije.

Prvo, možemo onemogućiti automatsku konfiguraciju pomoću proljeće.autoconfigure.excludeimovine u našem primjena.svojstva datoteka:

spring.autoconfigure.exclude = org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

Isto tako, možemo učiniti isto koristeći naš primjena.iml datoteka:

opruga: autoconfigure: exclude: - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

Ili možemo koristiti isključiti atribut na našem @SpringBootApplication ili @EnableAutoConfiguration bilješka:

@SpringBootApplication (izuzeti = {DataSourceAutoConfiguration.class})

U svim gornjim primjerima mi onemogućio je automatsku konfiguraciju Izvor podataka. I, to neće utjecati na automatsko konfiguriranje bilo kojeg drugog graha.

Dakle, da sumiramo, možemo upotrijebiti bilo koji od gore navedenih načina kako bismo onemogućili automatsku konfiguraciju izvora podataka Spring Boota.

U idealnom slučaju, trebali bismo pružiti informacije o izvoru podataka i koristiti opciju izuzeća samo za testiranje.

5. Zaključak

U ovom smo članku vidjeli što uzrokuje "Konfiguriranje izvora podataka nije uspjelo" pogreška. Prvo smo riješili problem definiranjem izvora podataka. Zatim smo razgovarali o tome kako zaobići problem bez da uopće konfiguriramo izvor podataka.

Kao i uvijek, puni kôd korišten u ovom članku dostupan je na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found