当前位置: 首页 > 知识库问答 >
问题:

带Application.Properties的spring-boot数据源配置文件

公西宏峻
2023-03-14

根据反馈更新问题:

我有一个spring-boot应用程序,它有三个数据库:H2用于集成测试,Postgresql用于qa和Production。由于spring-boot为您创建了默认的数据源,所以我没有为集成测试定义任何内容。我想我应该使用Application.Properties来定义我的数据源连接值,但我不确定处理这个问题的最佳方法是什么。

spring.profiles.active=production
appName = myProduct
serverPort=9001

spring.datasource.url=jdbc:postgresql://localhost/myDatabase
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driverClassName=org.postgresql.Driver

spring.jpa.hibernate.hbm2ddl.auto=update
spring.jpa.hibernate.ejb.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
spring.jpa.hibernate.show_sql=true
spring.jpa.hibernate.format_sql=true
spring.jpa.hibernate.use_sql_comments=false
spring.jpa.hibernate.type=all
spring.jpa.hibernate.disableConnectionTracking=true
spring.jpa.hibernate.default_schema=dental
spring.profiles.active=test
serverPort=9002

spring.datasource.url = jdbc:h2:~/testdb
spring.datasource.username = sa
spring.datasource.password = 
spring.datasource.driverClassName = org.h2.Driver

liquibase.changeLog=classpath:/db/changelog/db.changelog-master.sql
task setTestEnv {
    run { systemProperty "spring.profiles.active", "test" }
}
Caused by: org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:138)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
    at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:32)
    at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
    at org.postgresql.Driver.makeConnection(Driver.java:393)
    at org.postgresql.Driver.connect(Driver.java:267)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:288)
    ... 42 more
Caused by: java.net.ConnectException: Connection refused
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)

我还没有弄清楚如何在IntelliJ中设置默认的system.property==“test”...

共有1个答案

邴越彬
2023-03-14

请参阅Spring Boot文档的第21.3节。本节描述如何定义使用格式应用程序-{profile}.properties的配置文件特定属性文件。这可以帮助您在每个配置文件的基础上隔离属性。

 类似资料:
  • 我已经将数据源详细信息放在/resources/application.properties文件中:

  • 我已经在key cloak Console中给出了所有的角色、权限、资源和策略。但是为什么我必须在Application.Properties中再次给出角色和资源。如果我不给出Application.Properties中的角色和资源,所有的资源都是可访问的。所以,我在Application.Properties中实际上要提到什么。 keycloak中的评估 Application.Propert

  • 我有一个简单的Spring引导应用程序与2个外部罐子。每个jar都使用Spring JPA,并且完全配置为独立工作。 JAR1 这是我的Spring Boot应用程序的启动类 服务器启动时没有任何问题,但在配置jpa内容时存在一些问题。持久性单元ais的配置应使用Oracle方言和驱动程序。看来它拿起了JAR1的配置。 下一个问题是数据库访问。Spring不知道应该使用哪个事务管理器

  • 我正在使用Spring-Boot(1.5.9-release)构建一个应用程序,我希望将log4j2与它一起使用。 我想配置log4j2以使用JDBC连接记录到数据库表。 我的问题是我无法配置log4j2来使用我为Spring-Boot配置的数据源。 我的问题是我无法从Spring-Boot获得DataSource的实例。 我对依赖注入不是很熟悉,但我假设由于我需要Spring-Boot来注入数据

  • pom.xml已更新: spring.version=3.2.4.发布spring.security.version=3.1.4.发布 然后我添加了一个新的java配置类,而不是spring-security.xml null 有人能给出一个建议吗?

  • 我正在尝试配置Spring数据引导和ES项目在我的pom.xml我有: } 在我的pom xml中,我有这个dep: 这应该提供驱动程序,但我不断得到:描述: 无法确定数据库类型 NONE 的嵌入式数据库驱动程序类 行动: 如果你想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有配置文件处于活动状态)。