spring-boot-在DatasourceAutoConfiguration之前运行的初始化程序?

时间:2019-04-23 07:24:33

标签: spring spring-boot

我正在使用spring-bootspring-boot-testDataSourceAutoConfigrationorg.testcontainers来准备数据库。在春季测试中,我只想在配置文件org.testcontainer.mariadb中运行ci,而整个测试套件只能运行一次。

因为我在30〜40个测试类中使用@MockBean,所以ApplicationContext也被创建了30〜40次。因此,如果我尝试将org.testcontainer用作bean,那么该bean将被创建多次。

在这种情况下,如何在整个测试套件中仅对配置文件ci运行org.testcontainer?

或更抽象的形式,如何创建按需要运行的spring初始化程序。


我认为我可以通过在<cinit>中启动org.testcontainer来解决。但是由于在Spring生效之前被调用,所以我无法访问Spring环境来检查配置文件ci

1 个答案:

答案 0 :(得分:0)

我可以使一个初始化器代替<cinit>来运行org.testcontainer作为单例。在启动任何自动配置之前,将调用初始化程序,并且可以访问ApplicationContext。