Alternatives to Spring MVC logo

Alternatives to Spring MVC

Spring Boot, Rails, Spring Framework, JSF, and Vaadin are the most popular alternatives and competitors to Spring MVC.
482
517
+ 1
0

What is Spring MVC and what are its top alternatives?

Spring MVC is a popular web framework based on the Model-View-Controller pattern, providing features like robust request mapping, flexible data binding, and integrated transaction management. However, it can be complex for beginners and may require a steep learning curve for customization.

  1. Micronaut: Micronaut is a modern, JVM-based full-stack framework that features an ahead-of-time compilation, dependency injection, and minimal memory consumption. Pros include fast startup times and low memory footprint, but it may lack some of the features of Spring MVC.

  2. Quarkus: Quarkus is a Kubernetes Native Java stack that offers a rapid development cycle, low memory usage, and high performance. It supports multiple programming models like imperative, reactive, and imperative with blocking. However, its ecosystem is still evolving compared to Spring MVC.

  3. Play Framework: Play Framework is a reactive web framework for Java and Scala that emphasizes type safety, hot reloading, and stateless architecture. It has built-in support for WebSockets and Akka actors but may have a steeper learning curve for beginners.

  4. Vert.x: Vert.x is a reactive toolkit for building reactive applications on the JVM with features like asynchronous programming, event bus, and reactive streams. It is well-suited for building high-performance, low-latency applications but may require a different mindset compared to Spring MVC.

  5. Spark Framework: Spark is a micro web framework for Java that is lightweight, easy to use, and well-suited for building RESTful APIs. It has a simple and expressive syntax but may lack some of the advanced features of Spring MVC.

  6. Dropwizard: Dropwizard is a high-performance Java framework for building RESTful API and web applications with features like metrics, logging, and configuration. It is well-suited for microservices architecture but may have a different philosophy compared to Spring MVC.

  7. Ratpack: Ratpack is a toolkit for building modern web applications on the JVM with a focus on asynchronous and non-blocking programming. It offers high-performance routing, integration with RxJava, and reactive programming but may not have as large a community as Spring MVC.

  8. Jooby: Jooby is a modular, microservices-focused web framework for Java and Kotlin that features declarative routing, dependency injection, and hot reload. It is well-suited for building microservices but may have a smaller ecosystem compared to Spring MVC.

  9. Helidon: Helidon is a collection of Java libraries for building microservices with features like microprofile, reactive programming, and support for GraalVM. It offers a lightweight and flexible approach to building microservices but may require more configuration compared to Spring MVC.

  10. Javalin: Javalin is a lightweight web framework for Java and Kotlin that provides a simple and modern API for building RESTful APIs and web applications. It is easy to get started with and has a low learning curve, but may not have as many features as Spring MVC.

Top Alternatives to Spring MVC

  • Spring Boot
    Spring Boot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. ...

  • Rails
    Rails

    Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern. ...

  • Spring Framework
    Spring Framework

    It provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. ...

  • JSF
    JSF

    It is used for building component-based user interfaces for web applications and was formalized as a standard through the Java Community ...

  • Vaadin
    Vaadin

    It is the fastest way to build web applications in Java. It automates the communication between your server and the browser and gives you a high-level component API for all Vaadin components ...

  • React
    React

    Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...

  • Jersey
    Jersey

    It is open source, production quality, framework for developing RESTful Web Services in Java that provides support for JAX-RS APIs and serves as a JAX-RS (JSR 311 & JSR 339) Reference Implementation. It provides it’s own API that extend the JAX-RS toolkit with additional features and utilities to further simplify RESTful service and client development. ...

  • Spring
    Spring

    A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments. ...

Spring MVC alternatives & related posts

Spring Boot logo

Spring Boot

26.1K
1K
Create Spring-powered, production-grade applications and services with absolute minimum fuss
26.1K
1K
PROS OF SPRING BOOT
  • 149
    Powerful and handy
  • 134
    Easy setup
  • 128
    Java
  • 90
    Spring
  • 85
    Fast
  • 46
    Extensible
  • 37
    Lots of "off the shelf" functionalities
  • 32
    Cloud Solid
  • 26
    Caches well
  • 24
    Productive
  • 24
    Many receipes around for obscure features
  • 23
    Modular
  • 23
    Integrations with most other Java frameworks
  • 22
    Spring ecosystem is great
  • 21
    Auto-configuration
  • 21
    Fast Performance With Microservices
  • 18
    Community
  • 17
    Easy setup, Community Support, Solid for ERP apps
  • 15
    One-stop shop
  • 14
    Easy to parallelize
  • 14
    Cross-platform
  • 13
    Easy setup, good for build erp systems, well documented
  • 13
    Powerful 3rd party libraries and frameworks
  • 12
    Easy setup, Git Integration
  • 5
    It's so easier to start a project on spring
  • 4
    Kotlin
  • 1
    Microservice and Reactive Programming
  • 1
    The ability to integrate with the open source ecosystem
