我正在使用Spring和Swing。单击按钮时,将调用以下代码块。
@SpringBootApplication
public class ProcessFile {
public String startProcess() {
ConfigurableApplicationContext context = SpringApplication.run(ProcessFile.class);
ReadFile readFile = context.getBean(ReadFile.class);
return readFile.getData();
}
}
但我只是想知道如果我多次点击那么会创建多个Spring上下文还是存在其他一些问题。我的UI只有一个JPanel来选择一个文件并调用这个执行许多任务的startProcess方法。或者,当下面的代码块执行完成时,是否会销毁SpringContext?
答案 0 :(得分:0)
我认为你的健康应该只在应用程序中有一个spring应用程序上下文:)
为此,您可以实现CommandLineRunner并显示Swing应用程序:
@Component
public class Runner implements CommandLineRunner {
/**
* the JFrame to be displayed.
*/
@Autowired
private DemoFrame frame;
@Override
public void run(String... args) throws Exception {
/* display the form using the AWT EventQueue */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
frame.setVisible(true);
}
});
}
}
@Component
public class DemoFrame extends JFrame{
// other code here....
@Autowired
ReadFile readFile;
public String startProcess() {
return readFile.getData();
}
// other code here....
}