The New Spring Boot Initializr: the Good and the Not-So-Good!
Check out the good and the not-so-good features of the newest Spring Boot Initializr.
Join the DZone community and get the full member experience.Join For Free
there has been a change to the spring boot initializr. if you haven't used spring boot initializr before, it is a web interface used to quickly create new spring boot projects.
in case you don't know, spring boot is one of the most popular java-based frameworks for building enterprise applications and microservices. you can check out this intro to spring boot to get more details.
in this post, we will be looking at the new user interface to initialize spring boot applications that has replaced the old one.
accessing the spring boot initializr
you can still access the spring boot initializr at the same location as before, that is https://start.spring.io
however, now you will be greeted with the following user interface:
for reference, below was the old look. we discussed this in greater detail in this post: spring boot - a work of art .
the good things
at a first glance, from an aesthetic point of view, the new intitializer does appear more intuitive in the new user interface.
on top of the page, we still have the option to choose between maven and gradle . the options are provided in the form of tabs instead of a dropdown.
then, we also have the option to select our programming language. as usual, you can choose between options such as java, kotlin, and groovy. here, as well, preference has been given to the tabbed approach as compared to the dropdown.
in my view, this enhanced user interface is really good. going for a tab-based approach enhances the look and feel of the site. it also makes it easier to switch options on the fly if you want.
the neutral things
when looking at the features where i don't have any particular view compared to the old one are the other project details.
you can still customize the various details such as group id, artifact name, description of the project, type of packaging, and java version .
by default, you only see the group id and the artifact id. but on clicking the more options button, you can see the other fields mentioned above.
the not-so-good things
in my opinion, the most controversial change that has been made to the spring boot initializr is with regards to the dependencies section.
the objective of this section is to let developers select dependencies for their project. and even with the new interface, that's the purpose of this section.
however, the traditional check-box driven approach where you can pick dependencies from a long list has been replaced with a search bar.
for example, if you need web -related dependencies, you need to enter " web" in the search-bar. the dependencies related to that particular topic will be listed below, which you can select the appropriate ones.
on face value, all of it works fine. the only downside is that there is no way to access the full list like earlier. apart from the few suggestions mentioned in the search bar, there is no mention of the many other projects that form a part of the spring boot family. for instance, this includes spring cloud, messaging, nosql databases, and so on.
now, this is by no means a deal-breaker. everything still works. you can still get those projects by searching for the relevant term in the search-bar. in fact, the new user interface is a lot more snappy when compared to the old one.
however, it does makes things a tad complicated if you aren't aware of what dependencies to pick or just want to see all the available options before choosing one.
usually, new projects will also get added to the spring boot family, and with the old list-view, it was easier to get to know about them. with this new interface, one needs to rely a lot more on the official docs.
this was my short opinion on the new web-based spring boot initializr. even though it doesn't change the functionality, it does a few good things with the interface.
however, there are also a few design choices that might make the task of selecting dependencies a bit more confusing or time-consuming. now, i don't know why this decision was made, and maybe, things will change in the future.
nevertheless, spring boot remains as one of the best java microservices frameworks.building production-ready microservices using spring boot is fast and efficient.
so, what do you think about this change? do you see any other issues? or, have you already found an alternative way to handle things? sound off your comments in the comments section below.
Published at DZone with permission of Saurabh Dashora. See the original article here.
Opinions expressed by DZone contributors are their own.