CONS OF SPRING BOOT
  • 23
    Heavy weight
  • 18
    Annotation ceremony
  • 13
    Java
  • 11
    Many config files needed
  • 5
    Reactive
  • 4
    Excellent tools for cloud hosting, since 5.x
  • 1
    Java 😒😒

related Spring Boot posts

Praveen Mooli
Engineering Manager at Taylor and Francis · | 19 upvotes · 4M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more

Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

See more
Rails logo

Rails

19.5K
5.4K
Web development that doesn't hurt
19.5K
5.4K
PROS OF RAILS
  • 858
    Rapid development
  • 652
    Great gems
  • 606
    Great community
  • 484
    Convention over configuration
  • 417
    Mvc
  • 348
    Great for web
  • 343
    Beautiful code
  • 311
    Open source
  • 270
    Great libraries
  • 261
    Active record
  • 108
    Elegant
  • 90
    Easy to learn
  • 88
    Easy Database Migrations
  • 82
    Makes you happy
  • 75
    Free
  • 62
    Great routing
  • 54
    Has everything you need to get the job done
  • 41
    Great Data Modeling
  • 38
    MVC - Easy to start on
  • 38
    Beautiful
  • 35
    Easy setup
  • 26
    Great caching
  • 25
    Ultra rapid development time
  • 22
    It's super easy
  • 17
    Great Resources
  • 16
    Easy to build mockups that work
  • 14
    Less Boilerplate
  • 7
    Developer Friendly
  • 7
    API Development
  • 6
    Great documentation
  • 5
    Easy REST API creation
  • 5
    Quick
  • 4
    Intuitive
  • 4
    Great language
  • 4
    Haml and sass
  • 4
    Easy to learn, use, improvise and update
  • 2
    Metaprogramming
  • 2
    It works
  • 2
    Jet packs come standard
  • 2
    Easy and fast
  • 2
    Legacy
  • 1
    It's intuitive
  • 1
    Convention over configuration
  • 1
    Easy Testing
  • 1
    Cancan
CONS OF RAILS
  • 24
    Too much "magic" (hidden behavior)
  • 14
    Poor raw performance
  • 12
    Asset system is too primitive and outdated
  • 6
    Heavy use of mixins
  • 6
    Bloat in models
  • 4
    Very Very slow

related Rails posts

Zach Holman

Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.

But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.

But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.

Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.

See more
Russel Werner
Lead Engineer at StackShare · | 32 upvotes · 2.8M views

StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

#StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

See more
Spring Framework logo

Spring Framework

