Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于如何知道组件(spring/jetty)是否已完全初始化的方法_Java_Spring_Swing_Design Patterns_Jetty - Fatal编程技术网

Java 关于如何知道组件(spring/jetty)是否已完全初始化的方法

Java 关于如何知道组件(spring/jetty)是否已完全初始化的方法,java,spring,swing,design-patterns,jetty,Java,Spring,Swing,Design Patterns,Jetty,我有一个后端服务器(Jetty),它处理HTTP请求并与MySQL数据库交互 这一切都是用弹簧连接起来的 我在Swing中还有一个UI前端,用作管理员工具(用户可以与DB等进行交互) 现在服务器和UI有些捆绑,这意味着当主类开始加载时,它首先启动Spring上下文,然后启动UI(在EDT线程中)。 因此,本质上只要UI运行,服务器就会监听请求 我的问题如下: 我希望在服务器完全初始化后显示GUI,实际上我更希望在GUI启动期间实际连接到服务器并获取一些数据,以便在GUI出现在屏幕上时显示这些数据

我有一个后端服务器(Jetty),它处理HTTP请求并与MySQL数据库交互

这一切都是用弹簧连接起来的

我在Swing中还有一个UI前端,用作管理员工具(用户可以与DB等进行交互)

现在服务器和UI有些捆绑,这意味着当主类开始加载时,它首先启动Spring上下文,然后启动UI(在EDT线程中)。
因此,本质上只要UI运行,服务器就会监听请求

我的问题如下:

我希望在服务器完全初始化后显示GUI,实际上我更希望在GUI启动期间实际连接到服务器并获取一些数据,以便在GUI出现在屏幕上时显示这些数据

现在,我通过在EDT线程中开始创建GUI之前添加几秒钟的睡眠来实现这一点。
这就解决了问题,但延迟是任意的,我想这取决于目标机器。
此外,它还使GUI需要很长时间才能显示(现在的延迟为10秒)

我试图找出最好的方法,在显示GUI之前知道Spring上下文和后端Jetty已经完全初始化

我想有一种方法是尝试向服务器发送请求,如果请求失败,则继续尝试多次,直到成功,然后显示GUI

但我想知道是否有更标准的方法


欢迎任何意见

要检查Spring应用程序是否已加载,可以实现Spring接口并侦听

如果从Spring上下文(如中)启动Jetty,则在收到ContextRefreshedEvent后,它将被完全初始化。 如果您使用其他机制启动Jetty,您可以向它发出http请求,因为http连接器设置在Jetty启动序列的末尾。

1)创建空GUI,其中一个按钮用于启动,第二个按钮用于中断

2) 或者我看到了一些使用JWindow/JDialog的实现

然后在这里放置一个或多个显示来自

3) 在
trayIcon.displayMessage()
的末尾创建并显示进度,以显示GUI或放置在此处的JPopupMenu

4) 您可以在a_la StatusBar中的一个水平JPanel(行)中创建大量无边框的JProgressBars(我创建了9个JProgressBars作为带有工具提示的侦听过程)