Vaadin with Classic Spring MVC using REST API

I have seen it is possible to use spring-vaadin component to work with Spring Boot. But can we use it with Spring MVC too? There is no help for integrating Vaadin with classic Spring MVC (not Spring Boot). Any help would be highly recommended.

As per my understanding, normal Spring MVC application will be created with REST services implemented and to call those REST services using vaadin we will be using conventional Java logic or is there any support provided by Vaadin?

Any help will be highly appreciated.

Regards,
Sana

Maybe I’m misunderstanding something, but: Spring MVC is a web application framework like Vaadin. If you want to use two web application frameworks in the same application, you need to consider your architecture carefully. What is the problem you are trying to solve with this kind of solution? Could you perhaps provide the same functionality with just one web framework?

Note that you don’t need to use Spring Boot with Vaadin; there’s even a tutorial [for getting started with Vaadin Spring without Spring Boot]
(https://vaadin.com/docs/v8/framework/articles/IBGettingStartedWithVaadinSpringWithoutSpringBoot.html).

Vaadin is UI framework with plain JAVA in backend, for simplifying functionality at backend, we are thinking to use Spring MVC. I was assuming that is the reason Vaadin provided integration with Spring. Please correct me if I am wrong.

It really depends on the details of what exactly you are doing.

As you may know, Spring Framework is made of many modules, most important of them being the Inversion of Control container. Many of them integrate well with Vaadin and the Spring Inversion of Control container is a very useful tool in Vaadin applications. You could also have, for example, a Spring Data backend to your Vaadin UI.

Spring MVC is one of modules in Spring Framework. MVC is a web framework, similar to Struts and, to a degree, Vaadin Framework. So if you would have Spring MVC Views and a Vaadin UI in the same application, you would be using two technologies to do the same thing, providing a web user interface to your Java app. This means additional complexity. I’m not saying doing this is not possible, but I don’t feel like it would simplify the solution. Therefore I wouldn’t recommend this approach unless I knew of a pressing need to do so.

Note that you could use, for example, the Model-View-Presenter design pattern in your Vaadin Spring application without using the Spring MVC module.

-Olli

My project is to create POS system, with exposed REST services for future use when required.

My understanding is to create Vaadin project with Spring Data JPA exposing RESTful services for external system and Vaadin UI for back-office. Do you think that make sense?

Yes, that sounds like a typical Vaadin use case.

Is there an example of using Vaadin with Spring Data JPA without using Spring Boot?

I don’t know if there’s an exact sample application like that, but if you start with the full stack Spring starter (with Boot) from https://vaadin.com/start/v10-full-stack-spring , you will get Spring Data there and you will be able to move to non-boot pretty easily later.