2.1K
0
An application framework and inversion of control container for the Java platform
2.1K
0
PROS OF SPRING FRAMEWORK
    Be the first to leave a pro
    CONS OF SPRING FRAMEWORK
      Be the first to leave a con

      related Spring Framework posts

      I would like to generate all the repetitive code in order to bootstrap my Java project. I need to define my own models. I want to be able to customize everything in what will be generated. JHipster is more popular but seems to be really related to the Spring Framework. Telosys supports multi-languages, multi-frameworks, and is highly customizable. Any feedback about these 2 tools?

      See more
      Shared insights
      on
      Spring FrameworkSpring FrameworkJavaJava

      What are the topics that are to be known in Java to get comfortable with SAP Hybris? Is Spring Framework compulsory for Hybris? I want a detailed tech stack of SAP Hybris. What are the free resources through which I can learn Hybris?

      See more
      JSF logo

      JSF

      140
      4
      It is used for building component-based web interfaces
      140
      4
      PROS OF JSF
      • 2
        Rich and comprehensive Request Life-cycle
      • 1
        Very Mature UI framework
      • 1
        Server Side component
      CONS OF JSF
        Be the first to leave a con

        related JSF posts

        Hello guys, my first time here, and for requesting advice.

        I am a JavaScript Developer MERN Stack with a focus on Frontend Development. I wanna go more to Backend Development.

        Which Language has a Solid Ecosystem and not so many changes like JavaScript Frontend, quite Frankly that's freaking me out nowadays!

        In my Location Germany Industries, Finance, Utilities, Insurances, Retails, and Healthcare dominate Java in the Backend. In my case Java is the logical choice BUT, XML, old codebase, JSP/JSF , boring and verbose syntax without Syntactic Sugar, test Battle, and so on make me crazy.

        I have Java, Python, Golang, and Node.js/TypeScript as a choice, but because of a lack of Backend knowledge, I can't make a decision. Which Language and Ecosystem should I learn and master for a long time, my Goal is to work with a selected stack for 10+ years and I don't do Data Science only Software Engineering.

        Thanks for reading and Advice! Important! !!! I see via Email somebody send me an Advice, but unfortunately i can't see/read your Advice here :( Users like: Jose Manuel Ortega or nullStack65....

        See more

        Hello guys! I would ask for your advice. Our situation is like that there will be a project to revamp workflows and introduce new services like mobile apps, machine learning, and some online services that would use cloud storage. We use JSF, JavaScript, Ajax, Spring, Oracle 12c running on Linux (VM) and providing online services to internal users and the public. But, we are not technically savvy enough to evaluate what tools should be introduced. Personally, I am evaluating whether to take this opportunity to change our practice/PM approach from Prince to Scrum/Agile (It seemed that DevOps is popular) ... Since we adopt ISO 27001 and ISO 20000, security is a crucial factor that we consider. Would you please help to recommend a list of tools and explain the reasons why you recommend them? Thanks in advance~!

        See more
        Vaadin logo

        Vaadin

        197
        36
        Components and tools for building web apps in Java
        197
        36
        PROS OF VAADIN
        • 9
          Java
        • 7
          Compatibility
        • 6
          Open Source
        • 6
          Components
        • 3
          Performance
        • 2
          Abstraction
        • 2
          Example packages
        • 1
          OSGI Support
        CONS OF VAADIN
        • 3
          Paid for more features

        related Vaadin posts

        React logo

        React

        173.5K
        4.1K
        A JavaScript library for building user interfaces
        173.5K
        4.1K
        PROS OF REACT
        • 834
          Components
        • 673
          Virtual dom
        • 578
          Performance
        • 508
          Simplicity
        • 442
          Composable
        • 186
          Data flow
        • 166
          Declarative
        • 128
          Isn't an mvc framework
        • 120
          Reactive updates
        • 115
          Explicit app state
        • 50
          JSX
        • 29
          Learn once, write everywhere
        • 22
          Easy to Use
        • 21
          Uni-directional data flow
        • 17
          Works great with Flux Architecture
        • 11
          Great perfomance
        • 10
          Javascript
        • 9
          Built by Facebook
        • 8
          TypeScript support
        • 6
          Speed
        • 6
          Server Side Rendering
        • 6
          Scalable
        • 5
          Props
        • 5
          Excellent Documentation
        • 5
          Functional
        • 5
          Easy as Lego
        • 5
          Closer to standard JavaScript and HTML than others
        • 5
          Cross-platform
        • 5
          Feels like the 90s
        • 5
          Easy to start
        • 5
          Hooks
        • 5
          Awesome
        • 4
          Scales super well
        • 4
          Allows creating single page applications
        • 4
          Server side views
        • 4
          Sdfsdfsdf
        • 4
          Start simple
        • 4
          Strong Community
        • 4
          Fancy third party tools
        • 4
          Super easy
        • 3
          Has arrow functions
        • 3
          Very gentle learning curve
        • 3
          Beautiful and Neat Component Management
        • 3
          Just the View of MVC
        • 3
          Simple, easy to reason about and makes you productive
        • 3
          Fast evolving
        • 3
          SSR
        • 3
          Great migration pathway for older systems
        • 3
          Rich ecosystem
        • 3
          Simple
        • 3
          Has functional components
        • 3
          Every decision architecture wise makes sense
        • 2
          HTML-like
        • 2
          Image upload
        • 2
          Sharable
        • 2
          Recharts
        • 2
          Split your UI into components with one true state
        • 2
          Permissively-licensed
        • 2
          Fragments
        • 1
          Datatables
        • 1
          React hooks
        CONS OF REACT
        • 41
          Requires discipline to keep architecture organized
        • 30
          No predefined way to structure your app
        • 29
          Need to be familiar with lots of third party packages
        • 13
          JSX
        • 10
          Not enterprise friendly
        • 6
          One-way binding only
        • 3
          State consistency with backend neglected
        • 3
          Bad Documentation
        • 2
          Error boundary is needed
        • 2
          Paradigms change too fast

        related React posts

        Johnny Bell

        I was building a personal project that I needed to store items in a real time database. I am more comfortable with my Frontend skills than my backend so I didn't want to spend time building out anything in Ruby or Go.

        I stumbled on Firebase by #Google, and it was really all I needed. It had realtime data, an area for storing file uploads and best of all for the amount of data I needed it was free!

        I built out my application using tools I was familiar with, React for the framework, Redux.js to manage my state across components, and styled-components for the styling.

        Now as this was a project I was just working on in my free time for fun I didn't really want to pay for hosting. I did some research and I found Netlify. I had actually seen them at #ReactRally the year before and deployed a Gatsby site to Netlify already.

        Netlify was very easy to setup and link to my GitHub account you select a repo and pretty much with very little configuration you have a live site that will deploy every time you push to master.

        With the selection of these tools I was able to build out my application, connect it to a realtime database, and deploy to a live environment all with $0 spent.

        If you're looking to build out a small app I suggest giving these tools a go as you can get your idea out into the real world for absolutely no cost.

        See more
        Collins Ogbuzuru
        Front-end dev at Evolve credit · | 38 upvotes · 272.6K views

        Your tech stack is solid for building a real-time messaging project.

        React and React Native are excellent choices for the frontend, especially if you want to have both web and mobile versions of your application share code.

        ExpressJS is an unopinionated framework that affords you the flexibility to use it's features at your term, which is a good start. However, I would recommend you explore Sails.js as well. Sails.js is built on top of Express.js and it provides additional features out of the box, especially the Websocket integration that your project requires.

        Don't forget to set up Graphql codegen, this would improve your dev experience (Add Typescript, if you can too).

        I don't know much about databases but you might want to consider using NO-SQL. I used Firebase real-time db and aws dynamo db on a few of my personal projects and I love they're easy to work with and offer more flexibility for a chat application.

        See more
        Jersey logo

        Jersey

        151
        6
        A REST framework that provides a JAX-RS implementation
        151
        6
        PROS OF JERSEY
        • 4
          Lightweight
        • 1
          Fast Performance With Microservices
        • 1
          Java standard
        CONS OF JERSEY
          Be the first to leave a con

          related Jersey posts

          Spring logo

          Spring

          4K
          1.1K
          Provides a comprehensive programming and configuration model for modern Java-based enterprise applications
          4K
          1.1K
          PROS OF SPRING
          • 230
            Java
          • 157
            Open source
          • 136
            Great community
          • 123
            Very powerful
          • 114
            Enterprise
          • 64
            Lot of great subprojects
          • 60
            Easy setup
          • 44
            Convention , configuration, done
          • 40
            Standard
          • 31
            Love the logic
          • 13
            Good documentation
          • 11
            Dependency injection
          • 11
            Stability
          • 9
            MVC
          • 6
            Easy
          • 3
            Makes the hard stuff fun & the easy stuff automatic
          • 3
            Strong typing
          • 2
            Code maintenance
          • 2
            Best practices
          • 2
            Maven
          • 2
            Great Desgin
          • 2
            Easy Integration with Spring Security
          • 2
            Integrations with most other Java frameworks
          • 1
            Java has more support and more libraries
          • 1
            Supports vast databases
          • 1
            Large ecosystem with seamless integration
          • 1
            OracleDb integration
          • 1
            Live project
          CONS OF SPRING
          • 15
            Draws you into its own ecosystem and bloat
          • 3
            Verbose configuration
          • 3
            Poor documentation
          • 3
            Java
          • 2
            Java is more verbose language in compare to python

          related Spring posts

          Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

          Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

          See more

          I am consulting for a company that wants to move its current CubeCart e-commerce site to another PHP based platform like PrestaShop or Magento. I was interested in alternatives that utilize Node.js as the primary platform. I currently don't know PHP, but I have done full stack dev with Java, Spring, Thymeleaf, etc.. I am just unsure that learning a set of technologies not commonly used makes sense. For example, in PrestaShop, I would need to work with JavaScript better and learn PHP, Twig, and Bootstrap. It seems more cumbersome than a Node JS system, where the language syntax stays the same for the full stack. I am looking for thoughts and advice on the relevance of PHP skillset into the future AND whether the Node based e-commerce open source options can compete with Magento or Prestashop.

          See more