Spring 在 JavaFX 应用程序中 - 如何 属性 将控制器作为依赖项处理?
Spring in a JavaFX application - how to property handle controller as dependency?
我有一个使用 spring 引导的 JavaFX 应用程序,完全按照此博客 post:
中的描述
http://www.greggbolinger.com/let-spring-be-your-javafx-controller-factory/
我正在使用 FXML 加载程序覆盖控制器工厂以使用 spring。
问题是 Spring 在应用程序启动时加载标记为 @Component 的控制器 class 或稍后如果标记为 @Lazy,但将 bean 保留在内存中。
如果我打开一个舞台,修改数据,关闭舞台并再次打开,数据仍然存在(因为控制器被 spring 保留)。如果我打开两个相同的舞台 (window),它也会妨碍。它共享同一个控制器,所以如果我修改一个,另一个也会修改,这不是期望的行为。
如何使用 spring 正确处理 JavaFX 控制器?
谢谢!
将控制器标记为具有 prototype 作用域,以便在每次请求时创建一个新实例:
@Component
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class Controller {
// ...
}
我有一个使用 spring 引导的 JavaFX 应用程序,完全按照此博客 post:
中的描述http://www.greggbolinger.com/let-spring-be-your-javafx-controller-factory/
我正在使用 FXML 加载程序覆盖控制器工厂以使用 spring。
问题是 Spring 在应用程序启动时加载标记为 @Component 的控制器 class 或稍后如果标记为 @Lazy,但将 bean 保留在内存中。
如果我打开一个舞台,修改数据,关闭舞台并再次打开,数据仍然存在(因为控制器被 spring 保留)。如果我打开两个相同的舞台 (window),它也会妨碍。它共享同一个控制器,所以如果我修改一个,另一个也会修改,这不是期望的行为。
如何使用 spring 正确处理 JavaFX 控制器?
谢谢!
将控制器标记为具有 prototype 作用域,以便在每次请求时创建一个新实例:
@Component
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class Controller {
// ...
}