在没有XML的Spring中配置数据源URL

傻怪胎

我有一个使用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=...

然后马库斯

DataSourceSpring 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Spring xml中配置休眠数据源

无法配置数据源:未指定“URL”属性并没有嵌入数据源可以配置。弹簧

在 Spring Boot 中配置数据源

Spring Boot在以编程方式配置数据源时没有选择spring.datasource.tomcat。*?

在persistence.xml和spring配置文件中配置数据源之间的区别

配置,服务器无法配置数据源:未指定“URL”属性并没有嵌入数据源可以配置

春季启动:无法配置数据源:未指定“URL”属性并没有嵌入数据源可以配置

如何在Spring中配置数据源?

从Java配置数据源(无XML)

在Spring xml文件中隐藏数据源密码

在没有数据源的Wildfly中启动.war

Angular MatTable中没有数据源检测

无法配置数据源:“ URL”

Spring Boot 数据源配置

使用 spring 的数据源配置

没有数据源的Jasperreport

在Hibernate多租户配置中禁用Spring数据源配置

在XQuery中修饰XML数据源

通过Spring xml数据源配置postgresql驱动程序

我无法配置两个数据源JPA Spring XML WildFly

没有数据源配置为运行此SQL

无法配置数据源:未使用Spring Boot指定'url'属性

Spring Boot jdbc问题。无法配置数据源:未指定'url'属性,并且无法配置任何嵌入式数据源

SpringBoot2 无法自动配置数据源:未指定“spring.datasource.url”并且无法自动配置嵌入式数据源

Spring ApplicationContext中的数据源hsqldb

JPA 应用程序管理的持久化上下文数据源配置与 java 没有持久化 xml 文件

春季启动YAML自动数据源配置问题 - 数据源的URL不会回升

具有application.properties的spring-boot数据源配置文件

使用JNDI在Spring Boot中配置多个数据源