我目前正在开发三个Vaadin应用程序,但感觉似乎少了点什么。之前我使用的是Spring MVC,那里的架构清晰且解耦,你将服务注入到控制器中,不会将控制器与UI耦合等。
现在在Vaadin中有所不同。如果有任何Vaadin专家,请让我问几个问题:
问题1:
- 是否可以直接将服务(或DAO)注入到UI组件中?
- 示例:负责在电子邮件应用程序中显示联系人的组件(ContactWidget,基于VerticalLayout和Links),需要显示联系人。是否可以直接向此UI元素注入contactRepository?
问题2:
- 对于大量UI组件来说,都需要引用主应用程序,因为它们需要访问一些全局数据或在主应用程序类上调用全局方法
- 示例:弹出组件具有按钮,该按钮打开新窗口,应为应用程序中主窗口的子窗口。因此,弹出组件必须引用主应用程序。
问题3:
- UI组件之间的依赖关系可能会变得非常复杂。这里可能没有太多可以做的,但有时候感觉窗口依赖于列表,而列表又依赖于此弹出框……你懂的,看起来紧密耦合。
我希望在我的代码变成意大利面条之前尽可能了解Vaadin的良好设计,因此任何建议、经验和最佳实践都将不胜感激。