Articles of April 2014

Developing a RESTful Web Service Using Spring Boot

Update 12/2017: Sweet, but could use an updated version. The principles seem to stand though.

I'm really impressed with Spring Boot. Its main goal is to take away most of this boilerplate configuration that was needed before and to replace it with some sensible defaults. One might say it's taking the control away from the developer and giving it to the army of fairies. That's probably right, but in this case the fairies are here to help, and moreover they can easily be cast away from doing particular thing. It's just a matter of doing it yourself as before, and thanks to @ConditionalOn... behaviour Spring Boot's auto configuration will not fire up.

In the following article I will explore the way of employing Spring Boot to create a very basic, restful web service. As usual the source code can be found here on GitHub to play around.

Building Frontend as a Part of Maven Build Lifecycle

Update 12/2017: Nowadays just use a plugin. For Maven I could recommend frontend-maven-plugin, Gradle has gradle-frontend-plugin, or just use plain Node plugin like gradle-node-plugin and do the rest with Node scripts.

Thinking about the nature of things we can sometimes notice that a web application, depending of course on the level of sophistication, has in fact dualist nature when it comes down to its ontology. Having too vivid imagination we can relate it to Plato's duality of soul and body, which in case of web application can be a metaphor. As it is so that from the nature of web app we can derive a backend part, powered for example by a Java app, and a front end, where the use of JavaScript is dominant. The backend is soul, powering the body, but the body is what people see.

Both must be functional, both are equally important (ok, Plato would have disagreed with that, so let's leave the metaphor here), and they deserve the proper build process. It is very common though that often the front-end part is mistreated or ignored.

Spring Boot MVC application

Update 12/2017: Also could use an update.

In the last article I showed how the RESTful web service could be implemented using Spring Boot. In the following I'll make a more classical MVC application out of it, meaning real and pure, CSS-less, HTML form eye-candy.

Since there is not much difference between this and previous RESTful app, I'll focus only on what needs to be changed. And as usual, there is a source code for you to play around on GitHub, and if you want to follow the changes step-by-step, here's the source code for the RESTful web service from the previous article.