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

spring-boot-data-starter-jdbc上的Spring Boot自动重新配置不起作用

戚兴思
2023-03-14
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
@Bean
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource() {
    @SuppressWarnings("rawtypes")
    DataSourceBuilder builder = DataSourceBuilder.create();
    return builder.build();
}
spring.datasource.jdbcUrl=jdbc:postgresql://localhost:5432/test
spring.datasource.username= dummy
spring.datasource.password=dummy
spring.datasource.platform=postgresql

谢谢和问候,维拉

共有1个答案

赵浩邈
2023-03-14

我强烈建议您避免使用自动重新配置。它对于演示来说很酷,但最终很难真正使用。它有点太神奇了,当它不工作时很难调试,这就是您在这里遇到的情况。

还有其他几种方法可以做到这一点:

  • Spring Boot将vcap_services公开为vcap.services. .credentials.username 等属性。您可以使用它们来手动定义数据源。看这里。将其与“cloud”配置文件结合使用,可以轻松地在local和cloud之间切换。
  • 您可以使用Spring Cloud连接器。当您使用SCC时,自动重新配置将自动退出。然后可以使用SCC选择服务并从中获取数据源。
  • 您可以使用新的java-cfenv库,它旨在更好地补充Spring Boot。
 类似资料:
  • 问题内容: 我试图将@NotNull约束添加到我的Person对象中,但是我仍然可以@POST具有空电子邮件的新Person。我在MongoDB上使用Spring Boot Rest。 实体类: 存储库类: 应用类别: pom.xml 当我通过邮递员@POST一个新对象时,例如: 我仍然使用此有效负载创建: 问题答案: 我遇到了同样的问题,但是仅启用验证对我而言不起作用,这确实与JPA和Mongo

  • 我有一个简单的SpringBoot应用程序,我想使用AutoConfiguration来配置Tomcat jdbc池数据源。 我正在使用这些Spring依赖项: 以下是我的 application.yml 文件中的数据源属性: 我确定正在加载属性,因为应用程序正在获取其他值。 我在配置文件中将 bean 定义为: 我将数据源注入到我的DAO中,如下所示: 如果我在getDataSource()方法

  • 我有一个很好的小Spring Boot JPA web应用程序。它部署在Amazon Beanstalk上,并使用Amazon RDS持久化数据。然而,它并不经常使用,因此会在一段时间后失效,这是一种例外: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收的最后一个数据包是79,870,633毫秒之前。 成功发送到服务

  • 我有一个很小的Spring Boot应用程序(这只是一个概念证明),它运行在H2内存数据库上,并使用spring-data-jpa来处理持久性。它由一个允许处理帖子和评论的REST API组成,因此您可以创建和检索帖子以及对那些帖子的评论。应用程序有两个JPA实体和,我面临的问题是,在添加实体之后,应用程序无法启动,但是在添加之前,当我刚刚拥有实体时,应用程序已经启动并通过了测试。看来spring

  • 简介 ShardingSphere-JDBC 提供官方的 Spring Boot Starter,使开发者可以非常便捷的整合 ShardingSphere-JDBC 和 Spring Boot。 数据源配置 spring.shardingsphere.schema.name= # JDBC数据源别名 spring.shardingsphere.datasource.names= # 数据源名称,

  • 当我开始学习spring-webflux时,我有一个关于这个组件的问题。 我构建了一个简单的项目,使用maven管理该项目,并添加了关于spring-boot-starter-web和spring-boot-starter-webflux的依赖关系“,例如: