весенняя загрузка: как настроить источник данных из свойств приложения

<p>я хочу, чтобы следующие значения кода: <code>driverclassname</code>, <code>url</code>, <code>username</code>, <code>password</code> были прочитаны из файла <em>application.properties</em>, как это сделать? я использую spring boot, mysql, hibernate и spring rest.</p><p><strong> datasourceconfig.java </strong></p><pre><code> //this is working fine with inline value specified as below (driverclassname, url,username,password @configuration @enabletransactionmanagement @enablejparepositories(basepackages = "com.nouhoun.springboot.jwt.integration.repository") public class datasourceconfig { @bean public datasource datasource() throws propertyvetoexception { final drivermanagerdatasource datasource = new drivermanagerdatasource(); datasource.setdriverclassname("com.mysql.jdbc.driver"); datasource.seturl("jdbc:mysql://localhost:3306/fdb?createdatabaseifnotexist=true"); datasource.setusername("root"); datasource.setpassword(""); return datasource; } .... .... .... </code></pre>

<p>после того как вы определили свойства источника данных в <code>application.properties</code> в <code>@springbootapplication</code>, он автоматически настроит вас <code>datasource</code>, чтобы вы могли удалить <code>datasource configuration</code>, но все же, если вы хотите настроить конфигурацию источника данных, то ниже должно работать, так как <code>environment</code> предоставит вам доступ к свойствам.</p><pre><code>@configuration @propertysource(value= {"classpath:application.properties"}) public class datasourceconfig { @autowired environment environment; @bean public datasource datasource() throws propertyvetoexception { final drivermanagerdatasource datasource = new drivermanagerdatasource(); datasource.setdriverclassname(environment.getproperty("spring.datasource.driver-class-name")); datasource.seturl(environment.getproperty("spring.datasource.url")); datasource.setusername(environment.getproperty("spring.datasource.username")); datasource.setpassword(environment.getproperty("spring.datasource.password")); return datasource; } } </code></pre><p>или id не хочет обращаться к свойствам через <code>environmetn</code>, вы можете получить доступ по <code>@value</code></p><pre><code> @value("${spring.datasource.driver-class-name}") private string drivername; @value("${spring.datasource.url}") private string url; @value("${spring.datasource.username}") private string username; @value("${spring.datasource.password}") private string password; @bean public datasource datasource() throws propertyvetoexception { final drivermanagerdatasource datasource = new drivermanagerdatasource(); datasource.setdriverclassname(drivername); datasource.seturl(url); datasource.setusername(username); datasource.setpassword(password); return datasource; } </code></pre>

<p>кажется, вы забыли добавить зависимость в ваш pom.xml или build.gradle, или ваша сборка не имеет этой зависимости, если вы уже добавили (запустите<strong> mvn clean install </strong>)</p><pre><code><dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>6.0.6</version> </dependency> </code></pre><p>пожалуйста, добавьте и попробуйте снова</p>