What is the best UI to Use with Spring Boot?

What is the best UI to Use with Spring Boot?

2 Comments

Last Updated on October 21, 2024 by jt

A common question I get is “What is the best UI to use with a Spring Boot?”

UIs, also known as “User Interfaces” come in many different flavors.

The UI application might be a desktop application writing in Java Swing, FX, or some other technology.

The UI application could also be a mobile application written for iOS or Android.

Usually, when someone is asking what is the best UI to use with Spring Boot, the context of the question is around the popular Javascript frameworks.

Best Javascript Framework for Spring Boot?

Is Angular JS the best UI for Spring Boot?

Is React the best UI for Spring Boot?

What about Vue.JS, is that better for Spring Boot?

Or insert your favorite Javascript framework here, and ask if it is best for Spring Boot.

Let me explain why it really does not matter.

Client Server Revisited

Back in the 1990s, the big buzz word was ‘client server’.

Companies wanted to use PCs to provide rich user experiences, and offload the computational workload from the server.

Somethings don’t change much.

The Javascript frameworks are a client side technology. Javascript is a client side technology which executes within the context of a web browser on a client device. That device might be a desktop, or a mobile device.

While, Spring Boot is a server side technology. Spring Boot executes in the context of a server.

The client and the server are two completely different computer systems, separated by a communications API.

It’s important to remember these are two completely different computer systems. Something that can get blurred when we are developing locally.

All Javascript frameworks support RESTFul APIs.

Thus, communication to Spring Boot is done via HTTP and JSON payloads. The communication layer completely abstracts the UI technology from the server side technology.

The communication layer makes the client technology and server technology agnostic to each other. Meaning if they support HTTP and JSON, they can communicate.

A Spring Boot application will support AngularJS, ReactJS, and Vue.JS equally well.

The Spring Boot application is likely unable to tell a difference from one Javascript framework to another. The RESTful API abstracts the technology choices used for the client, and the server.

Even if the client is a native mobile application using iOS or Android, if the communication to the server is performed via RESTful interfaces, there is no difference.

The inverse is equally true.

What is the best server side technology to use with Angular JS or React?

Is .NET or Ruby better than Spring Boot?

Again, does not matter.

An Angular JS application will not function differently using a Ruby server vs a Spring Boot Server.

Things to Consider

Each Javascript framework has its own merits. And faults. I’m not going to debate them here.

If you need to determine what is the best UI to use with Spring Boot, focus on evaluating the UI technology options themselves.

Allow the merits of the UI frameworks you are considering to drive your decision.

Focus on which option supports the needs of your project and your team the best?

The client side technology and server side technology are independent of each other.

About jt

    You May Also Like

    2 comments on “What is the best UI to Use with Spring Boot?

    1. December 22, 2020 at 10:51 pm

      Ok fair analysis and I completely agree. However, it doesn’t answer the question of what UI platform is best for Spring Boot.

      Perhaps something like

      if you want the fastest way to build a simple UI to post a form and display results, then bla bla.js might be best
      if you want a full web site that accesses several REST apis then you might look at yadda yadda.js

      Ok?

      Reply
      • October 26, 2023 at 8:26 am

        this is also what I was hoping to find on this page, but I am happy he is not recommending thymeleaf 🙂

        Reply

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.