首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自测试集成到Spring-Integration中?

如何将自测试集成到Spring-Integration中?
EN

Stack Overflow用户
提问于 2020-09-30 20:26:21
回答 3查看 52关注 0票数 0

我想在spring集成开始后启动一个want to。我的第一种方法是在设置集成流之后启动它:

代码语言:javascript
复制
@Configuration
@EnableIntegration
@EnableIntegrationManagement
@IntegrationComponentScan
public class FlowConfig {
...
    @PostConstruct
    public void startSelfTest() {
        SelfTest selfTest = new SelfTest(rezeptConfig, dataSource, archiveClient);
        selfTest.run();
    }
...
}

这是不起作用的,因为当测试开始时,数据库中的表丢失了,因为liquibase还没有启动。我猜liquibase脚本将在初始化后启动。

你知道从哪里开始自我测试是最好的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-30 21:59:39

那么,进行低级资源交互的最佳实践是在应用程序上下文中初始化所有内容时。这就是beans根据其SmartLifecycle实现启动的阶段。

因此,我建议从一些SmartLifecycle.start()修改您的解决方案。

这正是我们在Spring Integration中到处做的事情。(请确保我们谈论的是完全相同的Spring Integration:https://spring.io/projects/spring-integration)

欲了解更多信息,请访问:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-lifecycle-processor

票数 0
EN

Stack Overflow用户

发布于 2020-09-30 20:37:16

只是猜测一下,ApplicationListener中的onApplicationEvent事件会怎么样呢?这是在Spring初始化并准备就绪时调用的。

例如,检查这一个How to add a hook to the application context initialization event?

票数 0
EN

Stack Overflow用户

发布于 2020-09-30 21:07:07

负责创建和更新DB表的Liquibase bean在我的Selftest之后启动。一种解决方案是将@DependsOn与@Bean注释一起使用:

代码语言:javascript
复制
    @Bean
    @DependsOn("liquibase")
    public SelfTest startSelfTest() {
        SelfTest selfTest = new SelfTest(rezeptConfig, dataSource, archiveClient);
        selfTest.run();
        return selfTest;
    }

现在,在Liquibase之后启动自测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64137551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档