我有一个OSGi目标平台,包括Equinox,Spring Framework,Spring DM和我的应用程序的几个自定义包。我的所有包都包含Spring应用程序上下文,因此由Spring OSGi扩展程序自动加载。
我的一些包包含Swing ui组件。问题是Spring OSGi Extender没有在AWT EventQueue上创建这些应用程序上下文,这导致了几个ui问题。
到目前为止,我发现的唯一解决方法是为spring-osgi-extender创建一个片段包,并按照here配置“taskExecutor”。基本上我的自定义taskExecutor实现将所有execute()调用转发到AWT EventQueue。这不是一个很好的解决方案,因为我的应用程序中的所有Spring驱动的bundle都将在AWT线程上创建,在启动时减慢ui(并且基本上杀死了我们的启动屏幕加载状态,因为它没有任何刷新)。
关于如何在AWT EventQueue上创建Spring / Swing包的任何想法?