Many years ago Java developers used "new" in order to create Java services. They had many handmade configurations mixed with business logic; they even were using copy-paste techniques. They wrote many lines of the same ugly code, which sometimes worked, and sometimes not, but they understood everything they did (mostly). They could easily use debug in order to find a problem and solve it.
And then Spring happened and things have changed… We received a lot of magic from Spring black box and our code became much cleaner and more simple. Business aspects became apart from other technical aspects and configuration code, but debug became more complicated. After we learned how Spring is working we know how to debug our code and solve more complicated problems (mostly).
And then Spring Boot happened…
On the one hand, it solved thousands of problems: versions conflict, configuration issues, infrastructure's beans declarations, problems with environments, and even running or deploying applications including building jar/war… On the other hand, Spring Boot uses so much magic that mostly we come across two scenarios:
- Everything is working without any effort even though nobody knows why.
- Nothing is working and nobody knows why.
In this talk we will try to reveal at least part of Spring Boot magic by discovering Spring Boot concepts, conventions and the way it works. And even though after this talk you will understand that there is no magic (mostly) you will enjoy Spring Boot even more, because you will be able to solve Spring Boot problems or conflicts without calling 911 (mostly).