If you work with Java development, you will sooner or later come in contact with the Spring framework. It is a technology which started as a series of design patterns for J2EE development, but very quickly got its own following and ended up being a much more convenient alternative to the at that time very bulky development cycle of J2EE. From the beginning, it provided support for Dependency Injection, transaction handling, aspect-oriented programming and Hibernate, among other things, and by now it has support for (mostly…) easy integration of practically all modern technologies in the JDK world.
One of the main criticisms against Spring (apart from its sometimes ridiculously long class names) has been the amounts of XML needed to configure it. This was especially true for the Spring Security module, which often was configured by copy-pasting from some StackOverflow post by someone who had actually gotten it to work…
A lot of developers thought ‘This is no life to lead’, and started looking at other JDK technologies: Play, Dropwizard, Wicket, Grails, Roo…
So in 2012, a couple of Spring developers (in the ‘Tim Berners-Lee is a web developer’ sense) took a step back and asked ‘Why does a computer student have to know about build systems, web.xml files, and all the other steps just to display a ‘Hello world?’
And at the SpringOne conference 2013 they unveiled Spring Boot, which is an opinionated framework with powerful autoconfiguration features, and no little inspiration from Dropwizard, enabling tweetable web servers:
@Controller
class ThisWillActuallyRun {
@RequestMapping("/")
@ResponseBody
String home() {
"Hello World!"
}
}— Rob Winch (@rob_winch) August 6, 2013
The response to Spring Boot was very positive right from the start, and it is on its way to becoming the goto solution for a Java developer who wants to start a new app quickly.
Since we have started using Spring Boot more and more in our development, I went to the Spring I/O conference in Barcelona, for a more in-depth look at Spring and the technologies used in the Spring/Pivotal stack. My next posts will be attempts at short recaps of some of my favourite presentations.
Links:
https://spring.io/guides/gs/spring-boot/