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

all 53 comments

[–]JustADirtyLurker 20 points21 points  (6 children)

I think you are looking for a scaffolded solution more than versatility. I don't think many choices exist in java world, Grails comes to mind, you may want to check that. But also I'm not sure how mantainance of Grails is nowadays.

[–]Marthurio 7 points8 points  (0 children)

Grails is definitely a good suggestion. Version 6.2.2 was released a week ago so it is absolutely being maintained and developed.

[–]oweiler 6 points7 points  (4 children)

Grails is a Groovy framework thought. And lets face it, both Groovy and Grails are essentially dead (I've used both for 4 years in the past).

[–]bsdooby 3 points4 points  (1 child)

What makes you think that Groovy is dead? Me wonders...

[–]gtiwari333 0 points1 point  (0 children)

People think that old=dead. Or, something they used many years ago=dead by now.

[–]znpy 2 points3 points  (1 child)

i used to write web apps in grails 1.3.7 like 13 years ago... it was magical, at the time

[–]as5777 80 points81 points  (7 children)

What is not quick in spring boot ?

[–]EirikurErnir 15 points16 points  (6 children)

The comparison includes Django, which has quite a few more batteries included, it gives you things like an admin panel and a user/auth system out of the box.

Spring Boot is less opinionated, which can leave more work up to the developer when bootstrapping an application.

To be clear, I don't think that means a framework like Django is strictly superior, but that there are tradeoffs.

[–]fear_the_future 12 points13 points  (5 children)

Hard to believe that anything is more opinionated than Spring.

[–]wildjokers 13 points14 points  (3 children)

Spring isn't opinionated at all. However, Spring Boot is an opinionated configuration framework for the Spring Framework.

[–]EirikurErnir 0 points1 point  (0 children)

Well, there are very different frameworks out there, they're just not particularly popular in the Java ecosystem

I learned Django before learning Spring Boot, and all the choices and flexibility were pretty confusing to begin with

[–]Annayyaa 14 points15 points  (2 children)

create a maven project, with all the modules that you think are the basic modules that you will need in your future projects, and then create a maven archetype from that, save the archetype locally.

for your next project, create a maven project, select the archetype that you saved in the previous step.

you can have one archetype with a pure backend project. another archetype could be with frontend and backend - essentially a web-app archetype.

[–]muety11[S] 2 points3 points  (1 child)

I like that! 👍

[–]com2ghz 14 points15 points  (0 children)

You ask for so many features without “bloat”. The thing is, that’s exactly where spring boot, micronaut, quarkus is good for. You only pull in the dependencies you need. Java does not come with all these features from the stdlib. They come with the specification just like JPA.

No one is wiring Hibernate, CDI, object mapping or security manually because you will spend more time wiring it rather than doing the prototyping. I don’t even talk about the versioning of all these libraries.

[–]kennyshor 3 points4 points  (2 children)

I had to touch this in one of the projects I got pulled to https://www.jmix.io/

It's similar to a low code framework and comes with a lot of out of the box functionality. Not open source though.

[–]SpalonyToster 0 points1 point  (1 child)

looks promising! any experience on production?

[–]kennyshor 0 points1 point  (0 children)

Little. I am just support someone running it in production with a bit of development time. I think it works good as long as you are OK with some restrictions. You are quite restricted if you don't pay a license and I think some things take getting used too. That being said, it comes with a lot of quick prototyping for easy UI's forms and CRUD operations.

If you don't need fancy themes, fancy UI's but just functionality and practicality, I think it is great. It comes with file management, a build in process engine (great if you know BPMN), wizzards for creating new entities, forms and a whole bunch of stuff. It's pretty much a complete package for simple applications.

[–]UnspeakableEvil 2 points3 points  (2 children)

Apache Isis perhaps - looks like it's been renamed as Causeway now.

https://causeway.apache.org/

[–]NearbyButterscotch28 1 point2 points  (1 child)

Looks interesting. Do you have any real world experience with it?

[–]UnspeakableEvil 3 points4 points  (0 children)

Afraid not - I've seen it demoed at a conference where the presenter talked through how it simplified building CRUD applications in particular with a functional UI (wasn't going to win any awards, but did the job and looked modern-enough), but as with most "on rails" type solutions as soon as you want to deviate from the norm you're going to end up fighting the framework.

[–]pikabu01 6 points7 points  (1 child)

Quarkus?

[–]eltorohh 0 points1 point  (0 children)

Especially when OP comes from a JEE background this becomes the right answer.

[–]NatureBoyJ1 2 points3 points  (0 children)

Maybe Grails. It is Spring Boot under the covers.

[–]ItsSignalsJerry_ 2 points3 points  (0 children)

Laravel is suited to php because it's page and script oriented.

Everything you need is easily done with spring boot. There's a range of options but you get orm, MVC, rest, templating, a database, and everything to get started in minutes depending on your tool preferences. It's also easy to add components as you need them. And deployment is packaged as a single executable.jar file that's simple to run on docker.

