Spring在JavaFX应用程序中 - 如何将属性句柄作为依赖?

时间:2017-06-06 13:32:46

标签: spring spring-boot javafx spring-ioc

我有一个使用spring boot的JavaFX应用程序,完全如本博文中所述:

http://www.greggbolinger.com/let-spring-be-your-javafx-controller-factory/

我正在使用FXML加载程序覆盖控制器工厂以使用spring。

问题是Spring在应用程序启动时加载标记为@Component的控制器类,如果标记为@Lazy,则加载,但将bean保留在内存中。

如果我打开一个舞台,修改数据,关闭舞台并再次打开它,数据仍然存在(因为控制器是由春天保存的)。如果我打开两个相同的舞台(窗口),它也会妨碍它。它共享相同的控制器,所以如果我修改一个,另一个修改,这不是理想的行为。

如何使用spring正确处理JavaFX控制器?

谢谢!

1 个答案:

答案 0 :(得分:3)

将控制器标记为具有 prototype 范围,以便在每个请求上创建新实例:

@Component
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class Controller {
    // ...
}