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

带有Spring boot starter数据jpa和Spring boot startor测试的Spring Boot应用程序使Spring找不到应用程序属性

訾高明
2023-03-14

我创建了一个带有Spring boot的小应用程序,它使用Spring数据访问数据库(mySql):

  • Spring引导启动器父级:2.4.2
  • Spring引导起动机网:2.4.2
  • spring boot starter数据jpa:2.4.2
  • mysql连接器java:8.0.22
  • Spring启动装置测试:2.4.2
  • 组织junit。木星:5.7.0
  • junit jupiter引擎:5.7.0

我已经在src/main/Resources中配置了我的application.properties,并配置了url、用户名、密码、驱动程序等属性,如下所示:

spring.datasource.url=jdbc:mysql://localhost:3306/BBDD
spring.datasource.username=XXX
spring.datasource.password=XXXX
spring.datasource.driver=com.mysql.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect:org.hibernate.dialect.MySQL5Dialect

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

我有一个用于访问数据库的存储库接口:

@Repository
public interface ArticleRepository extends PagingAndSortingRepository<ArticuloEntity, Integer> {

}

此外,我已经定义了我的实体。

问题在于当我启动我的webapp时,我得到一个错误,因为它没有从应用程序中读取用于配置数据源的参数。属性:

描述:

未能配置数据源:未指定“url”属性,无法配置嵌入式数据源。

原因:无法确定合适的驱动程序类别

操作:

请考虑以下事项:如果您想要嵌入式数据库(H2、HSQL 或 Derby),请将其放在类路径上。如果要从特定概要文件加载数据库设置,则可能需要激活它(当前没有配置文件处于活动状态)。

如果我删除Spring启动启动器测试和 junit 的依赖项,应用程序加载正常,并且可以访问数据库。但是,如果我添加用于添加 junit 的依赖项,它不会读取我的 application.properties 文件,并且我会收到上一个错误。

如何使用junit配置我的应用程序并使用application.properties文件读取应用程序的配置?

先谢谢你!

共有2个答案

孙星鹏
2023-03-14

检查您的应用程序。属性

改变

spring.datasource.driver=com.mysql.jdbc.Driver

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
夏星阑
2023-03-14

您的测试/应用程序属性也需要配置。尝试将其添加到测试应用程序属性文件中

spring.datasource.url=jdbc:h2:mem:BBDD;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE

如果你还不支持h2,这是你的pom。

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>test</scope>
    </dependency>
 类似资料:
  • 2015年7月30日,我们的Spring Boot应用程序运行良好,但当我们在2015年8月3日尝试运行它时,它失败了,出现了以下错误: 任何帮助都将不胜感激!

  • 我正在尝试关闭本地mysql数据库的ssl。但我无法在spring应用程序中找到实际属性。属性文件,该文件将执行此操作。 我当前的文件是: 我试过Spring。数据源。useSSl=false,这不起作用。我也尝试过spring。数据源。url=jdbc:mysql://localhost:3306/test

  • 我正在学习Spring boot application,并且有使用xml和java配置的Spring应用程序的经验。 我使用的应用程序具有包含UI、服务和DAO的代码基体系结构。所有这些组件都有单独的上下文文件,即。web-applicationcontext.xml或application-servlet-context.xml、service-context.xml和data-context

  • 我在src/main/resources下创建了2个文件: 应用程序。属性 第一个具有从env变量中获取值的属性,而后者具有固定值。 根据这里的具体情况,我以这样的方式推出了Spring靴: 然而,不会产生任何影响,并且应用程序是局部的。属性似乎被忽略。 有什么提示吗?

  • 使用spring-boot时,一切工作都很好。尽管如此,在spring-boot中已删除了注释和。我试图将代码重构为新版本,但我做不到。对于以下测试,我的应用程序在测试之前没有启动,http://localhost:8080返回404: 如何重构测试以使其在Spring-Boot1.5中工作?

  • 我从一个新项目开始,目前正在评估是否使用JPA或JDBC。我们的操作主要是大容量插入和大容量读取,很少是单次插入/读取。我用JPA和JDBC检查了一个原型,意识到两者都有自己的优点和局限性。考虑到当前的用例,对于一个事实,我将永远只有大容量读和大容量写,哪一个会是更好的选择? Spring JPA Repository提供了一个简单的方法save(Collection),该方法既可以收集又可以保存