我有一个使用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方式,我也很高兴。我只是想避免添加100行样板,而这些工作相当于url=...
DataSource
Spring Boot为您自动配置了A。要影响方式和设置的属性,您可以设置几个属性。这些前缀为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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句