簡體   English   中英

在沒有XML的Spring中配置數據源URL

[英]Configuring data source URL in Spring without XML

我有一個使用Spring Boot與數據庫通信的簡單Web MVC應用程序。 DB是H2,並且一直在內存中。 我想更改它,因此使用jdbc:h2:file:... URL。

到目前為止,我不需要添加任何XML即可配置我的應用程序,如果可能的話,我希望它保持這種狀態。 但是我不知道如何指定另一個JDBC URL。 我通過將數據源傳遞給@Bean方法來獲取並檢查了數據源:

org.apache.tomcat.jdbc.pool.DataSource@745e6f01{ConnectionPool[
defaultAutoCommit=null; 
defaultReadOnly=null; 
defaultTransactionIsolation=-1; 
defaultCatalog=null; 
driverClassName=org.h2.Driver; 
maxActive=100; 
maxIdle=100; 
minIdle=10; 
initialSize=10; 
maxWait=30000; 
testOnBorrow=false; 
testOnReturn=false; 
timeBetweenEvictionRunsMillis=5000; 
numTestsPerEvictionRun=0; 
minEvictableIdleTimeMillis=60000; 
testWhileIdle=false; 
testOnConnect=false; 
password=********; 
url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE; 
username=sa; 
validationQuery=null; 
validationQueryTimeout=-1; 
validatorClassName=null; 
validationInterval=30000; 
accessToUnderlyingConnectionAllowed=true; 
removeAbandoned=false; 
removeAbandonedTimeout=60; 
logAbandoned=false; 
connectionProperties=null; 
initSQL=null; 
jdbcInterceptors=null; 
jmxEnabled=true; 
fairQueue=true; 
useEquals=true; 
abandonWhenPercentageFull=0; 
maxAge=0; 
useLock=false; 
dataSource=null; 
dataSourceJNDI=null; 
suspectTimeout=0; 
alternateUsernameAllowed=false; 
commitOnReturn=false; 
rollbackOnReturn=false; 
useDisposableConnectionFacade=true; 
logValidationErrors=false; 
propagateInterruptState=false; 
ignoreExceptionOnPreLoad=false; 
}

(我的換行符)

該bean的設置似乎很復雜,因此我想盡可能少地對其進行干預-只需替換默認的JDBC URL。

如何為Spring配置各個屬性以創建數據源? 最好使用Java,但如果有一種簡潔的XML方式,我也很高興。 我只想避免為url=...添加100行樣板

Spring Boot會自動為您配置一個DataSource 要影響如何設置以及設置幾個屬性,可以設置幾個屬性。 這些前綴以spring.datasource為前綴,有關完整列表,請參閱《 Spring Boot參考指南》

就您而言,只需將以下內容添加到application.properties文件

spring.datasource.url=jdbc:h2:file:...

這將告訴Spring Boot使用該URL而不是默認URL。

由於H2被認為是內存數據庫而不是常規數據庫,因此在使用JPA時,這將導致您的數據庫在應用程序停止時被刪除。 要解決此問題,只需添加以下內容

spring.jpa.hibernate.ddl-auto=update

要指定一種方言,只需添加以下內容

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

甚至更簡單

spring.jpa.database=H2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM