it-roy-ru.com

Spring, как установить источник данных в Spring Boot

Я только изучаю Spring, и последние пару дней я боролся за то, как настроить Spring JdbcTemplate для использования моей базы данных PostgreSQL. Я не знаю, как это сделать. Я продолжаю читать документацию (например, http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html ), но мне кажется, что я хожу вокруг в кругах. 

Из выданных ошибок кажется, что он не может создать экземпляр класса RelationalDatabase, который я написал как компонент. Я не уверен, что нужно, чтобы правильно создать экземпляр класса.

Как мне перейти от чего-то вроде руководств (например, https://spring.io/guides/gs/relational-data-access/ ), которые полностью работают, к более сложному решению?

Класс реляционной базы данных

@Repository
public class RelationalDatabase 
{

    private JdbcTemplate jdbcTemplate;

    public RelationalDatabase(){}


    public RelationalDatabase(JdbcTemplate jdbcTemplate)
    {
        this.jdbcTemplate = jdbcTemplate;
    }

    @Autowired
    public void setDataSource(javax.sql.DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }


    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

}

\ src\main\resources\application-dev.properties

spring.datasource.url=jdbc:postgresql://192.168.56.102:5432/scibase
spring.datasource.type=org.postgresql.ds.PGPoolingDataSource 
spring.datasource.username=lemon
spring.datasource.password=XXXXXX
spring.datasource.platform=postgres
spring.datasource.max-active=100
spring.datasource.name=Lime
spring.database.driverClassName=org.postgresql.Drive

Stack Trace (Сводка) 

org.springframework.beans.factory.BeanCreationException: Ошибка создание компонента с именем'lationalDatabase ': внедрение autowired сбой зависимостей; Вложенное исключение org.springframework.beans.factory.BeanCreationException: не удалось метод autowire: public void com.scientifi.papers.db.relational.RelationalDatabase.setDataSource (javax.sql.DataSource);

вложенное исключение org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'dataSource', определенным в ресурсе пути к классу [Орг/springframework/загрузки/Автоконфигурирование/JDBC/DataSourceAutoConfiguration $ NonEmbeddedConfiguration.class]: Инстанцирование бина через фабричный метод не удалось; 

вложенное исключение org.springframework.beans.BeanInstantiationException: не удалось instantiate [javax.sql.DataSource]: фабричный метод 'dataSource' сгенерировал исключение; Вложенное исключение org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException: Не удается определить класс встроенного драйвера базы данных для типа базы данных НИКТО. Если вы хотите встроенную базу данных, пожалуйста, поместите поддерживаемую в путь к классам Если у вас есть настройки базы данных для загрузки из определенный профиль вам может потребоваться активировать его (профили "dev" в настоящее время активны).

Спасибо!

4
Prichmp

Вы забыли "r" в драйвере? ( Невозможно определить класс встроенного драйвера базы данных для типа базы данных NONE )

spring.database.driverClassName=org.postgresql.Driver

вместо 

spring.database.driverClassName=org.postgresql.Drive
3
haihui

Я получил то же исключение, когда тестировал приложение Spring Boot от Junit.

Я решил это, используя @SpringApplicationConfiguration (classes = Application.class) над классом Junit Test. Приложение Spring Boot не инициализировалось должным образом

0
dassum