Spring MVC or Spring Boot

Spring MvcSpring Boot

Spring Mvc Problem Overview


For a large company (web) project, do you recommend using Spring MVC or Spring-Boot?

Spring-Boot, in terms of configuration, is very easy compared to Spring MVC.

I wonder if I use Spring-Boot can have the same advantages of Spring MVC?

What do you recommend?

Spring Mvc Solutions


Solution 1 - Spring Mvc

My personal advice is to definitely use Spring Boot for many reasons.

  1. The first is that Boot is the "future of Spring". That means that with Boot you can benefit from many commitments of the Spring community. Most of the Spring projects today are completely integrated with Boot, even the community starts to develop many applications based on Boot. For example for managing and monitoring. I can suggest to see Spring Boot Admin

  2. With Spring Boot you can benefit from very nice and useful features such as actuator and remote shell for managing and monitoring, that improves your application with production ready features that are very useful.

  3. Very nice and powerful properties and configuration controls - you can configure your application with application.properties/yml and extend the boot in a very simple and impressive way, even the management in terms of overriding is very powerful.

  4. It is one of the first micro-service ready platforms, and in my opinion nowadays it is the best! Even if you don't build a micro-service project with boot you can benefit of using a modern approach in which you have a auto-consistent jar that can benefit from all the features that I described above or if you prefer you can impose the packaging as a classical war and deploy your war in any of the containers that you want.

  5. Use of an intelligent and convention over configuration approach that reduces the startup and configuration phase of your project significantly. In fact you have a set of starter Maven or Gradle dependencies that simplify the dependency management. Then with the auto-configuration characteristic you can benefit from a lot of standard configurations, that are introduced through the Conditional Configuration framework in Spring 4. You can override it with your specific configurations just defining your bean according with the convention that you can see in the auto-configure JAR of the Boot dependency. Remember that Spring is open-source and you can see the code. Also the documentation in my opinion is good.

  6. Spring initializer is a cool tool attainable at this link: https://start.spring.io/ is a very cool tool just to create your project in a very fast way.


I hope that this reflection can help you decide what is the best solution.

Solution 2 - Spring Mvc

Spring Boot uses Spring MVC! It's just autoconfigured and ready to use when you import the spring-boot-starter-web jar. So you'd basically are talking about whether to use Spring Boot or manually setup your Spring Application...

Solution 3 - Spring Mvc

You can definitely go for Spring Boot. We have already started using Spring Boot for building enterprise application. It has lot of advantages, listing few below here:

  1. Your project configuration will be pretty simple. No need to maintain XML file, all you need to know is how efficiently you can use application.properties file.

  2. Gives lot of default implementation, for instance if you need to send an email, it provides default implementation of JavaMailSender

  3. Spring Hibernate and JPA integration will be pretty simple.

Like this there are many, you can explore based on your needs.

Solution 4 - Spring Mvc

You can use Spring MVC with spring boot as @kryger said, they are non exclusive between them, and the configuration will be easier, also I recommend you to use http://www.thymeleaf.org/ which is template framework. Working with that is like working with JSP but thymeleaf integrates seamlessly with HTML, so your code will look very clean and you can add a lot of useful features.

Solution 5 - Spring Mvc

I think Spring Boot is more useful than the MVC, as it has many advantages and inbuilt features which make it more reliable than MVC. In Spring Boot most of the things are auto configured and there is no need of writing those xml as we do in the MVC, which can save time.

Spring Boot bundles a war file with server run-time like Tomcat. This allows easy distribution and deployment of web applications. As the industry is moving towards container based deployments, Spring Boot is useful in this context as well.

Spring MVC is web application framework. While you can do everything in Spring without Spring Boot, but Spring Boot helps you get things done faster.

Spring boot simplifies your Spring dependencies, no more version collisions, can be run straight from a command line without an application container, build more with less code - no need for XML, not even web.xml, auto-configuration, useful tools for running in production, database initialization, environment specific config files, collecting metrics.

Basics of Spring Boot can be found here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDiegoView Question on Stackoverflow
Solution 1 - Spring MvcValerio VaudiView Answer on Stackoverflow
Solution 2 - Spring MvcUlisesView Answer on Stackoverflow
Solution 3 - Spring MvcRakeshView Answer on Stackoverflow
Solution 4 - Spring MvcaruizView Answer on Stackoverflow
Solution 5 - Spring MvcSanketView Answer on Stackoverflow