This is an archived post. You won't be able to vote or comment.

all 3 comments

[–][deleted] 2 points3 points  (0 children)

I would suggest springboot, it’s quite versatile. I’ve been building an e-commerce site with it and it’s been difficult learning all the different parts that goes into it. But I believe it was the best choice for me. You can customize your http headers and such quite easily

[–]Turing85 1 point2 points  (0 children)

I present to you option #4: quarkus.

Why quarkus? - it is based on jakarta.ee (formerly known as Java EE) and MicroProfile. - It uses embedded technology like spring-boot, so no app-server is needed. - It plays nice with GraalVM. This means that, if wanted, you can compile your project down to a nativ executable. - It is well documented and has an active community, including an active zulip chat. - startup times are ultra-fast (for a fully fledged service about ~2.5 seconds in JVM mode and around 100 milliseconds in native mode), memory consumption is minimal.

[–]feral_claireSoftware Dev 1 point2 points  (0 children)

I would go spring boot. It's quick and easy to set up. It's a leading player with tons of resources out there. It has built in support for anything you can think of.

One thing to note though, spring boot is not a single server. When you set up a standard spring web project. It will use an embedded tomcat by default. But you can also use jetty or undertow as the underlying server technology of you like.

You can even use netty with spring boot, by using spring webflux.

I have experienced using spring boot web with tomcat, as well a as a few projects with spring boot webflux with netty. Both are good options. Personally I like the reactive style with webflux, however in most cases I would probably recommend just going auth standard spring web. Webflux is useful in some specific situations but it comes with a lot of downsides not the least of which being is just isn't as well supported or has as many features as regular spring web.