【问题标题】:How to start with Spring and Hibernate [closed]如何开始使用 Spring 和 Hibernate [关闭]
【发布时间】:2016-09-10 20:18:33
【问题描述】:

我需要做的是基于 Vaadin 框架的简单 Spring + Hibernate 应用程序。 我在java中很新。我看了几十个小时的教程,并阅读了我发现的所有内容。但我找不到答案。

我使用 spring initializr 来创建我的应用程序的基础(使用 JPA、Vaadin、JDBC)检查。如果我对此发表评论,我发现了如何启动应用程序:

SpringApplication.run(RentalApplication.class, args);

但它不是我要寻找的情况,我想使用 Spring。 我坚持:

'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed;

我找到了带有 web.xml 配置的教程,但是基于 Vaadin 项目中没有 web.xml。

大部分教程已经过时,或者假设你已经对 Hibernate 和 Spring 框架了解很多。

【问题讨论】:

  • 请发布错误的整个堆栈跟踪。
  • 您是否在 pom.xml 中添加了对数据库 jdbc 驱动程序的依赖项?
  • 是的,我添加了 jdbc4,我在 .xml 中创建了 DAO、模型、bean 配置。如果我评论 Spring bootstrap,我可以运行应用程序。但事实并非如此。
  • 再次,如果您想要一个准确的响应,请发布堆栈跟踪,但我猜您没有为 Spring boot 提供正确的配置来连接到您的数据库。您需要将属性“spring.datasource.url”和“spring.jpa.database-platform”添加到您的 application.properties。
  • 谢谢,解决了我的问题。我想知道为什么没有人在教程中提到你可以在 spring application.properties 中做到这一点......

标签: java spring hibernate vaadin


【解决方案1】:

为了完成答案,在不使用 H2 等嵌入式数据库时,为了让 Spring Boot 与 JDBC 和 JPA 一起工作,还需要在 Spring Boot 配置文件中进行设置:application.properties(如果使用 yml,则为 application.yml )

以 PostgreSQL 为例:

spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase
spring.datasource.username=myusername
spring.datasource.password=mypassword
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

您在网上找到的教程可能使用了 H2 数据库,这就是它们不包含这些设置的原因。

在任何情况下,当然您还需要对 JDBC 驱动程序的依赖(例如在 pom.xml 中)

顺便说一下,这里是官方文档的链接,里面有详细解释:

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-configure-datasource

以及关于嵌入式数据库的具体部分:

Spring Boot 可以自动配置嵌入式 H2、HSQL 和 Derby 数据库。您无需提供任何连接 URL,只需将构建依赖项包含到您要使用的嵌入式数据库即可。

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 2010-12-09
    • 2015-09-30
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 2020-04-28
    • 2013-11-05
    • 2010-09-07
    相关资源
    最近更新 更多