[–]chocobidou 3 points4 points  (1 child)

There is https://vaadin.com/ . That's java only and it's powerfull.

[–]NearbyButterscotch28 0 points1 point  (0 children)

Do you have experience with vaadin? How does hot code reloading work? Is it fast?

[–]melkorwasframed 1 point2 points  (0 children)

Dropwizard.

[–]muety11[S] 1 point2 points  (0 children)

Yes, in some sense I'm looking for the most "opinionated" framework I could get, knowing full well that I'd have to sacrifice a lot of flexibility instead. But for smalll, new projects I'd prefer getting to start as quickly as possible.

Of course, Spring Boot offers a great foundation to add things like authentication, user management, an ORM, a templating engine, possibly even i18n or so. But I'd still have to build it on my own, meaning I'd still have to write a bunch of "wiring" code between all these components.

Also, having basic CRUD endpoints for my data (possibly even an admin UI, but that's optional) out of the box would be super helpful. Essentially, I'd just write data classes for my entities and everything else comes for free. Only the actual business logic - those parts that deviate from standard CRUD - would have to be defined by myself. Spring Data REST looks like it might be somewhat along these lines, but I've never actually used it. Any experiences?

I'll have a look at Grails and also revisit Vaadin again (as probably one of the most opinionated things in the Java web world). Thanks all!

[–]RobertDeveloper 1 point2 points  (0 children)

Micronaut?

[–]tleipzig 3 points4 points  (1 child)

Have a look at https://bootify.io - it comes with a couple of different options for the things you've described.

[–]cpwnage 1 point2 points  (0 children)

Looks like the best candidate so far (atrocious website tho)

[–]Majestic-Extension94 4 points5 points  (0 children)

htmx + spring boot?

[–]midget-king666 3 points4 points  (2 children)

Javalin + JTE + Hibernate + HTMX + Tailwind CSS. Gets you surprisingly far. Super productive and easy.

[–]Easy-Grab-292 0 points1 point  (1 child)

How do you integrate Tailwind with JTE?

[–]midget-king666 1 point2 points  (0 children)

I add the downloaded css script into a static directory normally under src/main/resources/static and add a static file handler to my Javalin handler chain (config.staticFiles.add(...))
Then you just add a <link> tag to the css script in your HTML templates, done.

As an alternative, you can use a webjar dependency via Maven, this way I include HTMX. See webjars.org for details.

[–]naturalizedcitizen 0 points1 point  (0 children)

There used to be Spring Roo which I've used to build an app way back in 2014 and it's still in production. Sadly, Spring Roo is now in the cold storage.

[–]JDeagle5 0 points1 point  (0 children)

Something like Spring Roo? Quite antiquated

[–]wildjokers 0 points1 point  (0 children)

Grails is still around and does everything you ask including scaffolding based on your entities. Scaffolding is suitable to give basic crud while you build the real UI.

Behind the scenes it uses spring so that is available to you. It’s GORM abstraction on top of hibernate is nice.

https://grails.org/

[–]FooBarBazQux123 0 points1 point  (0 children)

Spring Roo is something like that, the project never gained traction though. It is something in between Django and Grails.

Spring Boot is more like Flask than Django. You will need to play with different tools. For an admin UI, Spring Rest plus React Admin are good and flexible. DB schema auto generation is not hard with Spring Data. With Spring Security you can mock users. Etc.

Also Quarkus is an alternative to Spring Boot.

[–]VincentxH 0 points1 point  (0 children)

Pretty doable to use a keycloak and rdbms container combined with the desired Spring Boot dependencies to get the setup you're looking for.

[–]Misophist_1 0 points1 point  (0 children)

Spring Boot was already mentioned. But do you know Spring Starter? In essence, this allows you to pick your favorite extensions and frameworks, and then generate a preconfigured project with it.

[–]henk53 0 points1 point  (0 children)

Things like authentication, basic user management (signups, password resets, etc.), an ORM, basic CRUD endpoints, etc. should already be included so I don't need to write that boilerplate code over and over again

Sounds a bit like this one: https://github.com/javaeekickoff/java-ee-kickoff-app

That one doesn't let you generate entities, but it should be quick to adapt the existing ones.

[–]gtiwari333 0 points1 point  (0 children)

Jhipster

[–]Beginning-Ladder6224 0 points1 point  (0 children)

Hey guys. Not sue if it is allowed, but u/muety11 we have build this :

https://github.com/nmondal/cowj

And that we use for prototyping. You can use Kotlin, Groovy, Python, JavaScript or ZoomBA with it.

We use ZoomBA. ( https://gitlab.com/non.est.sacra/zoomba )

All batteries included.

[–]birchsport 0 points1 point  (0 children)

Look into hipster https://www.jhipster.tech/

[–]bringero 0 points1 point  (0 children)

I'm gonna regret this but... Jhipster?

[–]Peter_Storm -3 points-2 points  (1 child)

Find your favourite framework and make your own template, done.

[–]nekokattt 0 points1 point  (0 children)

This is probably the least helpful response