Что делать, если я не хочу устанавливать источник данных в application.properties? - PullRequest
1 голос
/ 03 февраля 2020

У меня есть приложение весенней загрузки. И есть драйвер postgres. Но я не хочу устанавливать

spring.datasource.url=jdbc:postgresql://localhost:5432/app

spring.datasource.username=postgres
spring.datasource.password=qwerty

в application.properties, потому что я сделал это позже в коде.

Если я удалю эту часть, у меня возникнет проблема:

Description:

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

Reason: Failed to determine suitable jdbc url

Как это исправить?

UPD:

    @RequestMapping(value = "setdb/{url}/{db}/{schema}/{login}/{password}")
    public String setDB(@PathVariable(name = "url") String url,
                        @PathVariable(name = "db") String db,
                        @PathVariable(name = "schema") String schema,
                        @PathVariable(name = "login") String login,
                        @PathVariable(name = "password") String password) throws SQLException, ClassNotFoundException {

        this.url = url;
        this.db = db;
        this.schema = schema;
        this.login = login;
        this.password = password;

        Class.forName("org.postgresql.Driver");

        url = "jdbc:postgresql://" + url + "/" + db + "?currentSchema=" + schema + "/";
        connection = DriverManager.getConnection(url, login, password);
//anothercode
}

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Вы должны определить его в файле .properties, а затем использовать его в качестве источника в классе java, поскольку рекомендуется определять свойства в отдельных файлах. В качестве примера я использую свойства базы данных в своем классе конфигурации Hibernate по аннотации @PropertySource(value = "classpath:db.properties")

1 голос
/ 03 февраля 2020

Spring Boot автоматически настраивает источник данных: если вы не хотите этого, потому что хотите позаботиться об этом сами или по другим причинам (например, я отключаю его во время модульного тестирования), вы можете использовать аннотацию

@SpringBootApplication(exclude = {
  DataSourceAutoConfiguration.class
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...