Spring Boot Hibernate 启动缓慢

3
@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
public class MyTest {

    @Autowired AppsRepo appRepo;
    @Autowired OrdersRepo ordersRepo;

    @Test
    public void doTest() {
        System.out.println("hello world");
    }
}


@SpringBootApplication
@ComponentScan
public class Application {

    private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Application.class);


    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

我有一个非常简单的集成测试,使用hibernate和postgresql数据库。只有2个存储库和1个控制器。运行此集成测试需要约62秒钟。底层发生了什么?

我只有2个领域对象和2个存储库。有没有办法加速测试?看起来大部分时间都花在hibernate上。

62秒中的40秒被用于此处 -

2016-11-18 15:58:52.264  INFO 8424 --- [restartedMain] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL92Dialect
2016-11-18 15:59:31.528 DEBUG 8424 --- [restartedMain] o.h.e.j.env.spi.IdentifierHelperBuilder  : JDBC driver metadata reported database stores quoted identifiers in neither upper, lower nor mixed case

你试过使用 DevTools 吗?这是链接 https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3 - Abdullah Khan
启用调试,你将亲眼看到所有的过程。整个Spring/Hibernate加载/引导过程中执行了大量操作。长时间的加载可能也是一些连接问题的问题 - 只需再次进行调试即可。 - Sergey Benner
@SergeyBenner更新了问题,即使使用调试日志记录,也没有什么有趣的东西。 - user12384512
@user12384512 在那一点过后会发生什么?它是否打印出任何错误或其他内容?将调试信息放到Hibernate中https://dev59.com/i3M_5IYBdhLWcg3wcCnc - Sergey Benner
@SergeyBenner 所有调试和跟踪日志已启用。看不到任何可疑的东西。问题包含应用程序在60秒中花费40秒的日志部分。 - user12384512
1个回答

4

将以下属性添加到您的Hibernate配置中:

hibernate.temp.use_jdbc_metadata_defaults=false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接