mem*_*und 5 java session spring vaadin vaadin7
我想用spring开发一个vaadin应用程序.用户应该能够登录并查看特定于用户的页面.我从不同的浏览器窗口访问该站点,如果用户仍然登录则会很方便,因此保留了会话.
现在我想知道为此目的使用哪个范围?Vaadin和Spring提供@Scope("session"),@Scope("ui")和@Scope("prototype").我应该将所有*View和*Presenter类放在session范围内吗?
或者将视图注释为更好prototype,以便每次更改页面时都会使用更新的数据重新创建页面?在这种情况下,演示者应该仍然是会话范围,还是prototye?
或者我应该使用boot addon ui提供的范围vaadin4spring?然后,这将为每个新选项卡创建一个新的"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()));
}
}
Run Code Online (Sandbox Code Playgroud)
vaadin 在会话中存储(大量)状态。状态几乎是客户端在浏览器中可见的任何东西。如果涉及任何组件,则应使用 ui 范围。即使 ui 和 session 看起来相同,您也应该坚持使用 ui 以防止出现竞争条件,甚至更糟糕的是 vaadin 代码。
在上面的示例中,视图绝对是 ui,因为它是一个组件。这使得演示者 ui 也保存了对 ui 作用域组件的引用,并且肯定会利用其中的事件或读取数据等。
| 归档时间: |
|
| 查看次数: |
4229 次 |
| 最近记录: |