gpt4 book ai didi

java - 哪个范围与 vaadin 和 spring 一起使用?

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:18 25 4
gpt4 key购买 nike

我想用 spring 开发一个 vaadin 应用程序。用户应该能够登录并查看用户特定的页面。如果他从不同的浏览器窗口访问该站点,如果用户仍处于登录状态会很方便,因此保留 session 。

现在我想知道为此目的使用哪个范围? Vaadin 和 Spring 提供了一个 @Scope("session")@Scope("ui") 和一个 @Scope("prototype") .我是否应该将所有 *View 和 *Presenter 类放在 session 范围内?

或者用 prototype 注释 View 会更好,这样每次页面更改时,页面都会用更新后的数据重新创建?在这种情况下,演示者应该仍然是 session 范围,还是原型(prototype)?

或者我是否应该使用 vaadin4spring 引导插件提供的 ui 作用域?这将为每个新选项卡创建一个新的“uiSession”。

@Scope("session")
class MyPresenter {
//each view should be wired to a presenter
@Autowired
private MyView view;
}

@Scope("prototype") //"session", "ui"?
class MyView extends VerticalLayout {
@PostConstruct
public void init() {
addComponent(new Label("time is: " + new Date()));
}
}

最佳答案

vaadin 在 session 中存储(大量)状态。 state 几乎可以是客户端在浏览器中可见的任何东西。如果涉及任何组件,则 ui 范围是您应该使用的范围。即使 ui 和 session 看起来相同,您也应该坚持使用 ui 以防止竞争条件和更糟糕的 vaadin 代码。

在您上面的示例中, View 定义为 ui,因为它是一个组件。这使得演示者 ui 也保持对 ui 范围组件的引用,并且肯定会利用它的事件或读取数据等。

关于java - 哪个范围与 vaadin 和 spring 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com