Use Vaadin Spring Add-on
Vaadin Spring Addon
The Vaadin Spring integration library helps you build amazing Vaadin based user interfaces on top of your high quality Spring based enterprise backend. Your UI classes become Spring managed beans, allowing you to autowire Spring based services directly into your UI code.
- Vaadin Spring API
- Vaadin Spring Tutorial
- https://vaadin.com/wiki/-/wiki/Main/Spring%20Integration (on Vaadin 6)
The features of Vaadin Spring include:
- First class support for Spring Boot
- Vaadin UI, View and component classes can be Spring managed beans and utilise the IoC container provided by Spring core
- @SpringUI annotated classes are automatically published, no need to manually introduce a servlet
- Vaadin Navigator support for View classes annotated with @SpringView *Scopes for Vaadin UIs and Views
- Using the @Autowired annotation in Vaadin UI code
- Push support
THE BOOK OF VAADIN (2016-04-19) IS OUTDATED REGARDING VAADIN-SPRING!
Therefore the below conclusions may not be up to date.
vaadin-springas maven dependency
DONE also all subtasks below
D3CTreeUIwhich are extending
VaadinServletmust be modified (see Book of Vaadin, 12.18.4. Preparing Application for Spring) Since we need need multiple servlets with custom configuration see Section 12.18.8, “Deploying Spring UIs and Servlets” is important for us
- CdmVaadinConversationalServlet: needs to extend SpringVaadinServlet
- UI Classes:
- The inner
VaadinServletclasses of the UI Classes need to extend
@VaadinServletConfigurationneeds to be removed. Q: How can the widgetset be configured? (The other attributes are obsolete.) A: Use the
@WidgetSetat the type level.
- The inner
@Scopeannotation at the
DetailWindowmust be replaced by
@UIScopeif this annotation is really still relevant.
- A couple of Views are evaluating the Spring Security Context. These classes are using the static method
SecurityContextHolder.getContext()to get the context. This can most probably be replaced by
ViewInstanceAccessControl, which can restrict access to the view either before or after a view instance is created. (See Book of Vaadin 12.18.7. Access Control )
CdmSpringContextHelperno longer needs to provide the Springbeans by the bean id when using
vaadin-spring. Through spring-vaadin injection of spring beans works. Springbeans can be @Autowired. The
CdmSpringContextHelpershould be replaced by the Repository View addressed in #3320 - I attempted to refactor cdm-vaading accordingly but giving up on this, due to the complexity and variety of the 'design patterns' that have been used: cdm-vaadin|a735bbb
Updated by Andreas Kohlbecker over 6 years ago
- Description updated (diff)
Vaadin, the polyglot framework for building web apps with UI components, released version 1.1 of their Vaadin Spring project.
There are two new features related to Vaadin’s Navigator class and View interface:
- A new SpringNavigator class
- A new @SpringViewDisplay annotation
The SpringNavigator class “greatly simplifies the configuration of views” and the @SpringViewDisplay annotation “can be used to mark the target Vaadin component, where your views should actually be displayed.”
There were also a number of bug fixes including serialization of HTTP sessions using Vaadin Spring.
Also potentially interesting is the webinar mentioned in that news post: https://vaadin.com/blog/-/blogs/spring-boot-a-perfect-platform-for-a-vaadin-ui