运行 并关闭来自父应用的子上下文
Run and close child context from parent app
我正在使用 spring 应用程序构建器从父级 运行 子上下文应用程序(spring 云任务)。我还将 运行ning 父上下文传递给子应用程序的构建器 - 它定义了 DataSource bean,我希望它也被任务使用。
我的问题是,当子上下文关闭时,所有父 bean 也被销毁。
难道我做错了什么?
如何与子上下文共享父上下文中的 bean,并在子上下文退出时仍然保持它们的活动状态。
@Component
public class ClassInParentContext{
@Autowired
private ConfigurableApplicationContext parentAppCtx;
@Autowired
private DataSource ds; //this bean is defined in parent context and I want it to be passed to child but not to be disposed when the child context closes.
public void onSomeEventInParentContext(){
new SpringApplicationBuilder(com.app.child.Child.class)
.parent(parentAppCtx)
.run(args); //this context is autoclosed by spring cloud task
}
}
@EnableTask
public class Child{
}
谢谢
在与 spring-cloud-task
团队交谈后发现,父上下文在任务结束时隐式地、强制地和有意地关闭。
我正在使用 spring 应用程序构建器从父级 运行 子上下文应用程序(spring 云任务)。我还将 运行ning 父上下文传递给子应用程序的构建器 - 它定义了 DataSource bean,我希望它也被任务使用。
我的问题是,当子上下文关闭时,所有父 bean 也被销毁。 难道我做错了什么?
如何与子上下文共享父上下文中的 bean,并在子上下文退出时仍然保持它们的活动状态。
@Component
public class ClassInParentContext{
@Autowired
private ConfigurableApplicationContext parentAppCtx;
@Autowired
private DataSource ds; //this bean is defined in parent context and I want it to be passed to child but not to be disposed when the child context closes.
public void onSomeEventInParentContext(){
new SpringApplicationBuilder(com.app.child.Child.class)
.parent(parentAppCtx)
.run(args); //this context is autoclosed by spring cloud task
}
}
@EnableTask
public class Child{
}
谢谢
在与 spring-cloud-task
团队交谈后发现,父上下文在任务结束时隐式地、强制地和有意地关闭。