我想要两个配置文件,一个使用MySQL数据源,另一个使用H2数据源。所以我创造了
application.properties:
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://localhost:3306/boilerplate_springboot_restapi
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
和
application-test.properties:
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=admin
spring.datasource.password=admin
我使用选项-Dspring.profiles。active=使用测试配置文件运行应用程序的测试。
有趣的是,测试配置文件似乎拾取了H2数据源,而不是方言,因此它崩溃了。如果我将 H2 配置放在 application.properties 中,它工作正常。
这里是运行测试配置文件的日志:
[ restartedMain] c.b.r.SpringBoot2RestServiceApplication : The following profiles are active: test
...
[ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:testdb'
[ task-1] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
[ task-1] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.17.Final
[ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
[ task-1] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
[ task-1] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
...
Hibernate: drop table if exists book
Hibernate: drop table if exists hibernate_sequence
Hibernate: create table book....
[ task-1] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "create table book
我认为错误的冬眠方言是崩溃的根本原因。但我不明白我做错了什么。
更新:如果我在application.properties中设置H2Dialect,它会正确地拾取它...就像主文件中的设置优先于配置文件属性文件中的设置...
更新:我在代码和pom中都没有任何@Profile.xml
更新:我创建了两个属性文件,一个用于MySQL,另一个用于h2,并将所有属性移动到那里。现在它似乎起作用了。
我发现这个Spring MVC应用程序存在类似的问题.属性不被配置文件appplication-dev.properties覆盖
您的生产配置使用
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
而您的测试配置使用
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
由于两者都存在,第一个将获胜(因为属性对象设置为最后一个)。因此在两个文件中使用相同的名称。
Spring Profiles不像预期的那样工作。我只有不到两个豆子。我要用于local、dev和mydevprofile的第一个Bean。我添加了,但它不起作用。我使用的是Spring Boot 2.0.1.Release
如果你的javascript语言基础还可以,应该明白类、基类、子类、父类等概念。如果你有这些类的概念,那么在学习Threejs的过程中,如何查找Threejs文档将会比较顺利。 点材质PointsMaterial、基础线材质LineBasicMaterial、基础网格材质MeshBasicMaterial、高光网格材质MeshPhongMaterial等材质都是父类Material的子类。 各种各
问题内容: 我正在尝试为旧框架实施一些单元测试。我正在尝试模拟数据库层。不幸的是,我们的框架有些陈旧,没有很好地使用最佳实践,因此没有明确的关注点分离。我有点担心尝试模拟数据库层可能会使JVM加载大量甚至无法使用的类。 我不太了解类加载器,所以这可能不是问题。是否有办法在一个特定的ClassLoader加载的所有类中发挥最大作用,以证明引擎盖下发生了什么? 问题答案: 警告使用 将产生巨大的产出。
您好,我正在建立一个动物园微服务,包括动物、员工、客户和价格表。我的动物微服务可以工作,但在我的员工微服务中,我遇到了一个错误,即没有为类型“EmployeeModel”找到属性“name”。在问这个问题之前,我已经在网上搜索了几个小时,还有一些类似的问题。我在模型中没有“名字”employee_name,我只是感到困惑,不知道如何修复它。任何指导/建议/信息将不胜感激:)第一次发布,所以我希望我
我有一个必须在生产中部署的Spring应用程序。不幸的是,我无法打开prod配置文件。我有一个application-dev.yml和application-prod.yml文件以及application.yml。我的application.yml如下: 因此,您可以看到我将和设置为prod。我还尝试使用maven和选项构建应用程序,但尽管如此,每次运行生成的war时,它都表示。 有人知道为什么p
在以下Spring Boot应用程序中,@Value注释在WebSecurityConfig类中成功,但在FileSystemUplad类中没有。在FileSystemUplad类中,值(测试)使用与WebSecurityConfig使用的相同属性文件导致null。 应用.java WebSecurityConfig.java(其中@Value注入工作正常) FileSystemUpload.ja